Macaulay2 » Documentation
Packages » Msolve :: Msolve
next | previous | forward | backward | up | index | toc

Msolve -- Macaulay2 interface for msolve; computes real solutions and Groebner basis, etc.

Description

This package provides a Macaulay2 interface for the msolve library [1] developed by Jérémy Berthomieu, Christian Eder, and Mohab Safey El Din.

The package has functions to compute Groebner basis, in GRevLex order only, for ideals with rational or finite field coefficients. Finite field characteristics must be less than $2^{31}$. There are also functions to compute elimination ideals, for ideals with rational or finite field coefficients.

The saturation of an ideal by a single polynomial may be computed for ideals with finite field coefficients, again with characteristic less than $2^{31}$.

For zero dimensional polynomial ideals, with integer or rational coefficients, there are functions to compute all real solutions, and to compute a rational univariate representation of all (complex) solutions.

The M2 interface assumes that the binary executable is named "msolve" is on the executable path.

For all functions the option Verbosity can be used. It has levels 0, 1, 2. The default is 0.

Msolve supports parallel computations. The option Threads is used to set this. The default value is allowableThreads, but this can be set manually by the user when calling a function. E.g. for an ideal I:

i1 : R = QQ[x,y,z]

o1 = R

o1 : PolynomialRing
i2 : I = ideal(x, y, z)

o2 = ideal (x, y, z)

o2 : Ideal of R
i3 : msolveGB(I, Verbosity => 2, Threads => 6)
 -- running: /usr/bin/msolve -g 2 -t 6 -v 2 -f /tmp/M2-2783675-0/0-in.ms -o /tmp/M2-2783675-0/0-out.ms

--------------- INPUT DATA ---------------
#variables                       3
#equations                       3
#invalid equations               0
field characteristic             0
homogeneous input?               1
signature-based computation      0
monomial order                 DRL
basis hash table resetting     OFF
linear algebra option            2
initial hash table size     131072 (2^17)
max pair selection             ALL
reduce gb                        1
#threads                         6
info level                       2
generate pbm files               0
------------------------------------------

Legend for f4 information
--------------------------------------------------------
deg       current degree of pairs selected in this round
sel       number of pairs selected in this round
pairs     total number of pairs in pair list
mat       matrix dimensions (# rows x # columns)
density   density of the matrix
new data  # new elements for basis in this round
          # zero reductions during linear algebra
time(rd)  time of the current f4 round in seconds given
          for real and cpu time
--------------------------------------------------------

deg     sel   pairs        mat          density            new data         time(rd) in sec (real|cpu)
------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------
reduce final basis        3 x 3          33.33%        3 new       0 zero         0.01 | 0.07         
------------------------------------------------------------------------------------------------------

---------------- TIMINGS ----------------
overall(elapsed)        0.03 sec
overall(cpu)            0.13 sec
select                  0.00 sec   0.0%
symbolic prep.          0.00 sec   0.0%
update                  0.01 sec  44.5%
convert                 0.01 sec  55.2%
linear algebra          0.00 sec   0.0%
reduce gb               0.00 sec   0.0%
-----------------------------------------

---------- COMPUTATIONAL DATA -----------
size of basis                     3
#terms in basis                   3
#pairs reduced                    0
#GM criterion                     3
#redundant elements               0
#rows reduced                     3
#zero reductions                  0
max. matrix data                  3 x 3 (33.333%)
max. symbolic hash table size  2^11
max. basis hash table size     2^16
-----------------------------------------


---------- COMPUTATIONAL DATA -----------
[3]
#polynomials to lift              3
-----------------------------------------

---------------- TIMINGS ----------------
multi-mod overall(elapsed)      0.03 sec
learning phase                  0.00 Gops/sec
application phase               0.00 Gops/sec
-----------------------------------------

multi-modular steps
------------------------------------------------------------------------------------------------------
{1}{2}<100.00%> 
------------------------------------------------------------------------------------------------------


---------- COMPUTATIONAL DATA -----------
Max coeff. bitsize                1
#primes                           3
#bad primes                       0
-----------------------------------------

---------------- TIMINGS ----------------
CRT     (elapsed)               0.00 sec
ratrecon(elapsed)               0.00 sec
-----------------------------------------


------------------------------------------------------------------------------------
msolve overall time           0.11 sec (elapsed) /  0.55 sec (cpu)
------------------------------------------------------------------------------------

o3 = | z y x |

             1      3
o3 : Matrix R  <-- R

References

[1] The msolve library: https://msolve.lip6.fr;

Authors

Version

This documentation describes version 1.24.05 of Msolve.

Source code

The source code from which this documentation is derived is in the file Msolve.m2. The auxiliary files accompanying it are in the directory Msolve/.

Exports

  • Types
    • QQi -- the class of all rational intervals
  • Functions and commands
    • msolveEliminate -- compute the elimination ideal of a given ideal
    • msolveGB -- compute generators of a Groebner basis in GRevLex order
    • msolveLeadMonomials -- compute the leading monomials of a Groebner basis in GRevLex order
    • msolveRealSolutions -- compute all real solutions to a zero dimensional system using symbolic methods
    • msolveRUR -- compute the rational univariate representation using symbolic methods
    • msolveSaturate -- compute a Groebner basis for the saturation of an ideal by a single polynomial in GRevLex order
  • Methods
    • diameter(QQi) (missing documentation)
    • interval(QQi) (missing documentation)
    • lift(QQi,type of Number) (missing documentation)
    • msolveEliminate(Ideal,List) -- see msolveEliminate -- compute the elimination ideal of a given ideal
    • msolveEliminate(Ideal,RingElement) -- see msolveEliminate -- compute the elimination ideal of a given ideal
    • msolveEliminate(List,Ideal) -- see msolveEliminate -- compute the elimination ideal of a given ideal
    • msolveEliminate(RingElement,Ideal) -- see msolveEliminate -- compute the elimination ideal of a given ideal
    • msolveGB(Ideal) -- see msolveGB -- compute generators of a Groebner basis in GRevLex order
    • msolveLeadMonomials(Ideal) -- see msolveLeadMonomials -- compute the leading monomials of a Groebner basis in GRevLex order
    • msolveRealSolutions(Ideal) -- see msolveRealSolutions -- compute all real solutions to a zero dimensional system using symbolic methods
    • msolveRealSolutions(Ideal,Ring) -- see msolveRealSolutions -- compute all real solutions to a zero dimensional system using symbolic methods
    • msolveRealSolutions(Ideal,RingFamily) -- see msolveRealSolutions -- compute all real solutions to a zero dimensional system using symbolic methods
    • msolveRUR(Ideal) -- see msolveRUR -- compute the rational univariate representation using symbolic methods
    • msolveSaturate(Ideal,RingElement) -- see msolveSaturate -- compute a Groebner basis for the saturation of an ideal by a single polynomial in GRevLex order
    • Number == QQi (missing documentation)
    • precision(QQi) (missing documentation)
    • promote(Number,type of QQi) (missing documentation)
    • QQi == Number (missing documentation)
    • ring(QQi) (missing documentation)

For the programmer

The object Msolve is a package.