---
name: "mpsolve"
section: "1"
platform: "linux"
package: "mpsolve"
version: "3.2.1-11"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/mpsolve"
---

# mpsolve(1)

A multiprecision polynomial rootfinder

## NAME

MPSolve - A multiprecision polynomial rootfinder

## DESCRIPTION

mpsolve \[-a alg\] \[-b\] \[-c\] \[-G goal\] \[-o digits\] \[-i digits\] \[-j n\] \[-t type\] \[-S set\] \[-D detect\] \[-O format\] \[-l filename\] \[-x\] \[-d\] \[-v\] \[-r\] \[infile \| -p poly\]

## OPTIONS

- **-a** alg

  Select the algorithm used to solve the polynomial/secular equation:

-

  u: Classic unisolve algorithm (Aberth iterations and dynamic precision)\
   s: Secular algorithm, using regeneration of increasingly better-conditioned

-

  secular equations with the same roots of the polynomial

- **-b**

  Perform Aberth iterations in Jacobi-style instead of Gauss-Seidel

- **-c**

  Enable crude approximation mode

- **-G** goal

  Select the goal to reach. Possible values are:

-

  a: Approximate the roots\
   i: Isolate the roots\
   c: Count the roots in the search set

- **-o** digits

  Number of guaranteed digits of the roots

- **-i** digits

  Digits of precision of the input coefficients

- **-j** n

  Number of threads to spawn as workers

- **-t** type

  Type can be 'f' for floating point or 'd' for DPE

- **-S** set

  Restrict the search set for the roots set can be one of:

-

  u: upper half-plane { x \| Im(x) \> 0 }\
   d: lower half-plane { x \| Im(x) \< 0 }\
   l: left half-plane { x \| Re(x) \< 0 }\
   r: right half-plane { x \| Re(x) \> 0 }\
   i: inside the unit circle: { x \| \|x\| \< 1 }\
   o: outside the unit circle { x \| \|x\| \> 1 }\
   R: real axis { x \| Im(x) = 0 }\
   I: imaginary axis { x \| Re(x) = 0 }

- **-D** detect

  Detect properties of the roots:

-

  r: real roots\
   i: imaginary roots\
   b: both

- **-O** format

  Select format for output:

-

  f: full output\
   b: bare output\
   c: compact output\
   v: verbose output\
   g: gnuplot-ready output\
   gf: gnuplot-full mode, can be piped to gnuplot and display error bars.\
   gp: The same as gf but only with points (suitable for high degree polynomials)

-

  For example:

-

  mpsolve **-as** **-Ogf** myfile.pol \| gnuplot

**-l** filename Set filename as the output for the log, instead of the tty. Use this option with

-

  **-d\[domains\]** to activate the desired debug domains.

- **-x**

  Enable graphic visualization of convergence

**-d\[domains\]** Activate debug on selected domains, that can be one of:

-

  t: trace\
   a: approximation\
   c: cluster\
   i: improvement\
   w: timings\
   o: input/Output\
   m: memory management\
   f: function calls\
   p: debug stop condition and development of iteration packets\
   r: regeneration Example: **-dfi** for function calls and improvement

- **-p poly**

  Solve the polynomial specified on the command line.

-

  For example: mpsolve **-p** "x^4-6\*x^9+6/7\*x + 5"

- **-r**

  Use a recursive strategy to dispose the initial approximations.\
   This option is available only for monomial polynomials.\
   Note: this option is considered experimental.

- **-v**

  Print the version and exit

## SEE ALSO

The full documentation for **MPSolve** is maintained as a Texinfo manual.  If the **info** and **MPSolve** programs are properly installed at your site, the command

-

  **info MPSolve**

should give you access to the complete manual.
