# 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$.
