Skip to content

stencillogic/astro-float

Folders and files

NameName
Last commit message
Last commit date

Latest commit

6f76df1 · Mar 16, 2025
Mar 15, 2025
Mar 16, 2025
Mar 16, 2025
Nov 19, 2023
Mar 16, 2025
Jan 5, 2024
Jan 25, 2023
May 1, 2023
Nov 13, 2023
Mar 16, 2025
Dec 4, 2022
Dec 10, 2023
Dec 10, 2023
Dec 4, 2022

Repository files navigation

Rust Minimum rustc version Test coverage

Astro-float (astronomically large floating-point numbers) is an arbitrary precision floating-point numbers library designed for performance, portability, and implemented purely in Rust.

The library implements the basic operations and functions. It uses classical algorithms such as Karatsuba, Toom-Cook, Schönhage-Strassen algorithm, and others.

The library can work without the standard library provided there is a memory allocator.

What's new

Information about the latest changes is available in Release notes

Usage

Below is an example of using the library. For more information please refer to the library documentation: https://docs.rs/astro-float/latest/astro_float/

Calculate Pi with 1024 bit precision rounded to the nearest even number.

use astro_float::Consts;
use astro_float::RoundingMode;
use astro_float::ctx::Context;
use astro_float::expr;

// Create a context with precision 1024, and rounding to even.
let mut ctx = Context::new(1024, RoundingMode::ToEven, 
    Consts::new().expect("Constants cache initialized"),
    -10000, 10000);

// Compute pi: pi = 6*arctan(1/sqrt(3))
let pi = expr!(6 * atan(1 / sqrt(3)), &mut ctx);

// Use library's constant value for verifying the result.
let pi_lib = ctx.const_pi();

// Compare computed constant with library's constant
assert_eq!(pi.cmp(&pi_lib), Some(0));

Performance

Benchmark can be found here: https://github.com/stencillogic/bigfloat-bench.

Contributing

Issues regarding bugs or new features can be opened here: https://github.com/stencillogic/astro-float/issues

For more information please check CONTRIBUTING.md

About

Arbitrary precision floating point numbers library

Topics

Resources

License

Stars

Watchers

Forks

Languages