Roots of Elements

Roots of local ring and field elements can be found to some precision.

SquareRoot(x) : RngPadElt -> RngPadElt
SquareRoot(x) : RngPadResElt -> RngPadResElt
SquareRoot(x) : RngPadResExtElt -> RngPadResExtElt
SquareRoot(x) : FldPadElt -> FldPadElt
Sqrt(x) : RngPadElt -> RngPadElt
Sqrt(x) : RngPadResElt -> RngPadResElt
Sqrt(x) : RngPadResExtElt -> RngPadResExtElt
Sqrt(x) : FldPadElt -> FldPadElt
Given a local ring or field element x, return a square root of x. An error results if x is not a square. The result may have less precision than x.
IsSquare(x) : RngPadElt -> BoolElt, RngPadElt
IsSquare(x) : RngPadResElt -> BoolElt, RngPadResElt
IsSquare(x) : RngPadResExtElt -> BoolElt, RngPadResExtElt
IsSquare(x) : FldPadElt -> BoolElt, FldPadElt
Return whether the local ring or field element x is the square of an element in its parent and if it is, the square root is returned. The result may have less precision than x.
InverseSquareRoot(x) : RngPadElt -> RngPadElt
InverseSquareRoot(x) : RngPadResElt -> RngPadResElt
InverseSquareRoot(x) : RngPadResExtElt -> RngPadResExtElt
InverseSquareRoot(x) : FldPadElt -> FldPadElt
InverseSqrt(x) : RngPadElt -> RngPadElt
InverseSqrt(x) : RngPadResElt -> RngPadResElt
InverseSqrt(x) : RngPadResExtElt -> RngPadResExtElt
InverseSqrt(x) : FldPadElt -> FldPadElt
Given a local ring or field element x, return an inverse square root of x. The element x must be a unit. An error results if x is not a square. The result may have less precision than x.
InverseSquareRoot(x, y) : RngPadElt, RngPadElt -> RngPadElt
InverseSquareRoot(x, y) : RngPadResElt, RngPadResElt -> RngPadResElt
InverseSquareRoot(x, y) : RngPadResExtElt, RngPadResExtElt -> RngPadResExtElt
InverseSquareRoot(x, y) : FldPadElt, FldPadElt -> FldPadElt
InverseSqrt(x, y) : RngPadElt, RngPadElt -> RngPadElt
InverseSqrt(x, y) : RngPadResElt, RngPadResElt -> RngPadResElt
InverseSqrt(x, y) : RngPadResExtElt, RngPadResExtElt -> RngPadResExtElt
InverseSqrt(x, y) : FldPadElt, FldPadElt -> FldPadElt
Given local ring or field elements x and y, return an inverse square root of x lifted from an initial approximation y. The element x must be a unit. An error results if x is not a square, or if y is not a valid initial approximation to an inverse square root of x. The result may have less precision than x.
Root(x, n) : RngPadElt, RngIntElt -> RngPadElt
Root(x, n) : RngPadResElt, RngIntElt -> RngPadResElt
Root(x, n) : RngPadResExtElt, RngIntElt -> RngPadResExtElt
Root(x, n) : FldPadElt, RngIntElt -> FldPadElt
Return an n-th root of x if one exists. An error results if x is not an n-th power. The result may have less precision than x.
IsPower(x, n) : RngPadElt, RngIntElt -> BoolElt, RngPadElt
IsPower(x, n) : RngPadResElt, RngIntElt -> BoolElt, RngPadResElt
IsPower(x, n) : RngPadResExtElt, RngIntElt -> BoolElt, RngPadResExtElt
IsPower(x, n) : FldPadElt, RngIntElt -> BoolElt, FldPadElt
Return whether x is an n-th power of some element belonging to its parent and if it is return an n-th root. The result may have less precision than x.
InverseRoot(x, n) : RngPadElt, RngIntElt -> RngPadElt
InverseRoot(x, n) : RngPadResElt, RngIntElt -> RngPadResElt
InverseRoot(x, n) : RngPadResExtElt, RngIntElt -> RngPadResExtElt
InverseRoot(x, n) : FldPadElt, RngIntElt -> FldPadElt
Given a local ring or field element x, return an inverse n-th root of x. The element x must be a unit. An error results if x is not an n-th power. The result may have less precision than x.
InverseRoot(x, y, n) : RngPadElt, RngPadElt, RngIntElt -> RngPadElt
InverseRoot(x, y, n) : RngPadResElt, RngPadResElt, RngIntElt -> RngPadResElt
InverseRoot(x, y, n) : RngPadResExtElt, RngPadResExtElt, RngIntElt -> RngPadResExtElt
InverseRoot(x, y, n) : FldPadElt, FldPadElt, RngIntElt -> FldPadElt
Given local ring or field elements x and y, return an inverse n-th root of x lifted from an initial approximation y. The element x must be a unit. An error results if x is not an n-th power, or if y is not a valid initial approximation to an inverse n-th root of x. The result may have less precision than x.
V2.28, 13 July 2023