# Singular

#### D.15.19.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] ```