Multivariate polynomials
Contents
- Creation of rings
- Basic operations on rings
- Creation of polynomials
- Basic operations on polynomials
- Approximation
- Printing
- Hensel lifting
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 i
th 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:
X
is an element ofR
X
is aRngMPolElt
and its coefficients are coercible into the base ring ofR
X
is a tuple<cs, es>
wherecs
is a sequence of coefficients coercible into the base ring ofR
andes
is a corresponding sequence of exponent vectors.X
is a tuple<init, mkupdate>
or<init, mkupdate, data>
whereinit
is an initial approximation (aRngMPolElt
) andmkupdate
is a function making an update function.
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 e
th 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 e
th 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
Strategy
IsWeaklyZero (f :: RngMPolElt_FldPadExact)
-> BoolElt
True if f
is weakly zero.
Parameters
Strategy
Printing
Format (f :: RngMPolElt_FldPadExact)
-> MonStgElt
A string representation of f
.
Parameters
APr
: Output to this absolute precision.
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
Strategy := "default"
: The precision strategy to use.Slopes
: When given, must be a sequence ofn
rationals to slope the equations by. That is, conceptually we multiply thei
th variable bypi^Slopes[i]
andxs[i]
correspondingly bypi^-Slopes[i]
. When not given, the zero slope is used.Shifts
: When given, must be a sequence ofn
rationals to shift the equations by. That is, conceptually we multiply thei
th equation bypi^Shifts[i]
. When not given, the best shifts are chosen.