Singular

7.5.4.0. minIntRoot
Procedure from library `dmod.lib` (see dmod_lib).

Usage:
minIntRoot(P, fact); P an ideal, fact an int

Return:
int

Purpose:
minimal integer root of a maximal ideal P

Note:
if fact==1, P is the result of some 'factorize' call,
else P is treated as the result of bernstein::gmssing.lib
in both cases without constants and multiplicities

Example:
 ```LIB "dmod.lib"; ring r = 0,(x,y),ds; poly f1 = x*y*(x+y); ideal I1 = bernstein(f1)[1]; // a local Bernstein poly I1; ==> I1[1]=-4/3 ==> I1[2]=-1 ==> I1[3]=-2/3 minIntRoot(I1,0); ==> -1 poly f2 = x2-y3; ideal I2 = bernstein(f2)[1]; I2; ==> I2[1]=-7/6 ==> I2[2]=-1 ==> I2[3]=-5/6 minIntRoot(I2,0); ==> -1 // now we illustrate the behaviour of factorize // together with a global ordering ring r2 = 0,x,dp; poly f3 = 9*(x+2/3)*(x+1)*(x+4/3); //global b-polynomial of f1=x*y*(x+y) ideal I3 = factorize(f3,1); I3; ==> I3[1]=x+1 ==> I3[2]=3x+2 ==> I3[3]=3x+4 minIntRoot(I3,1); ==> -1 // and a more interesting situation ring s = 0,(x,y,z),ds; poly f = x3 + y3 + z3; ideal I = bernstein(f)[1]; I; ==> I[1]=-2 ==> I[2]=-5/3 ==> I[3]=-4/3 ==> I[4]=-1 minIntRoot(I,0); ==> -2 ```