# msolve - Man Page

manual page for msolve

## Description

msolve library for polynomial system solving implemented by J. Berthomieu, C. Eder, M. Safey El Din

### Basic call

./msolve **-f** [FILE1] **-o** [FILE2]

FILE1 and FILE2 are respectively the input and output files

Standard options

**-f** FILE File name (mandatory).

**-h** Prints this help. **-o** FILE Name of output file. **-t** THR Number of threads to be used.

Default: 1.

**-v** n Level of verbosity, 0 - 2

0 - no output (default). 1 - global information at the start and

end of the computation.

2 - detailed output for each step of the

algorithm, e.g. matrix sizes, #pairs, ...

### Input file format

- first line: variables separated by a comma - second line: characteristic of the field - next lines provide the polynomials (one per line),

separated by a comma (no comma after the final polynomial)

Output file format: When there is no solution in an algebraic closure of the base field [-1]: Where there are infinitely many solutions in an algebraic closure of the base field: [1, nvars, **-1**,[]]: Else: Over prime fields: a rational parametrization of the solutions When input coefficients are rational numbers: real solutions to the input system (see the **-P** flag to recover a parametrization of the solutions) See the msolve tutorial for more details (https://msolve.lip6.fr)

Advanced options:

**-F** FILE File name encoding parametrizations in binary format.

**-g** GB Prints reduced Groebner bases of input system for

first prime characteristic w.r.t. grevlex ordering. One element per line is printed, commata separated. 0 - Nothing is printed. (default) 1 - Leading ideal is printed. 2 - Full reduced Groebner basis is printed.

**-c** GEN Handling genericity: If the staircase is not generic

enough, msolve can automatically try to fix this situation via first trying a change of the order of variables and finally adding a random linear form with a new variable (smallest w.r.t. DRL) 0 - Nothing is done, msolve quits. 1 - Change order of variables. 2 - Change order of variables, then try adding a

random linear form. (default)

### -C Use sparse-FGLM-col algorithm

Given an input file with k polynomials compute the quotient of the ideal generated by the first k-1 polynomials with respect to the kth polynomial.

**-e** ELIM Define an elimination order: msolve supports two

blocks, each block using degree reverse lexicographical monomial order. ELIM has to be a number between 1 and #variables-1. The basis the first block eliminated is then computed.

**-I** Isolates the real roots (provided some univariate data)

without re-computing a Gröbner basis Default: 0 (no).

### -l LIN Linear algebra variant to be applied

1 - exact sparse / dense 2 - exact sparse (default)

42 - sparse / dense linearization (probabilistic) 44 - sparse linearization (probabilistic)

**-m** MPR Maximal number of pairs used per matrix.

Default: 0 (unlimited).

**-n** NF Given n input generators compute normal form of the last NF

elements of the input w.r.t. a degree reverse lexicographical Gröbner basis of the irst (n - NF) input elements. At the moment this only works for prime field computations. Combining this option with the "-i" option assumes that the first (n - NF) elements generate already a degree reverse lexicographical Gröbner basis.

**-p** PRE Precision of the real root isolation.

Default is 32.

**-P** PAR Get also rational parametrization of solution set.

Default is 0. For a detailed description of the output format please see the general output data format section above.

**-q** Q Uses signature-based algorithms.

Default: 0 (no).

**-r** RED Reduce Groebner basis.

Default: 1 (yes).

**-s** HTS Initial hash table size given

as power of two. Default: 17.

### -S Use f4sat saturation algorithm

Given an input file with k polynomials compute the saturation of the ideal generated by the first k-1 polynomials with respect to the kth polynomial.

**-u** UHT Number of steps after which the

hash table is newly generated. Default: 0, i.e. no update.

msolve library for polynomial system solving implemented by J. Berthomieu, C. Eder, M. Safey El Din

### Basic call

./msolve **-f** [FILE1] **-o** [FILE2]

FILE1 and FILE2 are respectively the input and output files

Standard options

**-f** FILE File name (mandatory).

**-h** Prints this help. **-o** FILE Name of output file. **-t** THR Number of threads to be used.

Default: 1.

**-v** n Level of verbosity, 0 - 2

0 - no output (default). 1 - global information at the start and

end of the computation.

2 - detailed output for each step of the

algorithm, e.g. matrix sizes, #pairs, ...

### Input file format

- first line: variables separated by a comma - second line: characteristic of the field - next lines provide the polynomials (one per line),

separated by a comma (no comma after the final polynomial)

Output file format: When there is no solution in an algebraic closure of the base field [-1]: Where there are infinitely many solutions in an algebraic closure of the base field: [1, nvars, **-1**,[]]: Else: Over prime fields: a rational parametrization of the solutions When input coefficients are rational numbers: real solutions to the input system (see the **-P** flag to recover a parametrization of the solutions) See the msolve tutorial for more details (https://msolve.lip6.fr)

Advanced options:

**-F** FILE File name encoding parametrizations in binary format.

**-g** GB Prints reduced Groebner bases of input system for

first prime characteristic w.r.t. grevlex ordering. One element per line is printed, commata separated. 0 - Nothing is printed. (default) 1 - Leading ideal is printed. 2 - Full reduced Groebner basis is printed.

**-c** GEN Handling genericity: If the staircase is not generic

enough, msolve can automatically try to fix this situation via first trying a change of the order of variables and finally adding a random linear form with a new variable (smallest w.r.t. DRL) 0 - Nothing is done, msolve quits. 1 - Change order of variables. 2 - Change order of variables, then try adding a

random linear form. (default)

### -C Use sparse-FGLM-col algorithm

Given an input file with k polynomials compute the quotient of the ideal generated by the first k-1 polynomials with respect to the kth polynomial.

**-e** ELIM Define an elimination order: msolve supports two

blocks, each block using degree reverse lexicographical monomial order. ELIM has to be a number between 1 and #variables-1. The basis the first block eliminated is then computed.

**-I** Isolates the real roots (provided some univariate data)

without re-computing a Gröbner basis Default: 0 (no).

### -l LIN Linear algebra variant to be applied

1 - exact sparse / dense 2 - exact sparse (default)

42 - sparse / dense linearization (probabilistic) 44 - sparse linearization (probabilistic)

**-m** MPR Maximal number of pairs used per matrix.

Default: 0 (unlimited).

**-n** NF Given n input generators compute normal form of the last NF

elements of the input w.r.t. a degree reverse lexicographical Gröbner basis of the irst (n - NF) input elements. At the moment this only works for prime field computations. Combining this option with the "-i" option assumes that the first (n - NF) elements generate already a degree reverse lexicographical Gröbner basis.

**-p** PRE Precision of the real root isolation.

Default is 32.

**-P** PAR Get also rational parametrization of solution set.

Default is 0. For a detailed description of the output format please see the general output data format section above.

**-q** Q Uses signature-based algorithms.

Default: 0 (no).

**-r** RED Reduce Groebner basis.

Default: 1 (yes).

**-s** HTS Initial hash table size given

as power of two. Default: 17.

### -S Use f4sat saturation algorithm

Given an input file with k polynomials compute the saturation of the ideal generated by the first k-1 polynomials with respect to the kth polynomial.

**-u** UHT Number of steps after which the

hash table is newly generated. Default: 0, i.e. no update.