Overview of the RegularChains:-FastArithmeticTools Subpackage of RegularChains
Calling Sequence
Description
List of RegularChains:-FastArithmeticTools Subpackage Commands
Examples
References
RegularChains:-FastArithmeticTools:-command(arguments)
command(arguments)
The RegularChains:-FastArithmeticTools subpackage contains a collection of commands for computing with regular chains in prime characteristic using asymptotically fast algorithms.
Most of the commands of this package implements core operations on regular chains such as regularity test and polynomial GCD modulo a regular chain. However, these commands have several constraints. On top of the characteristic issue (mentioned above) the current regular chain must have dimension zero or one. There is only one exception: the command RegularGcdBySpecializationCube which makes no assumption on dimension.
In order to call one of the commands of this subpackage the characteristic of the polynomial ring must be a prime number p satisfying the following properties. First, it should not be greater than 962592769. Secondly, the number p-1 should be divisible by a sufficiently large power of 2. 2^20 is often sufficient. The best prime number p under these constraints is 469762049 for which p-1 writes 2^26 * 7. If this power of 2 is not large enough, then a clean error is returned.
The commands IteratedResultantDim0 and IteratedResultantDim1 compute the iterated resultant of a polynomial w.r.t. a regular chain of dimension 0 and 1, respectively.
The commands NormalFormDim0 and ReduceCoefficientsDim0 compute the normal form of a polynomial w.r.t. a zero-dimensional regular chain.
The commands NormalizePolynomialDim0 and NormalizeRegularChainDim0 normalize a polynomial (w.r.t. a zero-dimensional regular chain) and a regular chain (w.r.t. itself).
The commands RandomRegularChainDim0 and RandomRegularChainDim1 compute random regular chains of given degrees.
The command RegularizeDim0 tests whether a polynomial is invertible modulo a zero-dimensional regular chain.
The commands RegularGcdBySpecializationCube, ResultantBySpecializationCube and SubresultantChainSpecializationCube compute resultants and polynomial GCDs modulo a regular chain using fast evaluation and interpolation.
The following is the list of the available commands.
BivariateModularTriangularize
IteratedResultantDim0
IteratedResultantDim1
NormalFormDim0
NormalizePolynomialDim0
NormalizeRegularChainDim0
RandomRegularChainDim0
RandomRegularChainDim1
ReduceCoefficientsDim0
RegularGcdBySpecializationCube
RegularizeDim0
ResultantBySpecializationCube
SubresultantChainSpecializationCube
with⁡RegularChains:
with⁡FastArithmeticTools:
with⁡ChainTools:
Define a ring of polynomials.
p≔962592769;vars≔x1,x2,x3,x4:R≔PolynomialRing⁡vars,p:
p≔962592769
Randomly generating (dense) regular chain and polynomial
N≔nops⁡vars:dg≔3:degs≔seq⁡4,i=1..N:pol≔randpoly⁡vars,dense,degree=dg+rand⁡modpmodp:tc≔RandomRegularChainDim0⁡vars,degs,p:Equations⁡tc,R:
Compute the iterated resultant of pol w.r.t. tc
r1≔IteratedResultantDim0⁡pol,tc,R
r1≔446889812
Compare with the generic algorithm (non-fast and non-modular algorithm) of the command IteratedResultant.
r2≔IteratedResultant⁡pol,tc,R
r2≔446889812
The results computed IteratedResultantDim0 and IteratedResultant are equivalent.
Expand⁡r1−r2modp
0
Define another ring of polynomials.
p≔962592769:vars≔x,y,z:N≔nops⁡vars:
R≔PolynomialRing⁡vars,p:
Generate a regular chain and a random polynomial.
c1≔z2+286748183⁢z+134705551:
c2≔y2+914706789⁢y⁢z+686506773⁢y+823875308⁢z+417988453:
c3≔x2+224047618⁢x⁢y⁢z+197329999⁢x⁢y+838274835⁢x⁢z+792563861⁢x+600038529⁢y⁢z+434770098⁢y+251400283⁢z+918968185:
lf≔c1,c2,c3:
tc≔Chain⁡lf,Empty⁡R,R:
lf≔x+c1⁢c2⁢c3,c1−c2⁢c1−c3,1+c1⁢c2−c3:
dg≔10:
q1≔randpoly⁡vars,dense,degree=dg+rand⁡modpmodp:
q2≔randpoly⁡vars,dense,degree=dg+rand⁡modpmodp:
q3≔randpoly⁡vars,dense,degree=dg+rand⁡modpmodp:
r≔randpoly⁡vars,dense,degree=dg+rand⁡modpmodp:
f≔q1⁢c1+q2⁢c2+q3⁢c3+r:
Compute the normal form of f.
nf1≔NormalFormDim0⁡f,tc,R
nf1≔328601399⁢x⁢y⁢z+201896638⁢x⁢y+156935587⁢x⁢z+566967624⁢y⁢z+648149447⁢x+308862802⁢y+921920449⁢z+743421169
Compare with the generic algorithm (non-fast and non-modular algorithm) of the command NormalForm.
nf2≔NormalForm⁡f,tc,R
nf2≔328601399⁢x⁢y⁢z+201896638⁢x⁢y+156935587⁢x⁢z+566967624⁢y⁢z+648149447⁢x+308862802⁢y+921920449⁢z+743421169
The results computed by NormalFormDim0 and NormalForm are equivalent.
nf1−nf2modp
X. Li and M. Moreno Maza. "Efficient implementation of polynomial arithmetic in a multilevel programming environment." Proc. International Congress of Mathematical Software, p.12-23, LNCS Vol.4151, Springer, 2006.
X. Li, M. Moreno Maza and E. Schost. "Fast arithmetic for triangular sets: from theory to practice." ISSAC'2007, ACM Press. p.269-276, 2007.
X. Li and M. Moreno Maza. "Multithreaded parallel implementation of arithmetic operations modulo a triangular set." PASCO'2007, ACM Press, p.53-59, 2007.
A. Filatei, X. Li, M. Moreno Maza and E. Schost. "Implementation techniques for fast polynomial arithmetic in a high-level programming environment." ISSAC'2006, p.93-100, ACM Press, 2006.
X. Li, M. Moreno Maza, R. Rasheed and E. Schost. "High-Performance Symbolic Computation in a Hybrid Compiled-Interpreted Programming Environment." Proc. 2008 International Conference on Computational Science and Applications, IEEE Computer Society, pp 331--341 2008.
X. Li, M. Moreno Maza, R. Rasheed and E. Schost. "The Modpn library: Bringing fast polynomial arithmetic into Maple." Proc. 2008 Milestones in Computer Algebra, Stonehaven Bay, Trinidad and Tobago, 2008.
X. Li, M. Moreno Maza and W. Pan. "Computations modulo regular chains." Technical Report, University of Western Ontario, 2009.
See Also
module
RegularChains
UsingPackages
with
Download Help Document