For building `msolve` change into the `src/msolve` folder and run `make`.

This will automatically also run make in `src/fglm` (generating `libfglm.o`) and `src/neogb` (generating `libneogb.o`), you do not need to do this by hand.

**Note:** If you do not want the AVX2 version of `neogb`'s 32-bit F4 linear algebra you should run `make` with setting the corresponding `CFLAGS`, i.e.<br/>`make CFLAGS="-DNO_AVX2_IN_F4"`.

# Input File Format

`msolve` input files need to be of the following format:

**1st line**: variables as commata separated list, e.g. `x1,x2,x3,x4,y1,y2`.<br/>

**2nd line**: field characteristic, e.g. `0`.<br/>

**following lines**: generating polynomials, all but the last one need

to terminate by a `,`, e.g.

```

x1,x2,x3,x4,y1,y2

101

x1+x2+x3+x4,

2*y1-145*y2

```

Polynomials may be multiline, thus `,` as a separator.

Coefficients can be rational, using `/`, e.g. `-2/3*x2*y1^2+...`.

abstract="Given a zero-dimensional ideal I⊂K[x1,…,xn] of degree D, the transformation of the ordering of its Gröbner basis from DRL to LEX is a key step in polynomial system solving and turns out to be the bottleneck of the whole solving process. Thus it is of crucial importance to design efficient algorithms to perform the change of ordering. The main contributions of this paper are several efficient methods for the change of ordering which take advantage of the sparsity of multiplication matrices in the classical FGLM algorithm. Combining all these methods, we propose a deterministic top-level algorithm that automatically detects which method to use depending on the input. As a by-product, we have a fast implementation that is able to handle ideals of degree over 60000. Such an implementation outperforms the Magma and Singular ones, as shown by our experiments. First for the shape position case, two methods are designed based on the Wiedemann algorithm: the first is probabilistic and its complexity to complete the change of ordering is O(D(N1+nlog(D)2)), where N1 is the number of nonzero entries of a multiplication matrix; the other is deterministic and computes the LEX Gröbner basis of I via Chinese Remainder Theorem. Then for the general case, the designed method is characterized by the Berlekamp--Massey--Sakata algorithm from Coding Theory to handle the multi-dimensional linearly recurring relations. Complexity analyses of all proposed methods are also provided. Furthermore, for generic polynomial systems, we present an explicit formula for the estimation of the sparsity of one main multiplication matrix, and prove that its construction is free. With the asymptotic analysis of such sparsity, we are able to show that for generic systems the complexity above becomes O(6/nπD2+n−1n)."

}

@inproceedings{Collins,

title={Quantifier elimination for real closed fields by cylindrical algebraic decompostion},

author={Collins, George E},

booktitle={Automata Theory and Formal Languages 2nd GI Conference Kaiserslautern, May 20--23, 1975},

pages={134--183},

year={1975},

organization={Springer}

}

@inproceedings{caro2012non,

title={Non-singular assembly mode changing trajectories of a 6-DOF parallel robot},

author={Caro, St{\'e}phane and Wenger, Philippe and Chablat, Damien},

booktitle={ASME 2012 International Design Engineering Technical Conferences and Computers and Information in Engineering Conference},

pages={1245--1254},

year={2012},

organization={American Society of Mechanical Engineers}

}

@inproceedings{FaSaSp12,

title={Critical points and Gr{\"o}bner bases: the unmixed case},

author={Faug{\`e}re, Jean-Charles and {Safey El Din}, Mohab and Spaenlehauer, Pierre-Jean},

booktitle={Proceedings of the 37th International Symposium on Symbolic and Algebraic Computation},

pages={162--169},

year={2012},

organization={ACM}

}

@article{HaSo12,

title={Algorithm 921: alphaCertified: certifying solutions to polynomial systems},

author={Hauenstein, Jonathan D and Sottile, Frank},

journal={ACM Transactions on Mathematical Software (TOMS)},

volume={38},

number={4},

pages={28},

year={2012},

publisher={ACM}

}

@article{HSSV18,

title={Solving determinantal systems using homotopy techniques},

author={Hauenstein, Jonathan D and {Safey El Din}, Mohab and Schost, {\'E}ric and Vu, Thi Xuan},

journal={arXiv preprint arXiv:1802.10409},

year={2018}

}

@article{SaSc18,

title={Bit complexity for multi-homogeneous polynomial system solving—Application to polynomial minimization},

author={{Safey El Din}, Mohab and Schost, {\'E}ric},

journal={Journal of Symbolic Computation},

volume={87},

pages={176--206},

year={2018},

publisher={Elsevier}

}

@article{Hau13,

title={Numerically computing real points on algebraic sets},

author={Hauenstein, Jonathan D},

journal={Acta applicandae mathematicae},

volume={125},

number={1},

pages={105--119},

year={2013},

publisher={Springer}

}

@InProceedings{F5,

author={Faug\`ere, J.-C.},

title={A new

efficient algorithm for computing Gr\"obner bases without

reduction to zero (F5)},

OPTcrossref={},

OPTkey={},

booktitle={Proceedings of the 2002 {I}nternational

{S}ymposium on {S}ymbolic and {A}lgebraic {C}omputation},

year={2002},

OPTeditor={},

OPTvolume={},

OPTnumber={},

OPTseries={},

pages={75-83},

OPTmonth={},

OPTaddress={},

OPTorganization={},

OPTpublisher={},

OPTnote={},

OPTannote={}

}

@Article{F4,

author={Faug\`ere, J.-C.},

title={A new efficient algorithm for computing Gr\"obner bases (F4)},

journal={Journal of Pure and Applied Algebra},

year={1999},

OPTkey={},

volume={139},

number={1-3},

pages={61-88},

OPTmonth={},

OPTnote={},

OPTannote={}

}

@article{SchSha,

title={On the “piano movers” problem. II. General techniques for computing topological properties of real algebraic manifolds},

author={Schwartz, Jacob T and Sharir, Micha},

journal={Advances in applied Mathematics},

volume={4},

number={3},

pages={298--351},

year={1983},

publisher={Elsevier}

}

@Article{CoMo15,

author={Coste, M. and Moussa, S.},

title={On the rationality of the singularity locus of a Gough-Stewart platform - biplanar case},

journal={Mechanism and Machine Theory},

year={2015},

OPTkey={},

volume={87},

OPTnumber={},

pages={82-92},

OPTmonth={},

OPTnote={},

OPTannote={}

}

@Book{Canny,

author={Canny, J.},

ALTeditor={},

title={On the complexity of robot motion planning},

publisher={MIT Press},

year={1988},

OPTkey={},

OPTvolume={},

OPTnumber={},

OPTseries={},

OPTaddress={},

OPTedition={},

OPTmonth={},

OPTnote={},

OPTannote={}

}

@Article{KaHu,

author={Kuffner, J.J. and Husty, M.},

title={Classification of all self-motions of the original Stewart-Gough platform},

journal={Computer-Aided Design},

year={1998},

OPTkey={},

volume={30},

number={3},

pages={205-215},

OPTmonth={},

OPTnote={},

OPTannote={}

}

@article{DaKu06,

title={Bounds for gradient trajectories and geodesic diameter of real algebraic sets},

author={D'Acunto, D. and Kurdyka, K.},

journal={Bulletin of the London Mathematical Society},

volume={38},

number={6},

pages={951--965},

year={2006},

publisher={Cambridge University Press}

}

@Article{TII2018,

author={Reiter, A. and M{\"u}ller, A. and Gattringer, H.},

title={On Higher-Order Inverse Kinematics Methods in Time-Optimal Trajectory Planning for Kinematically Redundant Manipulators},

journal={IEEE Transactions on Industrial Informatics},

year={2018},

OPTkey={},

OPTvolume={},

OPTnumber={},

OPTpages={},

OPTmonth={},

OPTnote={},

OPTannote={}

}

@InProceedings{BoPl84,

author={Bock, H.G. and Plitt, K.J.},

title={A multiple shooting algorithm for direct solution of optimal control problems},

OPTcrossref={},

OPTkey={},

booktitle={Proc. of the IFAC World Congress},

year={1984},

OPTeditor={},

OPTvolume={},

OPTnumber={},

OPTseries={},

pages={242-247},

OPTmonth={},

OPTaddress={},

OPTorganization={},

OPTpublisher={},

OPTnote={},

OPTannote={}

}

@InProceedings{BoLi86,

author={Borrel, P. and Liegeois, A.},

title={A study of multiple manipulator inverse kinematic solutions with applications to trajectory planning and workspace determination},

OPTcrossref={},

OPTkey={},

booktitle={Proceedings of IEEE Conf. Rob. and Aut.},

year={1986},

OPTeditor={},

OPTvolume={},

OPTnumber={},

OPTseries={},

pages={1180-1185},

OPTmonth={},

OPTaddress={},

OPTorganization={},

OPTpublisher={},

OPTnote={},

OPTannote={}

}

@Book{angeles,

author={Angeles, J.},

ALTeditor={},

title={Fundamentals of Robotic Mechanical Systems, Theory, Methods, and Algorithms},

publisher={Springer},

year={2007},

OPTkey={},

OPTvolume={},

OPTnumber={},

OPTseries={},

OPTaddress={},

OPTedition={},

OPTmonth={},

OPTnote={},

OPTannote={}

}

@Book{MLS,

author={Murray, R.M. and Li, Z. and Sastry, S.S.},

ALTeditor={},

title={A Mathematical Introduction to Robotic Manipulation}</