up previous next
gin    --    generic initial ideal


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.


with verbosity >=50 it prints

the two random changes of coordinates used

and the NewRingTwinFloat precision used.

/**/  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));
RandIdeal: g = [
  742383*x -909613*y,
  129429*x +49607*y +832207*z
TryPrecisions: -- trying with FloatPrecision 64
RandIdeal: g = [
  -127769*x +272107*y,
  377492*x +778394*y -547019*z
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