Crate num [−] [src]
A collection of numeric types and traits for Rust.
This includes new types for big integers, rationals, and complex numbers,
new traits for generic programming on numeric properties like Integer
,
and generic range iterators.
Example
This example uses the BigRational type and Newton's method to approximate a square root to arbitrary precision:
extern crate num; #[cfg(all(feature = "bigint", feature="rational"))] mod test { use num::FromPrimitive; use num::bigint::BigInt; use num::rational::{Ratio, BigRational}; pub fn approx_sqrt(number: u64, iterations: usize) -> BigRational { let start: Ratio<BigInt> = Ratio::from_integer(FromPrimitive::from_u64(number).unwrap()); let mut approx = start.clone(); for _ in 0..iterations { approx = (&approx + (&start / &approx)) / Ratio::from_integer(FromPrimitive::from_u64(2).unwrap()); } approx } } #[cfg(not(all(feature = "bigint", feature="rational")))] mod test { pub fn approx_sqrt(n: u64, _: usize) -> u64 { n } } use test::approx_sqrt; fn main() { println!("{}", approx_sqrt(10, 4)); // prints 4057691201/1283082416 }extern crate num; use num::FromPrimitive; use num::bigint::BigInt; use num::rational::{Ratio, BigRational}; fn approx_sqrt(number: u64, iterations: usize) -> BigRational { let start: Ratio<BigInt> = Ratio::from_integer(FromPrimitive::from_u64(number).unwrap()); let mut approx = start.clone(); for _ in 0..iterations { approx = (&approx + (&start / &approx)) / Ratio::from_integer(FromPrimitive::from_u64(2).unwrap()); } approx } fn main() { println!("{}", approx_sqrt(10, 4)); // prints 4057691201/1283082416 }
Reexports
pub use bigint::{BigInt, BigUint}; |
pub use rational::Rational; |
pub use rational::BigRational; |
pub use complex::Complex; |
pub use integer::Integer; |
pub use iter::{range, range_inclusive, range_step, range_step_inclusive}; |
pub use traits::{Num, Zero, One, Signed, Unsigned, Bounded, Saturating, CheckedAdd, CheckedSub, CheckedMul, CheckedDiv, PrimInt, Float, ToPrimitive, FromPrimitive, NumCast, cast}; |
Modules
bigint |
A Big integer (signed version: |
complex |
Complex numbers. |
integer |
Integer trait and functions. |
iter |
External iterators for generic mathematics |
rational |
Rational numbers |
traits |
Numeric traits for generic mathematics |
Functions
abs |
Computes the absolute value. |
abs_sub |
The positive difference of two numbers. |
checked_pow |
Raises a value to the power of exp, returning |
one |
Returns the multiplicative identity, |
pow |
Raises a value to the power of exp, using exponentiation by squaring. |
signum |
Returns the sign of the number. |
zero |
Returns the additive identity, |