## num-irrational

`num-irrational` is based on `num` and extends it with support for several kinds of irrational numbers

### 10 unstable releases(3 breaking)

 0.3.0 Apr 15, 2022 Apr 11, 2022 Apr 8, 2022 Mar 3, 2022 Jan 18, 2022

#1694 in Math

Used in 2 crates

Apache-2.0

175KB
4K SLoC

# num-irrational

This crate provides representations of irrational numbers within following categories:

• Math constants (`pi`, `e`, etc.)
• Gaussian integer / Eisenstein integer
• Continued Fraction
• Simple (aka. Regular) continued fraction
• General continued fraction
• Hurwitz continued fraction

As you can see, the support for irrational number is not limited in the real field, it also support several numeric types in the complex field (by enabling the `complex` feature). It's based on the `num` creates.

### `lib.rs`:

This crate provides representations of irrational numbers within following categories:

It's based on the `num` creates.

# Examples

``````use num_irrational::{FromSqrt, QuadraticSurd};
println!("Square root of 2: {}", sq2); // √2

use num_irrational::Computable;
let sq2_approx = sq2.approximated(&100).value();
println!("Rational approximation with denominator under 100: {}", sq2_approx); // 99/70

use core::convert::TryFrom;
use num_irrational::ContinuedFraction;
// let sq2_fraction = ContinuedFraction::from(sq2); // only if feature `complex` is disabled
let sq2_fraction = ContinuedFraction::try_from(sq2).unwrap();
println!("Continued Fraction: {}", sq2_fraction); // [1; (2)]
``````

# Optional Features

• `complex`: Enable negative square root base support for [QuadraticSurd]. Note that this flag might change some behavior of the operators on [QuadraticSurd].
• `num-complex`: Enable converting [QuadraticSurd] to `num_complex::Complex`. You probably want to enable the `complex` feature at the same time.
• `num-bigint`: Enable using big integers as the internal representation.

~625KB
~14K SLoC