MPSolve documentation


The main theoretical results behind MPSolve can be found in the paper "Design, Analysis, and Implementation of a Multiprecision Polynomial Rootfinder" by D. A. Bini and G. Fiorentino published in Numerical Algorithms, Volume 23 (2000), pages 127-173.


MPSolve requires a GNU compatible "make" and C compiler (gcc) which are standard in any linux distribution and are  available on most platforms. It also requires that the GMP multiprecision package has been correctly installed and that both the header file "gmp.h" and the library file "libgmp.a" can be accessed by gcc. These files can also be copied to the Gmp subdirectory once the GMP package has been successfully configured and compiled.

MPSolve does not include the GMP package that can be downloaded from the URL

The package has been developed and fully tested with GMP versions 2.0.2 and 3.1.1; however, the former contains some known bugs which may lead to slow  and badly formatted outputs. These errors can be fixed by applying some patches which can be downloaded from the above URL.

In order to create the executable file (unisolve) simply type:

in the MPSolve directory. After a successful compilation, all unneeded object files and libraries can be removed by issuing:
make clean
Finally, the executable file can be tested with the command:
make check
which invokes unisolve on a simple polynomial.


MPSolve takes all of its input from the command line and the standard input, to run the program, type:
unisolve options input_file
where input_file is the name of the file holding the input polynomial (see the input format page) and options is the list of options and directives such as the goal of the computation, the requested output precision, the subset of the complex plane where the roots are sought and many others (see the options page).

If the input_file is missing then unisolve will read from  the standard input stream (typically the keyboard).

The output format is ruled by some command line options and follows some conventions (see the output conventions page).

Further documentation

More information on the package and on the test suite is available in LaTeX, PostScript and PDF format in the Doc directory.