Main Page Data Structures File List Data Fields Globals
SCSLib, the Software Carry-Save multiple-precision library
1.2.1
Introduction
SCSLib is a fast and lightweight multiple-precision library developped in the Arénaire project at ENS Lyon. It was developed as a building block for evaluating elementary functions with correct rounding. Its interesting features are:
- Compile-time selected precision: SCSLib is a fixed-precision library, where precision is selected at compile-time for performance. Out-of-the-box, the library ensures 210 bits of precision (quad-double). It is easily configurable to do any precision between twice or half that, 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 include 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.
SCSLib is still under development and hasn't been tested on all possible combinations of architecture and environment. If you think you have found a bug, please investigate and report it.
All you need to build SCSLib is a C compiler compliant with the ANSI C99 standard. So far we have successfully tested the following compilers:
Installation
Standard installation should only require
Compile-time options may be passed to configure
- to change the precision (default is 200 bits)
- to link with the GNU multiple-precision package MPFR (for testing and debugging purpose)
See the INSTALL file and configure --help for details
Linking with the SCS library
To use SCSLib you need to include the header file scs.h. See the documentation of this file for details. Then you need to link with libscs.a.
For C++ users we provide a wrapper class wrapper_scs.h that overloads the basic arithmetic operators with SCS operations. It hasn't been tested extensively.
Reporting bugs
Please report bugs at the following address: scslib@ens-lyon.fr
Copyright and license
Copyright (C) 2002 Catherine Daramy, David Defour and Florent de Dinechin
This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Generated on Tue Jun 17 10:15:51 2003 for SCSLib by
1.2.15