Crate mpir

Source
Expand description

partial Rust porting of mpir multiple precision library based on gmp mpfr

Cargo test with [– –nocapture] or with [– –show-output]

see also sum_arctan_gregory() source

// inv_f
let a = &mpz_s::from(-3);
let mut f = a.inv_f();
assert_eq!(format!("{}", f), "-0.33333333333333333333e+0");
f *= 3;
assert_eq!(format!("{}", f), "-0.1e+1");

// inv_f
let a = &mpz_s::from(-2);
let f = a.inv_f();
assert_eq!(format!("{}", f), "-0.5e+0");

// inv_q
let a = &mpz_s::from(-2);
let q = &mut a.inv_q();
assert_eq!(format!("{}", q), "1/-2");
assert_eq!(format!("{}", q.reduce()), "1/-2");
assert_eq!(format!("{}", q.inv()), "-2");

// mpf from mpq
let f = mpf_s::from(q);
assert_eq!(format!("{}", f), "-0.5e+0");
assert_eq!(format!("{}", f.inv()), "-0.2e+1");

// mpq from &str
let f = &mut mpq_s::from("9/-24");
assert_eq!(format!("{}", f), "9/-24");
assert_eq!(format!("{}", f.reduce()), "3/-8");

// mpf from &str
let f = mpf_s::from("-5");
assert_eq!(format!("{}", f), "-0.5e+1");

// mpz from &str
let f = mpz_s::from("-5");
assert_eq!(format!("{}", f), "-5");

§Requirements

in the running directory

  • libgmp-10.dll
  • libgmpxx-4.dll (optional)
  • mpir.dll

see also

Re-exports§

pub use crate::prim::*;
pub use crate::prim::typ::*;
pub use crate::prim::mpz::*;
pub use crate::prim::mpf::*;
pub use crate::prim::mpq::*;
pub use crate::prim::randstate::*;
pub use crate::ops::*;
pub use crate::convert::*;
pub use crate::util::*;

Modules§

convert
convert
minimum
minimum test for mpir
ops
ops
prim
prim
util
util

Macros§

term_z
term_z (u8)
to_u8z
to_u8z (&str)