|
D.15.28.2 nfmodStd
Procedure from library nfmodstd.lib (see nfmodstd_lib).
- Usage:
- nfmodStd(I, #); I ideal or module, # optional parameters
- Return:
- standard basis of I over algebraic number field
- Note:
- The procedure passes to modStd if the ground field has no
parameter. In this case, the optional parameters # (if given)
are directly passed to modStd.
Example:
| LIB "nfmodstd.lib";
ring r1 = (0,a),(x,y),dp;
minpoly = a^2+1;
ideal k = (a/2+1)*x^2+2/3y, 3*x-a*y+ a/7+2;
ideal I = nfmodStd(k);
I;
==> I[1]=x+(-1/3a)*y+(1/21a+2/3)
==> I[2]=y2+(32/5a-178/35)*y+(-4/7a-195/49)
ring rm = (0,a),(x,y),(c,dp);
minpoly = a^3+2a+7;
module M = [(a/2+1)*x^2+2/3y, 3*x-a*y+ a/7+2], [ax, y];
M = nfmodStd(M);
M;
==> M[1]=[0,x2y+(12/5a2-24/5a+42/5)*x2+(8/5a2-6/5a+28/5)*xy+(4/15a2-8/15a+8/5\
)*y2+(48/35a2-106/35a+24/5)*x]
==> M[2]=[y,(3/14a2-9/28)*xy+9/2*x+(-3/2a)*y+(3/14a+3)]
==> M[3]=[x,(-1/7a2-2/7)*y]
ring r2 = (0,a),(x,y,z),dp;
minpoly = a^3 +2;
ideal k = (a^2+a/2)*x^2+(a^2 -2/3*a)*yz, (3*a^2+1)*zx-(a+4/7)*y+ a+2/5;
ideal IJ = nfmodStd(k);
IJ;
==> IJ[1]=xz+(138/763a2+65/763a-46/763)*y+(-96/545a2-31/545a+32/545)
==> IJ[2]=x2+(28/45a2-14/45a+52/45)*yz
==> IJ[3]=yz2+(-3354/23653a2-6390/23653a-7683/47306)*xy+(993/6758a2+4104/1689\
5a+4449/33790)*x
ring r3 = 0, (x,y), dp; // ring without parameter
ideal I = x2 + y, xy - 7y + 2x;
ideal J1 = nfmodStd(I);
J1;
==> J1[1]=y2-14x+51y
==> J1[2]=xy+2x-7y
==> J1[3]=x2+y
module J2 = nfmodStd(module(I));
J2;
==> J2[1]=y2*gen(1)-14x*gen(1)+51y*gen(1)
==> J2[2]=xy*gen(1)+2x*gen(1)-7y*gen(1)
==> J2[3]=x2*gen(1)+y*gen(1)
ring r4 = 0, (x,y), (c,dp);
module I = [x2, x-y], [xy,0], [0,-7y + 2x];
I=nfmodStd(I);
I;
==> I[1]=[0,x-7/2y]
==> I[2]=[0,y2]
==> I[3]=[xy]
==> I[4]=[x2,5/2y]
| See also:
modStd.
|