Ian Jauslin


libinum is a library that implements several numerical algorithms.

One of the its main originalities is that it supports both fixed and arbitrary precision floating point numbers. Fixed precision floating point numbers have a predetermined number of digits, whereas arbitrary precision floating point numbers can have as many digits as needed. Numerical truncation errors can, therefore, be controlled for arbitrary precision floats. However, manipulating them is slower than fixed precision floats. If computational precision is more important than speed, then arbitrary precision floats may be used, whereas if speed is more of an issue, then fixed precision floats may be preferable. The functions provided by libinum can be used in both cases.

libinum is written in C, and can run on any POSIX compliant system, including GNU/Linux and OSX. libinum is linked against the GNU MPFR and GNU GMP libraries.

The main features of libinum v1.0.1:

The features are few because libinum was written to carry out a few specific computations, and only supports the operations that were needed for those computations. More features will be added as I need them for my research.


libinum is made available under an Apache 2.0 license, which allows copying, sharing and modifying the source code, among other things. Details can be found at https://www.apache.org/licenses/LICENSE-2.0.

The source code is made available here:

In addition, the following distribution-dependent packages are made available:


The functions and structures defined by libinum are documented here:


As was mentionned earlier, libinum is licensed under the Apache 2.0 license.

libinum is linked against the GNU MPFR and GMP libraries, which are licensed under the GNU Lesser General Public License v3.