Crlibm

Jul 20, 2023

Correctly-rounded mathematics library

CRlibm is an efficient and proven mathematical library, which provides implementations of the double-precision C99 standard elementary functions, correctly rounded in the four IEEE-754 rounding modes, and sufficiently efficient in average time, worst-case time, and memory consumption to replace existing libms transparently.

The distribution includes extensive documentation with the proof of each function currently more than 100 pages, as well as all the Maple scripts used to develop the functions. This makes this library an excellent tutorial on software elementary function development.

CRlibm also includes a lightweight library for multiple precision, scslib Software Carry Save Library. This library has been developed specifically to answer the needs of the CRlibm project precision up to a few hundred bits, portability, compatibility with IEEE floating-point standards, performance comparable to or better than GMP, and a small footprint. It uses a data-structure which allows carry propagations to be avoided during multiple-precision multiplications, and supports addition, subtraction, multiplication, and conversions.



Checkout these related ports:
  • Zn_poly - C library for polynomial arithmetic
  • Zimpl - Language to translate the LP models into .lp or .mps
  • Zegrapher - Software for plotting mathematical objects
  • Zarray - Dynamically typed N-D expression system based on xtensor
  • Z3 - Z3 Theorem Prover
  • Yices - SMT solver
  • Yacas - Yet Another Computer Algebra System
  • Xtensor - Multi-dimensional arrays with broadcasting and lazy computing
  • Xtensor-python - Python bindings for xtensor
  • Xtensor-io - Xtensor plugin to read/write images, audio files, numpy npz and HDF5
  • Xtensor-blas - BLAS extension to xtensor
  • Xspread - Spreadsheet program for X and terminals
  • Xppaut - Graphical tool for solving differential equations, etc
  • Xplot - X11 plotting package
  • Xlife++ - XLiFE++ eXtended Library of Finite Elements in C++