RegularChains[FastArithmeticTools]
RegularizeDim0
test the regularity of a polynomial w.r.t. a 0-dim regular chain
Calling Sequence
Parameters
Description
Examples
RegularizeDim0(f, rc, R)
RegularizeDim0(f, rc, R, isSquareFree)
R
-
a polynomial ring
f
a polynomial of R
rc
a regular chain of R
isSquareFree
boolean value (optional)
Returns a list of pairs fi,rci where fi is a polynomial and rci is a regular chain such that the regular chains rci form a triangular decomposition of rc in the sense of Kalkbrener, each polynomial fi is equal to f modulo the saturated ideal of rci, for all i, and each polynomial fi is either zero or invertible modulo the saturated ideal of rci, for all i.
The above specification is similar to that of the command Regularize. However the algorithm of the command RegularizeDim0 makes use of modular techniques and asymptotically fast polynomial arithmetic. Consequently, when both commands apply, the latter one often outperforms the former.
The function call RegularizeDim0(p, rc, R) makes two other assumptions. First rc must be a zero-dimensional regular chain. See the RegularChains package and its subpackage ChainTools for these notions.
Secondly, R must have a prime characteristic p such that FFT-based polynomial arithmetic can be used for this computation. The higher the degrees of f and rc are, the larger e must be, such that 2e divides p−1. If the degree of f or rc is too large, then an error is raised.
If isSquareFree is true then assume that rc is a square-free regular chain, that is, its saturated ideal is radical.
with⁡RegularChains:
with⁡ChainTools:
with⁡FastArithmeticTools:
p is a large prime number
p≔962592769:
vars≔x1,x2,x3,x4:
R≔PolynomialRing⁡vars,p:
Define a random dense regular chain and a polynomial.
N≔nops⁡vars:
d≔5:
degrees≔3,4,5,8:
rc≔RandomRegularChainDim0⁡vars,degrees,p:
p≔randpoly⁡vars,dense,degree=d+rand⁡modpmodp:
t≔time⁡:
res1≔RegularizeDim0⁡p,rc,R
res1≔71⁢x12⁢x23+16⁢x12⁢x22⁢x3+83⁢x12⁢x22⁢x4+962592709⁢x12⁢x2⁢x32+962592686⁢x12⁢x2⁢x3⁢x4+962592721⁢x12⁢x2⁢x42+37⁢x12⁢x33+5⁢x12⁢x32⁢x4+962592752⁢x12⁢x3⁢x42+962592709⁢x1⁢x23⁢x3+962592735⁢x1⁢x23⁢x4+44⁢x1⁢x22⁢x32+962592767⁢x1⁢x22⁢x3⁢x4+962592722⁢x1⁢x22⁢x42+962592697⁢x1⁢x2⁢x33+962592672⁢x1⁢x2⁢x32⁢x4+10⁢x1⁢x2⁢x3⁢x42+65⁢x1⁢x2⁢x43+50⁢x1⁢x34+962592709⁢x1⁢x33⁢x4+7⁢x1⁢x32⁢x42+34⁢x1⁢x3⁢x43+52⁢x1⁢x44+962592736⁢x23⁢x32+21⁢x23⁢x3⁢x4+97⁢x23⁢x42+89⁢x22⁢x33+962592753⁢x22⁢x32⁢x4+962592700⁢x22⁢x3⁢x42+87⁢x22⁢x43+x2⁢x34+962592759⁢x2⁢x33⁢x4+962592684⁢x2⁢x32⁢x42+18⁢x2⁢x3⁢x43+962592747⁢x2⁢x44+962592722⁢x34⁢x4+962592767⁢x33⁢x42+31⁢x32⁢x43+10⁢x3⁢x44+962592720⁢x45+962578812⁢x12⁢x22+9381⁢x12⁢x2⁢x3+556⁢x12⁢x2⁢x4+962589820⁢x12⁢x32+5964⁢x12⁢x3⁢x4+962589337⁢x12⁢x42+892⁢x1⁢x23+962585240⁢x1⁢x22⁢x3+19070⁢x1⁢x22⁢x4+4231⁢x1⁢x2⁢x32+962589948⁢x1⁢x2⁢x3⁢x4+962590124⁢x1⁢x2⁢x42+962590330⁢x1⁢x33+1110⁢x1⁢x32⁢x4+90⁢x1⁢x3⁢x42+962591972⁢x1⁢x43+15464⁢x23⁢x3+5768⁢x23⁢x4+962587427⁢x22⁢x32+962589589⁢x22⁢x3⁢x4+962588964⁢x22⁢x42+962588730⁢x2⁢x33+962591904⁢x2⁢x32⁢x4+962589463⁢x2⁢x3⁢x42+962588440⁢x2⁢x43+2863⁢x34+962583397⁢x33⁢x4+8218⁢x32⁢x42+962587139⁢x3⁢x43+962591933⁢x44+962099056⁢x12⁢x2+513519⁢x12⁢x3+961688036⁢x12⁢x4+531043⁢x1⁢x22+962353937⁢x1⁢x2⁢x3+451667⁢x1⁢x2⁢x4+21178⁢x1⁢x32+962093493⁢x1⁢x3⁢x4+361086⁢x1⁢x42+961732889⁢x23+513650⁢x22⁢x3+961839250⁢x22⁢x4+277009⁢x2⁢x32+962427116⁢x2⁢x3⁢x4+275697⁢x2⁢x42+962387348⁢x33+383270⁢x32⁢x4+962280827⁢x3⁢x42+291891⁢x43+871332243⁢x12+929352501⁢x1⁢x2+707150581⁢x1⁢x3+343331851⁢x1⁢x4+40519050⁢x22+128018783⁢x2⁢x3+726074106⁢x2⁢x4+960581285⁢x32+181853712⁢x3⁢x4+678057550⁢x42+267999103⁢x1+261080429⁢x2+747627767⁢x3+576065319⁢x4+549411107,regular_chain
time⁡−t
0.760
We can see that Regularize is slower than RegularizeDim0.
res2≔Regularize⁡p,rc,R
res2≔rc,
20.997
These additional calculations show that the two returned regular chains are equivalent (i.e. they have the same saturated ideals).
EqualSaturatedIdeals⁡res112,res211,R
true
NormalForm⁡res111−p,res211,R
0
NormalFormDim0⁡res111−p,res211,R
See Also
ChainTools
Inverse
IsRegular
RegularChains
Regularize
Download Help Document