Calcium

_images/ca2.svg

Calcium (pronounced “kalkium”) is a C library for exact computation with real and complex numbers. It is capable of rigorously deciding the truth of any constant relation involving algebraic numbers and many relations involving transcendental numbers, for example

\[\frac{\log(\sqrt{2}+\sqrt{3})}{\log(5+2\sqrt{6})} = \frac{1}{2}, \quad i^{\,i} = \exp\left(\frac{\pi}{ \left({\left(\sqrt{-2}\right)}^{\sqrt{2}}\right)^{\sqrt{2}}}\right), \quad 10^{-30} < \frac{640320^3 + 744}{e^{\pi \sqrt{163}}} - 1 < 10^{-29}.\]

Calcium is free software (LGPL). It depends on GMP, MPFR, Flint, Antic and Arb.

This documentation is available in HTML format at http://fredrikj.net/calcium/ and in PDF format at http://fredrikj.net/calcium/calcium.pdf. This edition of the documentation was updated Dec 11, 2021 and describes Calcium 0.4.0.

Tutorial

For new users, this introductory Jupyter notebook is a good place to start.

General information

General modules

Numbers

Matrices and polynomials

Field and extension number constructions

These modules are used internally by the ca_t type to construct towers of algebraic and transcendental number fields. The user does not normally need to use these modules directly outside of advanced applications requiring inspection of the symbolic representations of numbers.

Symbolic expressions

Basic algebraic structures

The following modules implement useful exact structures independently of the ca_t type. They are used internally in Calcium, but the interfaces are stable and use in appropriate external applications is encouraged.

Python interface

Credits and references

Version history

Indices and tables