# MPFI

> library for arbitrary precision interval arithmetic

**Wikidata**: [Q133930706](https://www.wikidata.org/wiki/Q133930706)  
**Source**: https://4ort.xyz/entity/mpfi

## Summary
MPFI is a software library that implements arbitrary-precision interval arithmetic. It was created in 2000 by Nathalie Revol and Fabrice Rouillier, is based on GNU MPFR, and is distributed under the GNU Lesser General Public License (version 2.1 or later).

## Key Facts
- MPFI is a library for arbitrary-precision interval arithmetic; its stated main subject is interval arithmetic.  
- Inception: 2000 (development started in 2000 with N. Revol and F. Rouillier).  
- Creators: Nathalie Revol and Fabrice Rouillier.  
- MPFI is based on GNU MPFR.  
- License: GNU Lesser General Public License, version 2.1 or later (preferred); some source files have been stated under the GNU Library General Public License, version 2.0 or later.  
- Source repository: https://gitlab.inria.fr/mpfi/mpfi.git; primary project page: https://gitlab.inria.fr/mpfi/mpfi and a preferred project page on Nathalie Revol’s site: https://perso.ens-lyon.fr/nathalie.revol/software.html.  
- Maintained by: Institut National de Recherche en Informatique et en Automatique (INRIA).  
- Packaged for multiple systems: Debian/Ubuntu packages (libmpfi-dev, libmpfi-dev-common, libmpfi-doc, libmpfi0); FreeBSD port math/mpfi; Gentoo package sci-libs/mpfi; macOS ports (macports), Homebrew formula name mpfi; NetBSD package math/mpfi; Nixpkgs id mpfi; Guix variable name mpfi.  
- Debian source package start date (recorded): mpfi, start_time 2005-08-11.

## FAQs
### Q: What does MPFI do?
A: MPFI provides implementations of interval arithmetic operations using arbitrary-precision floating-point arithmetic, enabling computations with intervals rather than single floating-point values for rigorous numeric bounds.

### Q: Is MPFI open source and what is its license?
A: Yes. MPFI is free software distributed under the GNU Lesser General Public License (LGPL) version 2.1 or later. Some files in the source tree are indicated as under the GNU Library General Public License version 2.0 or later.

### Q: Who developed and maintains MPFI?
A: MPFI was developed by Nathalie Revol and Fabrice Rouillier starting in 2000. The project is maintained by the Institut National de Recherche en Informatique et en Automatique (INRIA).

### Q: Where can I get the source code?
A: The canonical source code repository is hosted at https://gitlab.inria.fr/mpfi/mpfi.git and project pages are available on GitLab and on Nathalie Revol’s software page.

### Q: Which platforms and distributions include MPFI?
A: MPFI is packaged for many Unix-like systems and distributions, including Debian/Ubuntu, FreeBSD, Gentoo, NetBSD, macOS package systems (MacPorts, Homebrew), Nixpkgs, and Guix.

## Why It Matters
MPFI provides a dedicated implementation of arbitrary-precision interval arithmetic, a numeric approach that represents values as intervals with guaranteed lower and upper bounds rather than single point estimates. This is important for rigorous numerical computation, validated numerics, and applications that require error bounds and guaranteed enclosures of results. MPFI is built on top of GNU MPFR, leveraging MPFR’s arbitrary-precision floating-point routines to implement interval operations with controlled rounding. The library’s open-source LGPL licensing and availability in many major package systems (Debian/Ubuntu, FreeBSD, Gentoo, macOS ports, Homebrew, Nix, Guix) make it accessible for researchers and developers who need reliable interval arithmetic in scientific computing, formal verification workflows, or numerical libraries. Maintenance by INRIA and a public GitLab repository support continued development, contribution, and integration into downstream software.

## Notable For
- Being a focused library for arbitrary-precision interval arithmetic built on GNU MPFR.  
- Originating in 2000 and developed by Nathalie Revol and Fabrice Rouillier.  
- Distributed under the GNU Lesser General Public License (LGPL) v2.1 or later.  
- Inclusion and packaging across major Unix-like distributions and package systems (Debian/Ubuntu, FreeBSD, Gentoo, macOS ports, Homebrew, Nix, Guix).  
- Maintenance and hosting associated with INRIA and a public GitLab repository.

## Body

### Overview
- MPFI is an implementation of interval arithmetic using arbitrary-precision floating-point numbers.  
- The library’s main subject is interval arithmetic.  
- It is classified as mathematical software, a software library, and free software.

### History and Origins
- Development started in 2000 by Nathalie Revol and Fabrice Rouillier.  
- The Debian source package mpfi has a recorded start_time of 2005-08-11.

### Creators and Contributors
- Primary creators: Nathalie Revol and Fabrice Rouillier.  
- Contributors listed in project metadata include Sylvain Chevillard, Christoph Lauter, Hong Diep Nguyen, and Philippe Theveny among others.

### Technical Foundations
- MPFI is based on GNU MPFR, which provides arbitrary-precision floating-point arithmetic with well-defined rounding.  
- The library implements interval operations and comparisons using MPFR primitives.

### Licensing
- Default project license: GNU Lesser General Public License (LGPL), version 2.1 or later.  
- Certain files in the repository (e.g., tests/random.c, tests/mpfi-tests.c) are noted as stated under the GNU Library General Public License, version 2.0 or later in repository metadata.

### Platforms, Packaging, and Distribution
- MPFI runs on Unix-like operating systems, with explicit mentions of macOS and BSD systems.  
- Packaged entries and identifiers:
  - Debian/Ubuntu packages: libmpfi-dev, libmpfi-dev-common, libmpfi-doc, libmpfi0.  
  - FreeBSD port: math/mpfi.  
  - Gentoo package: sci-libs/mpfi.  
  - MacPorts port name: mpfi.  
  - Homebrew formula name: mpfi.  
  - NetBSD package id: math/mpfi.  
  - Nixpkgs id: mpfi.  
  - Guix variable name: mpfi.  
- Launchpad project identifier for Ubuntu packaging indicated as ubuntu/+source/mpfi.

### Maintenance and Source
- Maintained by the Institut National de Recherche en Informatique et en Automatique (INRIA).  
- Source repository URL: https://gitlab.inria.fr/mpfi/mpfi.git (hosted as a GitLab FOSS project associated with INRIA).  
- Project pages: GitLab project page and Nathalie Revol’s software page (preferred project page).

### Copyright and Status
- Copyrighted software distributed under free-software licenses (LGPL v2.1+ and, for some files, LGPL/GNU Library GPL v2.0+).

## Schema Markup
```json
{
  "@context": "https://schema.org",
  "@type": "Thing",
  "name": "MPFI",
  "description": "MPFI is a software library for arbitrary-precision interval arithmetic, created in 2000 and based on GNU MPFR.",
  "url": "https://perso.ens-lyon.fr/nathalie.revol/software.html",
  "sameAs": [
    "https://gitlab.inria.fr/mpfi/mpfi",
    "https://gitlab.inria.fr/mpfi/mpfi.git"
  ],
  "additionalType": "software library"
}

## References

1. The MPFI Library: Towards IEEE 1788–2015 Compliance
2. GNU Guix
3. [Source](https://gitlab.inria.fr/mpfi/mpfi/-/blob/master/tests/random.c?ref_type=heads)
4. [Source](https://gitlab.inria.fr/mpfi/mpfi/-/blob/master/tests/mpfi-tests.c?ref_type=heads)
5. [Source](https://metadata.ftp-master.debian.org/changelogs//main/m/mpfi/mpfi_1.5.3+ds-6_copyright)
6. [Source](https://who.rocq.inria.fr/Fabrice.Rouillier/software.php)
7. [Source](https://gitlab.inria.fr/mpfi/mpfi/-/blob/master/AUTHORS?ref_type=heads)
8. [Source](https://packages.debian.org/source/bookworm/mpfi)