In [1]: groebner_basis([x(1)+x(2),(x(2)+x(1)+1)*x(3)]) Out[1]: [x(1) + x(2), x(3)]
There exists a set of default options for groebner_basis.
They can be seen, but not manipulated via accessing groebner_basis.options
.
A second layer of heuristics is incorporated into the groebner_basis-function, to choose dynamically the best options depending on the ordering and the given ideal.
Every option given explicitely by the user takes effect, but for the other options the default may be overwritten by the script.
This behaviour can be turned off by calling
groebner_basis(I,heuristic=False).
Important options are the following:
other_ordering_first
, possible values are False or an ordering code.
In practice, many Boolean examples have very few solutions and a very easy Gröbner basis. So, a complex walk algorithm (which cannot be implemented using the POLYBORI data structures) seems unnecessary, as such Gröbner bases can be converted quite fast by the
normal Buchberger algorithm from one ordering into another ordering.
faugere
, turn off or on the linear algebra
linear_algebra_in_last_block
, this affects the last block of block orderings and degree orderings. If it is set to True linear algebra takes affect in this block.
selection_size
, maximum number of polynomials for parallel reductions
prot
, turn off or on the protocol
red_tail
, tail reductions in intermediate polynomials, this options affects mainly heuristics. The reducedness of the output polynomials can only be guaranteed by the option redsb
minsb
, return a minimal Gröbner basis
redsb
, return a reduced Gröbner basis (minimal and all elements are tail reduced)
clean_and_restart_algorithm
, from time to time restart the algorithm to clean the system of non minimal elements