|
Go to the first, previous, next, last section, table of contents.
- dp_nf(indexlist,dpoly,dpolyarray,fullreduce)
-
- dp_nf_mod(indexlist,dpoly,dpolyarray,fullreduce,mod)
-
:: Computes the normal form of a distributed polynomial.
(The result may be multiplied by a constant in the ground field.)
- dp_true_nf(indexlist,dpoly,dpolyarray,fullreduce)
-
- dp_true_nf_mod(indexlist,dpoly,dpolyarray,fullreduce,mod)
-
:: Computes the normal form of a distributed polynomial. (The true result
is returned in such a list as
[numerator, denominator] )
- return
-
dp_nf() : distributed polynomial, dp_true_nf() : list
- indexlist
-
list
- dpoly
-
distributed polynomial
- dpolyarray
-
array of distributed polynomial
- fullreduce
-
flag
- mod
-
prime
-
Computes the normal form of a distributed polynomial.
-
dp_nf_mod() and dp_true_nf_mod() require
distributed polynomials with coefficients in a finite field as arguments.
-
The result of
dp_nf() may be multiplied by a constant in the
ground field in order to make the result integral. The same is true
for dp_nf_mod() , but it returns the true normal form if
the ground field is a finite field.
-
dp_true_nf() and dp_true_nf_mod() return
such a list as [nm,dn] .
Here nm is a distributed polynomial whose coefficients are integral
in the ground field, dn is an integral element in the ground
field and nm/dn is the true normal form.
-
dpolyarray is a vector whose components are distributed polynomials
and indexlist is a list of indices which is used for the normal form
computation.
-
When argument fullreduce has non-zero value,
all terms are reduced. When it has value 0,
only the head term is reduced.
-
As for the polynomials specified by indexlist, one specified by
an index placed at the preceding position has priority to be selected.
-
In general, the result of the function may be different depending on
indexlist. However, the result is unique for Groebner bases.
-
These functions are useful when a fixed non-distributed polynomial set
is used as a set of reducers to compute normal forms of many polynomials.
For single computation
p_nf and p_true_nf are sufficient.
[0] load("gr")$
[64] load("katsura")$
[69] K=katsura(4)$
[70] dp_ord(2)$
[71] V=[u0,u1,u2,u3,u4]$
[72] DP1=newvect(length(K),map(dp_ptod,K,V))$
[73] G=gr(K,V,2)$
[74] DP2=newvect(length(G),map(dp_ptod,G,V))$
[75] T=dp_ptod((u0-u1+u2-u3+u4)^2,V)$
[76] dp_dtop(dp_nf([0,1,2,3,4],T,DP1,1),V);
u4^2+(6*u3+2*u2+6*u1-2)*u4+9*u3^2+(6*u2+18*u1-6)*u3+u2^2+(6*u1-2)*u2+9*u1^2-6*u1+1
[77] dp_dtop(dp_nf([4,3,2,1,0],T,DP1,1),V);
-5*u4^2+(-4*u3-4*u2-4*u1)*u4-u3^2-3*u3-u2^2+(2*u1-1)*u2-2*u1^2-3*u1+1
[78] dp_dtop(dp_nf([0,1,2,3,4],T,DP2,1),V);
-1138087976845165778088612297273078520347097001020471455633353049221045677593
0005716505560062087150928400876150217079820311439477560587583488*u4^15+...
[79] dp_dtop(dp_nf([4,3,2,1,0],T,DP2,1),V);
-1138087976845165778088612297273078520347097001020471455633353049221045677593
0005716505560062087150928400876150217079820311439477560587583488*u4^15+...
[80] @78==@79;
1
- References
-
section
dp_dtop ,
section dp_ord ,
section dp_mod , dp_rat ,
section p_nf , p_nf_mod , p_true_nf , p_true_nf_mod .
Go to the first, previous, next, last section, table of contents.
|