up previous next
gin    --    generic initial ideal


Syntax
gin(I: IDEAL): IDEAL

Description
These functions return the [probabilistic] gin (generic initial ideal) of the ideal I. It is obtained by computing twice the leading term ideal of g(I), where g is a random change of coordinates with integer coefficients in the range [-10^6, 10^6] using TwinFloats (see NewRingTwinFloat ) to allow a much wider range of coefficients than a direct computation over the rationals (use second argument to see the TwinFloat precision needed).

See rgin for computing wrt DegRevLex independently of the current ring.

Verbosity:

with verbosity >=50 it prints

the two random changes of coordinates used

and the NewRingTwinFloat precision used.

Example
/**/  use R ::= QQ[x,y,z];
/**/  gin(ideal(y^2-x*z, x^2*z-y*z^2));  -- computed twice using TwinFloats
ideal(x^2, x*y^2, y^4)

/**/  SetVerbosityLevel(50); --> get some internal progress information
/**/  gin(ideal(y^7-x^4*z^3, x^5*z-y*z^5));
[L50,RandIdeal]   change coord = [
  484819*x,
  -844426*x -7426*y,
  695955*x +168758*y -239080*z
]
[L50,TryPrecisions]   -- trying with FloatPrecision 64
[L50,RandIdeal]   change coord = [
  304634*x,
  480790*x -499447*y,
  -732749*x -840921*y -466314*z
]
[L50,TryPrecisions]   -- trying with FloatPrecision 64
ideal(x^6,  x^5*y^2,  x^4*y^4,  x^3*y^6,  x^2*y^8,  x*y^10,  y^12)

See Also