Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mrdcvlsc/apa
A C++ library for big integers and dynamic precision floating-point
https://github.com/mrdcvlsc/apa
arbitrary-precision arbitrary-precision-arithmetic arbitrary-precision-integers big-integer big-number bigint biginteger bignum bignumber cplusplus cpp cryptography karatsuba large-integer large-number library math multi-precision multiprecision
Last synced: about 2 months ago
JSON representation
A C++ library for big integers and dynamic precision floating-point
- Host: GitHub
- URL: https://github.com/mrdcvlsc/apa
- Owner: mrdcvlsc
- License: mit
- Created: 2020-09-18T01:02:13.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2023-10-20T06:07:09.000Z (about 1 year ago)
- Last Synced: 2024-10-18T06:02:38.449Z (2 months ago)
- Topics: arbitrary-precision, arbitrary-precision-arithmetic, arbitrary-precision-integers, big-integer, big-number, bigint, biginteger, bignum, bignumber, cplusplus, cpp, cryptography, karatsuba, large-integer, large-number, library, math, multi-precision, multiprecision
- Language: C++
- Homepage: https://mrdcvlsc.github.io/APA/
- Size: 1.66 MB
- Stars: 20
- Watchers: 2
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# **APA** : C++ big integers and dynamic precision floating points.
https://mrdcvlsc.github.io/APA
[![License: MIT](https://img.shields.io/badge/License-MIT-brightgreen.svg)](https://opensource.org/licenses/MIT)
![build](https://github.com/mrdcvlsc/APA/actions/workflows/build.yml/badge.svg)
![gcc-gnu](https://github.com/mrdcvlsc/APA/actions/workflows/gcc-gnu.yml/badge.svg)
![clang](https://github.com/mrdcvlsc/APA/actions/workflows/clang.yml/badge.svg)
![mingw32](https://github.com/mrdcvlsc/APA/actions/workflows/mingw64.yml/badge.svg)
![](https://img.shields.io/github/languages/code-size/mrdcvlsc/APA)A C++ library for big integers and dynamic precision floating points (big numbers),
pure c/c++ implementation, no handwritten inline-assembly.**Version 0.4.8 Status : [WIP - Work In Progress]**
This branch (**version 0.4.8**) is an ongoing rewrite of the whole library.
**Visit branch [version 0.3.9](https://github.com/mrdcvlsc/APA/tree/version_3.9)
for the latest previous working version.**-----
### **Links**
- [**Documentation**](docs/docs.md) - learn how to use the library.
- [**Quick-Tutorial**](docs/quick-tutorial.md) - learn how this library works internally.
- [**Performance Comparison**](benchmark/comparison.md) - performance was compared with
other light-weight popular C++ big integer libraries.-----
### **Environment Requirements**
| | |
| ---------------- | ---------------- |
| **Byte Order** | little-endian |
| **OS** | Windows, Linux |
| **Architecture** | x86, x64, x86-64 |
| **Compilers** | clang, GCC |If your system does not have these requirements, it **might** produce wrong
results (on other system this could still work, but the chances of the tests
failing will be higher).-----
### **Description**
This is a C++ **A**rbitrary **P**recision **A**rithmetic library. Used to compute
big integers and real numbers/floating point numbers. If you need to compute numbers that
is greater than the max value of `long long int`, `int64_t` or
`__int128_t` this library can do it for you.-----
### **About**
This repository started as a personal hobby project **not intended** to
replace big number libraries like [boost multiprecision](https://www.boost.org/)
and [gmplib](https://gmplib.org/) and is **only for didactic purposes**.
Though performance is still a priority, meaning this library will... as much
as possible, use the fastest and the most efficient algorithms and
implementations THAT THE AUTHOR(s) KNOW OF.