View on GitHub

Exact p-Adics

A Magma package for exact p-adic computation

Multivariate polynomials

Contents

Creation of rings

PolynomialRing (F :: FldPadExact, n :: RngIntElt)

-> RngMPol_FldPadExact

A polynomial ring of rank n over F.

Basic operations on rings

BaseRing (R :: RngMPol_FldPadExact)

-> FldPadExact

The coefficient ring of R.

Rank (R :: RngMPol_FldPadExact)

-> RngIntElt

The rank of R.

AssignNames (~R :: RngMPol_FldPadExact, names :: [MonStgElt])

Assigns names to the generators of R.

Name (R :: RngMPol_FldPadExact, i :: RngIntElt)

'.' (R :: RngMPol_FldPadExact, i :: RngIntElt)

-> RngMPolElt_FldPadExact

The ith generator of R.

GeneratorsSequence (R :: RngMPol_FldPadExact)

-> []

The indeterminates generating R.

'eq' (R :: RngMPol_FldPadExact, S :: RngMPol_FldPadExact)

-> BoolElt

Equality. True if and only if R and S were generated by the same call to PolynomialRing.

Creation of polynomials

IsCoercible (R :: RngMPol_FldPadExact, X)

-> BoolElt, Any

True if X is coercible into R. If so, also returns the coerced element. If not, returns a string explaining why.

Succeeds if either:

CanChangeRing (f :: RngMPolElt_FldPadExact, K :: FldPadExact)

CanChangeRing (f :: RngMPolElt, K :: FldPadExact)

-> BoolElt, RngMPolElt_FldPadExact

True if f can be coerced to a polynomial over K. If so, also returns the coerced polynomial. If not, returns a string explaining why.

Basic operations on polynomials

BaseRing (f :: RngMPolElt_FldPadExact)

-> FldPadExact

The base ring of f.

DotProduct (fs :: [RngMPolElt_FldPadExact], xs :: [FldPadExactElt])

-> RngMPolElt_FldPadExact

Equivalent to &+[fs[i]*xs[i] : i in [1..n]] where n = #fs = #xs.

IsIntegral (f :: RngMPolElt_FldPadExact)

-> BoolElt

True iff all coefficients of f have valuation at least 0.

ShiftArgument (f :: RngMPolElt_FldPadExact, xs :: [FldPadExactElt])

-> RngMPolElt_FldPadExact

The polynomial f(X1+xs[1],X2+xs[2]...).

'*' (f :: RngMPolElt_FldPadExact, x :: FldPadExactElt)

-> RngMPolElt_FldPadExact

Multiplication of f by a scalar x.

ShiftValuation (f :: RngMPolElt_FldPadExact, n)

-> RngMPolElt_FldPadExact

Shifts the valuation of the eth coefficient of f by n(e) where n is a valuation for f.

ShiftSlope (f :: RngMPolElt_FldPadExact, ns :: [])

-> RngMPolElt_FldPadExact

Shifts the valuation of the eth coefficient of f by ns.e.

'&+' (fs :: [RngMPolElt_FldPadExact])

-> RngMPolElt_FldPadExact

Sum.

Approximation

Intrinsics to do with the current approximation of an exact p-adic polynomial.

_ExactpAdics_PrecisionRequired (R :: RngMPol_FldPadExact, xf :: RngMPolElt, apr)

-> RngIntElt

The (relative) precision required in the base ring to approximate f to absolue precision apr.

_ExactpAdics_WeakValuationOfApproximation (R :: RngMPol_FldPadExact, xf :: RngMPolElt)

-> Val_RngMPolElt_FldPad

The weak valuation of xf.

_ExactpAdics_AbsolutePrecisionOfApproximation (R :: RngMPol_FldPadExact, xf :: RngMPolElt)

-> Val_RngMPolElt_FldPad

The weak valuation of xf.

IncreaseAbsolutePrecision_Lazy (R :: RngMPol_FldPadExact, pr :: RngIntElt)

-> ExactpAdics_Gettr

Increases the precision of the approximation to R to at least pr.

Approximation_Lazy (R :: RngMPol_FldPadExact, pr :: RngIntElt)

-> ExactpAdics_Gettr

An approximation to R whose base field has default precision pr.

MinValuation (f :: RngMPolElt_FldPadExact)

-> RngIntElt

The smallest valuation of the coefficients of f.

Parameters

IsWeaklyZero (f :: RngMPolElt_FldPadExact)

-> BoolElt

True if f is weakly zero.

Parameters

Printing

Format (f :: RngMPolElt_FldPadExact)

-> MonStgElt

A string representation of f.

Parameters

Hensel lifting

IsHenselLiftable (fs :: [RngMPolElt_FldPadExact], xs :: [FldPadExactElt])

-> BoolElt, []

True if xs are Hensel liftable to a system of roots of fs. If so, also returns the system of roots.

fs must be a system of n equations of rank n, and xs must be a sequence of n p-adic numbers.

Parameters