Package sagbi/SB.SAGBITimeout
From ApCoCoAWiki
SB.SAGBITimeout
Same as SAGBI, but stops after a given time and throws an error if the computation isn't finished yet.
Syntax
SB.SAGBI(G:LIST of POLY,t:RAT):LIST of POLY
Description
This function computes a SAGBI basis and throws an error if the computation isn't finished after t seconds. If the computation terminates within t seconds, a reduced SAGBI basis of the subalgebra generated by the set G is returned.
@param G A list of polynomials which generates a subalgebra.
@param t A rational number specifying the time limit.
@return A list of polynomials which form a finite SAGBI-basis of the subalgebra generated by G.
Example
Use QQ[x[1..3]]; S := SB.SAGBITimeout([x[1]^2-x[3]^2,x[1]*x[2]+x[3]^2,x[2]^2-2*x[3]^2],10); indent(S); ----------------------------------------------------------------------------- [ x[2]^2 -2*x[3]^2, x[1]*x[2] +x[3]^2, x[1]^2 -x[3]^2, x[1]^2*x[3]^2 +x[1]*x[2]*x[3]^2 +(1/2)*x[2]^2*x[3]^2 +(-1/2)*x[3]^4 ]
Example
Use QQ[x,y]; SAGBITimeout([x+y,x*y,x*y^2],10); -- K[x+y,xy,xy^2] doesn't have a finite SAGBI basis ----------------------------------------------------------------------------- --> ERROR: Timeout after 10.161 seconds. --> WHERE: at line 618 (column 2) of sagbi.cpkg5 --> error("Timeout after " + DecimalStr(t1-t0) + " seconds.") --> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^