The Software Carry-Save Multiple-Precision Library

This page presents the Software Carry-Save (SCS) Library, a fast and lightweight multiple-precision library developed in the Arénaire. project at ENS Lyon.

Downloading and installing

Click here to download SCSLib version 1.4.1

To install: ./configure; make . See inside the archive for details.

What is SCSLib

SCSLib has the following features:

Multiple-precision

SCSLib is a fixed-precision library, where precision is selected at compile-time. Out-of-the-box, the library ensures 210 bits of precision (quad-double). It is easily configurable to do twice or half, and with a little bit more work it can in principle ensure up to a few thousand bits.

Floating-point format

The SCS format is a floating-point format where exponents are machine integers (usually 32-bit numbers), which ensures a huge exponent range.

Supported operations

SCSLib currently offers addition/subtraction, multiplication, and an experimental division, plus all the useful conversion functions.

IEEE-754 compatibility

The range of SCS numbers includes the range of IEEE double-precision numbers, including denormals and exceptional cases. Conversions between SCS format and IEEE-754 doubles, as well as arithmetic operations, follow the IEEE rules concerning the exceptional cases. SCS doesn't ensure correct rounding, but provides conversions to doubles in the four IEEE-754 rounding modes.

Performance

SCSLib is designed to be fast. With 210 bits, it outperforms MPF for most operations on most architectures.

Licence

This library is distributed under the LGPL. See inside the archive for details.

Learn more

See the online user documentation inside the archives for a list of supported operations.

See the ENS research report RR2002-08 for the principles behind the SCS library.


David Defour (address at univ-perp.fr), Florent de Dinechin (address at insa-lyon.fr).
Last modified: Wed Dec 5 19:42:28 MET 2001