# Singular

#### D.13.4.39 initial

Procedure from library `tropical.lib` (see tropical_lib).

Usage:
initial(f,w); f poly, w intvec or bigintmat
initial(I,w); I ideal, w intvec or bigintmat

Assume:
I reduced Groebner basis,
w in the maximal Groebner cone of I with respect to the current ordering

Return:
poly or ideal, the initial form of f or the initial ideal of I with respect to w

Example:
 ```LIB "tropical.lib"; ==> Welcome to polymake version ==> Copyright (c) 1997-2015 ==> Ewgenij Gawrilow, Michael Joswig (TU Darmstadt) ==> http://www.polymake.org LIB "poly.lib"; ==> // ** redefining bino (LIB "poly.lib";) ==> // ** redefining hilbPoly (LIB "poly.lib";) ==> // ** redefining hilbPoly (LIB "poly.lib";) ==> // ** redefining substitute (LIB "poly.lib";) ==> // ** redefining substitute (LIB "poly.lib";) ==> // ** redefining cyclic (LIB "poly.lib";) ==> // ** redefining cyclic (LIB "poly.lib";) ==> // ** redefining elemSymmPoly (LIB "poly.lib";) ==> // ** redefining elemSymmPoly (LIB "poly.lib";) ==> // ** redefining elemSymmId (LIB "poly.lib";) ==> // ** redefining elemSymmId (LIB "poly.lib";) ==> // ** redefining katsura (LIB "poly.lib";) ==> // ** redefining katsura (LIB "poly.lib";) ==> // ** redefining kat_var (LIB "poly.lib";) ==> // ** redefining kat_var (LIB "poly.lib";) ==> // ** redefining freerank (LIB "poly.lib";) ==> // ** redefining freerank (LIB "poly.lib";) ==> // ** redefining is_zero (LIB "poly.lib";) ==> // ** redefining is_zero (LIB "poly.lib";) ==> // ** redefining maxcoef (LIB "poly.lib";) ==> // ** redefining maxcoef (LIB "poly.lib";) ==> // ** redefining maxdeg (LIB "poly.lib";) ==> // ** redefining maxdeg (LIB "poly.lib";) ==> // ** redefining maxdeg1 (LIB "poly.lib";) ==> // ** redefining maxdeg1 (LIB "poly.lib";) ==> // ** redefining mindeg (LIB "poly.lib";) ==> // ** redefining mindeg (LIB "poly.lib";) ==> // ** redefining mindeg1 (LIB "poly.lib";) ==> // ** redefining mindeg1 (LIB "poly.lib";) ==> // ** redefining normalize (LIB "poly.lib";) ==> // ** redefining normalize (LIB "poly.lib";) ==> // ** redefining rad_con (LIB "poly.lib";) ==> // ** redefining rad_con (LIB "poly.lib";) ==> // ** redefining lcm (LIB "poly.lib";) ==> // ** redefining lcm (LIB "poly.lib";) ==> // ** redefining content (LIB "poly.lib";) ==> // ** redefining content (LIB "poly.lib";) ==> // ** redefining mod2id (LIB "poly.lib";) ==> // ** redefining mod2id (LIB "poly.lib";) ==> // ** redefining id2mod (LIB "poly.lib";) ==> // ** redefining id2mod (LIB "poly.lib";) ==> // ** redefining subrInterred (LIB "poly.lib";) ==> // ** redefining subrInterred (LIB "poly.lib";) ==> // ** redefining newtonDiag (LIB "poly.lib";) ==> // ** redefining newtonDiag (LIB "poly.lib";) ring r = 0,(x,y,z),dp; ideal I = cyclic(3); intvec w = 1,1,1; option(redSB); ideal stdI = std(I); stdI; ==> stdI[1]=x+y+z ==> stdI[2]=y2+yz+z2 ==> stdI[3]=z3-1 ideal inI = initial(stdI,w); inI; ==> inI[1]=x+y+z ==> inI[2]=y2+yz+z2 ==> inI[3]=z3 ```