CLN - Class Library for Numbers (original) (raw)
CLN is a library for efficient computations with all kinds of numbers in arbitrary precision. CLN was written by Bruno Haible and is currently maintained by Richard B. Kreckel. It is distributed under the terms and conditions of the GNU General Public LicenseGPL. The current version is CLN 1.3.6.
Features and Overview
CLN is a C++ library providing the following features:
- Rich set of number classes:
Integer (unlimited precision), rational, short float, single float, double float, long float (unlimited precision), complex, modular integer, univariate polynomial. - Elementary, logical, transcendental functions.
- C++ as implementation language brings
- efficiency,
- type safety,
- algebraic syntax.
- Memory efficiency:
- Small integers and short floats are immediate, not heap allocated.
- Automatic, non-interruptive garbage collection.
- Speed efficiency:
- Assembly language kernel for some CPUs,
- Karatsuba and Schönhage-Strassen multiplication,
- binary splitting.
- Interoperability:
- Garbage collection with no burden on the main application,
- hooks for memory allocation and exceptions.
Availability
You can download the current version of CLN from here. Alternatively, you may wish to check your favored operating system distribution for a precompiled package:Debian has CLN pre-packaged, as haveFedora, openSUSE, andsome other distributions.
CLN's source code is managed using the git version control system. You may either browse the source treeor use git to clone the repository using git clone git://www.ginac.de/cln.git. Check the INSTALL* files in the source tree for how to compile and install CLN.
Mailing List
You are welcome to subscribe to our mailing list. It is open for anything having to do with the CLN library, from technical discussion to advocacy. There is also anarchiveof the list. Note that thanks to human-assisted spam filtering the amount of spam on the list should be vanishingly small.
Documentation
These are online versions of the documentation that comes with the library: