Google

Go to the first, previous, next, last section, table of contents.


dp_nf, dp_nf_mod, dp_true_nf, dp_true_nf_mod

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.