.. _spkg_mpfi:

mpfi: Multiple precision interval arithmetic library based on MPFR
==================================================================

Description
-----------

MPFI is a library for interval arithmetic, which is built upon the MPFR
multiple precision floating-point arithmetic.

MPFI is intended to be a portable library written in C for arbitrary
precision interval arithmetic with intervals represented using MPFR
reliable floating-point numbers. It is based on the GNU MP library and
on the MPFR library. The purpose of an arbitrary precision interval
arithmetic is on the one hand to get "guaranteed" results, thanks to
interval computation, and on the other hand to obtain accurate results,
thanks to multiple precision arithmetic. The MPFI library is built upon
MPFR in order to benefit from the correct rounding provided, for each
operation or function, by MPFR. Further advantages of using MPFR are its
portability and compliance with the IEEE 754 standard for floating-point
arithmetic.

License
-------

This version of MPFI is released under the GNU Lesser General Public
License. It is permitted to link MPFI to non-free programs, as long as
when distributing them the MPFI source code and a means to re-link with
a modified MPFI is provided.


Upstream Contact
----------------

http://perso.ens-lyon.fr/nathalie.revol/software.html

The MPFI website is located at https://gitlab.inria.fr/mpfi/mpfi

The MPFI team can be contacted via the MPFI mailing list: mpfi-users@inria.fr



Type
----

standard


Dependencies
------------

- $(MP_LIBRARY)
- :ref:`spkg_mpfr`

Version Information
-------------------

package-version.txt::

    1.5.2

See https://repology.org/project/mpfi/versions

Installation commands
---------------------

.. tab:: Sage distribution:

   .. CODE-BLOCK:: bash

       $ sage -i mpfi

.. tab:: Arch Linux:

   .. CODE-BLOCK:: bash

       $ sudo pacman -S mpfi

.. tab:: conda-forge:

   .. CODE-BLOCK:: bash

       $ conda install mpfi

.. tab:: Debian/Ubuntu:

   .. CODE-BLOCK:: bash

       $ sudo apt-get install libmpfi-dev

.. tab:: Fedora/Redhat/CentOS:

   .. CODE-BLOCK:: bash

       $ sudo dnf install mpfi-devel

.. tab:: FreeBSD:

   .. CODE-BLOCK:: bash

       $ sudo pkg install math/mpfi

.. tab:: Gentoo Linux:

   .. CODE-BLOCK:: bash

       $ sudo emerge sci-libs/mpfi

.. tab:: Homebrew:

   .. CODE-BLOCK:: bash

       $ brew install mpfi

.. tab:: mingw-w64:

   .. CODE-BLOCK:: bash

       $ sudo pacman -S ${MINGW_PACKAGE_PREFIX}-mpfi

.. tab:: Nixpkgs:

   .. CODE-BLOCK:: bash

       $ nix-env -f \'\<nixpkgs\>\' --install --attr mpfi

.. tab:: openSUSE:

   .. CODE-BLOCK:: bash

       $ sudo zypper install mpfi-devel

.. tab:: Void Linux:

   .. CODE-BLOCK:: bash

       $ sudo xbps-install mpfi-devel


If the system package is installed, ``./configure`` will check if it can be used.
