up previous next
 CallOnGroebnerFanIdeals

apply a function to Groebner fan ideals

 Syntax
 ```CallOnGroebnerFanIdeals(I: IDEAL, FUN: FUNCTION) ```

 Description
Storing all the possible different (reduced) GBases in a Groebner fan is practicable only for a small example; larger ideals may have thousands or even millions of different Groebner bases. Typically we are interested only in those bases satisfying a certain property.

This function calls a given function on each Groebner bases (stored in an ideal in a suitable ring) successively, without having to store them all in a big list.

Note: using this needs a little technical ability, but might make the difference between getting an answer or fill up the computer's memory.

 Example
 ```-- print ord and GBasis if ideal I has GBases of length 3: define GBOfLen3(I) if len(GBasis(I))=3 then println; println OrdMat(RingOf(I)); println GBasis(I); endif; enddefine; /**/ use R ::= QQ[a,b,c]; /**/ I := ideal(a^5+b^3+c^2-1, b^2+a^2+c-1, c^3+a^6+b^5-1); /**/ CallOnGroebnerFanIdeals(I, GBOfLen3); ***************.... matrix(ZZ, [[3, 7, 7], [3, 6, 8], [0, 0, -1]]) [b^2+c+a^2-1, a^5+c^2-b*c-a^2*b+b-1, c^3+b*c^2+2*a^2*b*c+a^4*b-a*c^2+a*b*c+a^3*b-2*b*c-2*a^2*b-a*b+b+a-1] * matrix(ZZ, [[6, 7, 14], [6, 5, 15], [0, 0, -1]]) [c+b^2+a^2-1, -b^6-3*a^2*b^4-3*a^4*b^2+b^5+3*b^4+6*a^2*b^2+3*a^4-3*b^2-3*a^2, a^5+b^4+2*a^2*b^2+a^4+b^3-2*b^2-2*a^2] ***************.... ```