MSOLVE(1)
π msolve(1) β User Commands π
okay so bestie, welcome to the msolve manual page, User Commands section, and I need you to know right now that this thing is a whole vibe. β¨ Polynomial system solving?? We love her. Let's get into it.
πΈ NAME πΈ
msolveβ Polynomial System Solving through Algebraic Methods
π DESCRIPTION π
okay so the msolve library for polynomial system solving is version 0.11.0, and it was implemented by J. Berthomieu, C. Eder, M. Safey El Din. A trio of icons, fr fr. π
β Basic call β
Here's the moment you've been waiting for:
./msolve -f [FILE1] -o [FILE2]
FILE1 and FILE2 are respectively the input and output files. That's it, that's the whole ritual. π
π Standard options π
-f,--fileFILE β the file name. And it's mandatory, bestie, like you literally cannot run this without it. π«Ά-h,--helpβ Prints this help.-o,--output-fileFILE β Name of output file.-t,--threadsTHR β Number of threads to be used.1β one thread (default).THR > 1βTHRthreads.
-v,--verboseVER β 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 (no comma at end of line)
- second line: characteristic of the field
- next lines provide the polynomials (one per line), separated by a comma (no comma after the last polynomial)
Not me stressing the comma placement but literally yes, watch your commas, they're doing main character work here. π
π 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
-Pflag to recover a parametrization of the solutions) - See the msolve tutorial for more details (
https://msolve.lip6.fr)
π Advanced options π
okay this is the part where it gets spicy. buckle up. π₯
-FFILE β File name encoding parametrizations in binary format.-g,--groebner-basisGB β Prints reduced Groebner bases of input system for first prime characteristic w.r.t. grevlex ordering. One element per line is printed, commas separated.0β Nothing is printed. (default)1β Leading ideal is printed.2β Full reduced Groebner basis is printed.
-cGEN β 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)
-dGEN β Handling genericity further: If the staircase is not generic enough, msolve can still try to perform the full computation by computing some normal forms and build the multiplication matrix, before fixing the situation via option-c.0β No normal forms are computed.1β Few normal forms are computed.2β Some normal forms are computed. (default)3β Lots of normal forms are computed.4β All the normal forms are computed.
-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,--eliminationELIM β Define an elimination order: msolve supports two blocks of variables, each block using the degree reverse lexicographical monomial order.ELIMhas to be a number between1and#variables-1, and gives the number of eliminated variables. The basis with the first block ofELIMvariables eliminated is then computed.-I,--isolateISOL β Isolates the real roots (provided some univariate data) without re-computing a GrΓΆbner basis.0β no (default).1β yes.
-l,--linear-algebraLIN β Linear algebra variant to be applied:1β exact sparse / dense2β exact sparse (default)42β sparse / dense linearization (probabilistic)44β sparse linearization (probabilistic)
-mMPR β Maximal number of pairs used per matrix.0β unlimited (default).
-n,--normal-formNF β Given n input generators compute normal form of the lastNFelements of the input w.r.t. a degree reverse lexicographical GrΓΆbner basis of the first (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,--precisionPRE β Precision (in bits) on the output of real root isolation.128(default).
-P,--parametrizationPAR β Get also rational parametrization of solution set.0(default). For a detailed description of the output format please see the general output data format section above.
-L,--lifting-mulmatLIF β Controls lifting of multplication matrices over the rationals.0β no lifting (default).1β matrices are lifted. Warning: when activated, this option may cause higher memory consumption. π
-qQ β Uses signature-based algorithms.0β no (default).1β yes.
--random-seedSEED β Random seed to initialize the pseudo random generator.-1βtime(0)will be used (default)SEED β₯ 0β use at your own risks; this is intended for developers and debug purposes only.
-r,--reduce-gbRED β Reduce Groebner basis.0β no.1β yes (default).
-sHTS β Initial hash table size given as power of two.17(default).
-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.
Note: At the moment restricted to 32 bit prime fields.
-uUHT β Number of steps after which the hash table is newly generated.0β no update (default).
-V,--versionβ Prints msolve's version.
okay bestie we're back and we're still deep in flag territory π this is the part where msolve lets you micromanage literally everything, and honestly? iconic behavior. let's go π«Ά
-p,--precision PREβ the precision, in bits, on the output of real root isolation. default is128. yes, one hundred and twenty-eight whole bits, we love a generous queen π-P,--parametrization PARβ also hands you a rational parametrization of the solution set. default is0. and for the full tea on what that output format actually looks like, please see the general output data format section above β¬οΈ (iykyk)-L,--lifting-mulmat LIFβ controls lifting of multiplication matrices over the rationals.0β no lifting (this is the default).1β matrices are lifted.
β οΈ warning: when you activate this, it may cause higher memory consumption. your RAM will simply not be okay, and it will tell you. dramatic, but fair.
-q Qβ uses signature-based algorithms.0β no (default).1β yes.
--random-seed SEEDβ the random seed used to initialize the pseudo random generator.-1meanstime(0)will be used, which is the default.SEED β₯ 0means you're using your own, and that is at your own risks π
this one is intended for developers and debug purposes only. so like, not you, bestie, unless you're built different π
-r,--reduce-gb REDβ reduce the Groebner basis.0β no.1β yes (default).
-s HTSβ the initial hash table size, given as power of two.17is the default. a lil specific, a lil perfect β¨-Sβ use the f4sat saturation algorithm. the vibe is this: given an input file with k polynomials, it computes the saturation of the ideal generated by the first k-1 polynomials with respect to the kth polynomial. note: at the moment restricted to 32 bit prime fields. periodt.-u UHTβ the number of steps after which the hash table is newly generated.0β no update (default). set it and let the table refresh itself, main character energy.-V,--versionβ prints msolve's version π
and that's the whole flag lineup, bestie, you made it π this page is msolve, dated October 2026, and it lives in section MSOLVE(1) of your friendly neighborhood manual. go forth and isolate some roots π
π¦ where this page comes from
- fedora 43: msolve 0.11.0-1.fc43 Β· GPL-2.0-or-later AND LGPL-2.1-or-later
- fedora 44: msolve 0.11.0-1.fc44 Β· GPL-2.0-or-later AND LGPL-2.1-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms