use num_bigint::{BigUint, RandBigInt}; use num_integer::Integer; use num_traits::Zero; use test::Bencher;
mod rng; use rng::get_rng;
fn bench(b: &mut Bencher, bits: u64, gcd: fn(&BigUint, &BigUint) -> BigUint) { letmut rng = get_rng(); let x = rng.gen_biguint(bits); let y = rng.gen_biguint(bits);
assert_eq!(euclid(&x, &y), x.gcd(&y));
b.iter(|| gcd(&x, &y));
}
fn euclid(x: &BigUint, y: &BigUint) -> BigUint { // Use Euclid's algorithm letmut m = x.clone(); letmut n = y.clone(); while !m.is_zero() { let temp = m;
m = n % &temp;
n = temp;
}
n
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.