make a polynomial regular or null with respect to a regular chain
Regularize(p, rc, R)
Regularize(p, rc, R, 'normalized'='yes')
Regularize(p, rc, R, 'normalized'='strongly')
polynomial of R
regular chain of R
(optional) boolean flag
The command Regularize(p, rc, R) returns a list made of two lists. The first one consists of regular chains reg_i such that p is regular modulo the saturated ideal of reg_i. The second one consists of regular chains sing_i such that p is null modulo the saturated ideal of sing_i.
In addition, the union of the regular chains of these lists is a decomposition of rc in the sense of Kalkbrener.
If 'normalized'='yes' is passed, all the returned regular chains are normalized.
If 'normalized'='strongly' is passed, all the returned regular chains are strongly normalized.
If 'normalized'='yes' is present, rc must be normalized.
If 'normalized'='strongly' is present, rc must be strongly normalized.
The command RegularizeDim0 implements another algorithm with the same purpose as that of the command Regularize. However it is specialized to zero-dimensional regular chains in prime characteristic. When both algorithms apply, the latter usually outperforms the former one.
This command is part of the RegularChains[ChainTools] package, so it can be used in the form Regularize(..) only after executing the command with(RegularChains[ChainTools]). However, it can always be accessed through the long form of the command by using RegularChains[ChainTools][Regularize](..).
R := PolynomialRing([x, y, z]);
rc := Empty(R);
rc := Chain([z*(z-1), y*(y-2)], rc, R); Equations(rc, R);
p := z* x+y;
reg, sing := op(Regularize(p, rc, R));
map(Equations, reg, R);
map(Equations, sing, R);
[seq(SparsePseudoRemainder(p, reg[i], R), i=1..nops(reg))];
seq(SparsePseudoRemainder(p, sing[i], R), i=1..nops(sing));
Download Help Document
What kind of issue would you like to report? (Optional)