-
Notifications
You must be signed in to change notification settings - Fork 0
Home
c8 (calculate) is designed as an easy-to-use arbitrary precision (big number) maths library that has no dependencies other than the standard C++ libraries provided with gcc or clang.
Its design emphasizes ease of use, but is intended to be used in high performance applications.
c8 provides supports for three primary classes of numbers:
-
c8::natural
provides natural numbers. -
c8::integer
provides integers. -
c8::rational
provides rational numbers.
Each class supports functions to construct objects from, and to export object values to, standard C++ value types.
Between the three classes it's possible to represent all the interesting numbers that a computer can directly represent, since floating point numbers are a subset of the set of rational numbers. By using rationals instead of floating point it's also much easier to avoid some types of computational error.
Documentation to use this project. See: Documentation
Questions and answers about the project. See: FAQ
The code is licensed under a 3-clause BSD license. See: FAQ
It is written in C++14 and makes extensive use of features that do not appear prior to C++11.
Part of the aim of this library project is to document the development process. See: Dev Notes
Please feel free to raise issues via the issue tracker, or tweet the author (Dave Hudson) via @hashingitcom
Software is best as a collaborative effort, so if you'd like to suggest, or make, improvements then please feel free!