# Package sagbi/SB.SAGBITimeout

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

## SB.SAGBITimeout

Same as SAGBI, but stops after a given time and throws an error if the computation isn't finished yet.

### Syntax

```SB.SAGBITimeout(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,y,z];
S := SB.SAGBITimeout([x^2 -z^2,  x*y +z^2,  y^2 -2*z^2],3);
indent(S);
-- [
--   y^2 -2*z^2,
--   x*y +z^2,
--   x^2 -z^2,
--   x^2*z^2 +x*y*z^2 +(1/2)*y^2*z^2 +(-1/2)*z^4
-- ]
```

#### Example

```Use QQ[x,y];
SB.SAGBITimeout([x+y,x*y,x*y^2],10); -- K[x+y,xy,xy^2] does not 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.")
-->  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
```