#![feature(test)] extern crate test; use rug::{Float, Integer}; use svp::*; use test::Bencher; #[bench] fn dim20(p: &mut Bencher) { let mut b = vec![ nvec![ Integer::from(-1), Integer::new(), Integer::from(2), Integer::from(-2), Integer::from(1), Integer::new(), Integer::from(-2), Integer::from(1), Integer::from(-1), Integer::new(), Integer::from(1), Integer::from(4), Integer::from(1), Integer::from(-1), Integer::from(-2), Integer::from(1), Integer::new(), Integer::from(1), Integer::from(-1), Integer::from(-3), Integer::from(1), Integer::from(1), Integer::from(-1), Integer::from(3), Integer::from(1), Integer::from(1), Integer::from(-1), Integer::new(), Integer::new(), Integer::from(-1) ], nvec![ Integer::from(-3), Integer::from(3), Integer::from(-1), Integer::from(-3), Integer::new(), Integer::from(1), Integer::from(-2), Integer::from(8), Integer::from(1), Integer::from(-1), Integer::new(), Integer::new(), Integer::from(-1), Integer::from(-4), Integer::from(3), Integer::from(1), Integer::from(3), Integer::from(-1), Integer::from(4), Integer::from(2), Integer::new(), Integer::new(), Integer::from(-4), Integer::from(-4), Integer::from(-2), Integer::from(3), Integer::from(-1), Integer::from(1), Integer::from(-2), Integer::from(1) ], nvec![ Integer::from(-9), Integer::from(-4), Integer::from(1), Integer::from(1), Integer::from(1), Integer::from(5), Integer::new(), Integer::from(3), Integer::new(), Integer::new(), Integer::from(-1), Integer::from(-5), Integer::from(1), Integer::from(-5), Integer::from(1), Integer::new(), Integer::from(1), Integer::new(), Integer::from(-1), Integer::from(6), Integer::from(-1), Integer::from(-1), Integer::from(3), Integer::new(), Integer::from(1), Integer::from(-1), Integer::new(), Integer::from(-3), Integer::new(), Integer::from(-1) ], nvec![ Integer::from(1), Integer::new(), Integer::new(), Integer::from(5), Integer::from(10), Integer::from(-5), Integer::from(1), Integer::from(1), Integer::from(-3), Integer::from(2), Integer::from(-2), Integer::from(-2), Integer::new(), Integer::from(2), Integer::from(2), Integer::from(1), Integer::from(-1), Integer::from(3), Integer::from(5), Integer::from(2), Integer::from(4), Integer::from(1), Integer::from(-1), Integer::from(-1), Integer::from(2), Integer::from(2), Integer::from(-2), Integer::new(), Integer::from(-3), Integer::new() ], nvec![ Integer::from(-1), Integer::from(-1), Integer::from(-2), Integer::from(-2), Integer::new(), Integer::from(1), Integer::from(-1), Integer::from(-4), Integer::from(3), Integer::from(2), Integer::from(-1), Integer::from(1), Integer::from(-13), Integer::from(-1), Integer::from(1), Integer::from(-2), Integer::from(5), Integer::new(), Integer::from(6), Integer::new(), Integer::from(-4), Integer::new(), Integer::from(3), Integer::from(1), Integer::from(1), Integer::from(1), Integer::new(), Integer::from(-1), Integer::from(-3), Integer::new() ], nvec![ Integer::from(1), Integer::from(2), Integer::new(), Integer::from(1), Integer::from(-1), Integer::from(-1), Integer::from(1), Integer::from(1), Integer::from(1), Integer::from(11), Integer::from(2), Integer::from(-10), Integer::from(1), Integer::new(), Integer::from(1), Integer::from(-2), Integer::from(1), Integer::from(1), Integer::from(-2), Integer::from(-7), Integer::new(), Integer::from(-1), Integer::from(-4), Integer::new(), Integer::from(-1), Integer::from(1), Integer::from(-2), Integer::from(2), Integer::from(-1), Integer::from(1) ], nvec![ Integer::from(-1), Integer::from(1), Integer::from(2), Integer::new(), Integer::from(2), Integer::from(-1), Integer::from(-1), Integer::new(), Integer::from(1), Integer::new(), Integer::from(-2), Integer::from(-1), Integer::from(-5), Integer::new(), Integer::from(-1), Integer::from(-2), Integer::from(-1), Integer::from(9), Integer::new(), Integer::from(1), Integer::from(5), Integer::new(), Integer::from(-1), Integer::from(-2), Integer::new(), Integer::from(1), Integer::from(1), Integer::from(-13), Integer::from(6), Integer::new() ], nvec![ Integer::from(1), Integer::from(-4), Integer::new(), Integer::from(-9), Integer::from(-2), Integer::from(-3), Integer::from(-1), Integer::new(), Integer::from(4), Integer::from(-1), Integer::from(4), Integer::from(2), Integer::from(3), Integer::from(-7), Integer::from(-2), Integer::from(-1), Integer::from(1), Integer::from(1), Integer::from(1), Integer::new(), Integer::from(-2), Integer::from(1), Integer::from(-1), Integer::from(-2), Integer::new(), Integer::from(-17), Integer::from(-1), Integer::from(2), Integer::from(-1), Integer::from(-1) ], nvec![ Integer::from(-1), Integer::from(-6), Integer::from(1), Integer::new(), Integer::from(-2), Integer::from(7), Integer::from(1), Integer::new(), Integer::from(-4), Integer::from(1), Integer::new(), Integer::from(6), Integer::from(5), Integer::from(-2), Integer::from(-4), Integer::from(-1), Integer::new(), Integer::from(3), Integer::from(-2), Integer::from(-1), Integer::new(), Integer::from(-3), Integer::from(-5), Integer::from(-13), Integer::new(), Integer::from(3), Integer::from(11), Integer::from(-1), Integer::from(-1), Integer::from(1) ], nvec![ Integer::from(3), Integer::from(4), Integer::from(-3), Integer::from(-20), Integer::from(2), Integer::new(), Integer::from(2), Integer::from(-1), Integer::from(3), Integer::from(2), Integer::new(), Integer::from(-6), Integer::from(-7), Integer::from(2), Integer::from(4), Integer::from(-1), Integer::from(-1), Integer::from(-1), Integer::from(2), Integer::from(4), Integer::from(-1), Integer::from(-2), Integer::from(1), Integer::from(9), Integer::from(-1), Integer::from(-3), Integer::from(1), Integer::new(), Integer::from(1), Integer::from(1) ], nvec![ Integer::from(-1), Integer::from(1), Integer::from(2), Integer::from(3), Integer::from(3), Integer::from(-1), Integer::from(-2), Integer::from(-1), Integer::from(-3), Integer::from(1), Integer::from(-8), Integer::from(4), Integer::from(-4), Integer::from(-1), Integer::from(-1), Integer::from(-4), Integer::from(6), Integer::from(1), Integer::from(-2), Integer::from(-2), Integer::from(-11), Integer::new(), Integer::new(), Integer::from(2), Integer::from(-13), Integer::from(1), Integer::from(1), Integer::from(-1), Integer::from(11), Integer::from(-2) ], nvec![ Integer::from(2), Integer::from(-3), Integer::from(4), Integer::from(-5), Integer::new(), Integer::new(), Integer::from(2), Integer::from(-7), Integer::from(-1), Integer::from(1), Integer::from(1), Integer::from(4), Integer::new(), Integer::from(3), Integer::from(-5), Integer::new(), Integer::from(18), Integer::from(1), Integer::from(-5), Integer::from(10), Integer::from(2), Integer::from(-1), Integer::from(2), Integer::from(4), Integer::from(4), Integer::from(-9), Integer::from(-4), Integer::from(-2), Integer::from(-1), Integer::new() ], nvec![ Integer::from(-1), Integer::from(-16), Integer::from(1), Integer::new(), Integer::from(1), Integer::from(-1), Integer::from(3), Integer::from(-1), Integer::from(-4), Integer::new(), Integer::new(), Integer::from(1), Integer::new(), Integer::from(-4), Integer::new(), Integer::from(1), Integer::from(1), Integer::from(-1), Integer::from(1), Integer::from(1), Integer::from(2), Integer::from(-15), Integer::new(), Integer::from(2), Integer::from(-6), Integer::from(12), Integer::from(-2), Integer::from(-1), Integer::from(3), Integer::from(1) ], nvec![ Integer::from(2), Integer::from(7), Integer::from(-1), Integer::from(5), Integer::from(3), Integer::from(8), Integer::new(), Integer::from(-3), Integer::from(-2), Integer::from(-7), Integer::from(2), Integer::from(7), Integer::from(10), Integer::from(-8), Integer::from(9), Integer::from(-1), Integer::from(10), Integer::from(-3), Integer::from(-5), Integer::from(6), Integer::from(-6), Integer::from(-3), Integer::from(-11), Integer::from(8), Integer::from(-2), Integer::from(-3), Integer::from(-1), Integer::from(1), Integer::from(3), Integer::from(3) ], nvec![ Integer::from(-9), Integer::from(-1), Integer::from(-1), Integer::from(6), Integer::from(-8), Integer::from(-3), Integer::from(5), Integer::from(-1), Integer::from(2), Integer::from(-3), Integer::from(-5), Integer::from(8), Integer::from(5), Integer::from(6), Integer::from(1), Integer::from(-4), Integer::from(9), Integer::from(7), Integer::from(6), Integer::from(11), Integer::from(-7), Integer::from(-1), Integer::new(), Integer::from(-5), Integer::from(10), Integer::from(8), Integer::from(-9), Integer::from(6), Integer::from(-6), Integer::from(-3) ], nvec![ Integer::from(12), Integer::from(2), Integer::from(3), Integer::new(), Integer::from(8), Integer::from(1), Integer::from(-5), Integer::from(-4), Integer::from(-12), Integer::from(-10), Integer::from(1), Integer::from(-15), Integer::from(2), Integer::from(1), Integer::from(-3), Integer::from(1), Integer::from(1), Integer::from(3), Integer::new(), Integer::from(-6), Integer::from(-1), Integer::from(2), Integer::new(), Integer::from(4), Integer::from(4), Integer::from(3), Integer::from(10), Integer::from(2), Integer::from(-1), Integer::from(2) ], nvec![ Integer::from(-2), Integer::new(), Integer::from(2), Integer::from(2), Integer::from(3), Integer::from(5), Integer::from(-1), Integer::from(-2), Integer::from(-4), Integer::from(-13), Integer::from(27), Integer::from(-2), Integer::from(-2), Integer::from(7), Integer::from(7), Integer::from(2), Integer::from(-1), Integer::from(-4), Integer::from(-5), Integer::from(1), Integer::new(), Integer::from(4), Integer::from(4), Integer::from(6), Integer::from(2), Integer::from(4), Integer::from(5), Integer::from(-4), Integer::from(4), Integer::from(3) ], nvec![ Integer::from(16), Integer::from(10), Integer::from(1), Integer::from(-5), Integer::from(2), Integer::from(7), Integer::from(3), Integer::from(-5), Integer::from(-2), Integer::from(5), Integer::from(8), Integer::from(-2), Integer::from(-1), Integer::from(1), Integer::from(-10), Integer::from(11), Integer::from(1), Integer::from(-5), Integer::from(-4), Integer::from(7), Integer::from(-8), Integer::from(-4), Integer::from(6), Integer::from(5), Integer::from(9), Integer::from(7), Integer::from(-4), Integer::from(-4), Integer::from(-13), Integer::new() ], nvec![ Integer::from(-7), Integer::from(4), Integer::from(2), Integer::from(5), Integer::from(-9), Integer::from(8), Integer::from(-1), Integer::new(), Integer::from(-5), Integer::from(-4), Integer::from(-2), Integer::from(-4), Integer::from(10), Integer::from(7), Integer::new(), Integer::from(-2), Integer::from(-4), Integer::from(4), Integer::from(21), Integer::from(-5), Integer::from(12), Integer::from(8), Integer::new(), Integer::from(1), Integer::from(-2), Integer::from(7), Integer::from(3), Integer::new(), Integer::from(5), Integer::from(-5) ], nvec![ Integer::from(5), Integer::from(7), Integer::from(-1), Integer::from(-4), Integer::from(4), Integer::from(6), Integer::from(1), Integer::from(4), Integer::from(2), Integer::from(4), Integer::from(2), Integer::from(-9), Integer::from(-3), Integer::from(-17), Integer::from(-4), Integer::from(6), Integer::from(-9), Integer::from(23), Integer::from(2), Integer::from(4), Integer::from(-1), Integer::from(-4), Integer::from(4), Integer::from(-1), Integer::from(-10), Integer::from(-2), Integer::from(6), Integer::from(6), Integer::from(-2), Integer::from(-2) ], nvec![ Integer::from(-9), Integer::from(-6), Integer::from(-1), Integer::from(4), Integer::from(-9), Integer::from(-19), Integer::from(2), Integer::from(-14), Integer::new(), Integer::from(-2), Integer::from(5), Integer::from(8), Integer::new(), Integer::from(-9), Integer::from(4), Integer::from(-5), Integer::from(8), Integer::from(-5), Integer::from(-4), Integer::from(6), Integer::from(-5), Integer::from(10), Integer::new(), Integer::from(-5), Integer::from(15), Integer::from(12), Integer::from(11), Integer::from(-12), Integer::from(-4), Integer::from(5) ], nvec![ Integer::from(4), Integer::from(5), Integer::from(3), Integer::from(6), Integer::from(2), Integer::from(-4), Integer::from(-4), Integer::from(17), Integer::from(-7), Integer::from(-7), Integer::new(), Integer::new(), Integer::new(), Integer::from(9), Integer::from(-3), Integer::from(5), Integer::from(-1), Integer::from(-5), Integer::from(16), Integer::from(-2), Integer::from(-3), Integer::from(-27), Integer::from(-1), Integer::from(13), Integer::from(2), Integer::from(-5), Integer::from(5), Integer::from(-11), Integer::from(-1), Integer::from(-9) ], nvec![ Integer::from(7), Integer::from(-15), Integer::from(4), Integer::from(11), Integer::from(-6), Integer::from(-1), Integer::from(-6), Integer::from(14), Integer::from(12), Integer::from(-3), Integer::from(-17), Integer::from(-10), Integer::new(), Integer::from(14), Integer::from(-10), Integer::from(17), Integer::from(4), Integer::from(3), Integer::from(10), Integer::from(-9), Integer::from(-9), Integer::from(-5), Integer::from(-3), Integer::from(8), Integer::from(5), Integer::new(), Integer::from(-1), Integer::from(1), Integer::from(7), Integer::from(13) ], nvec![ Integer::from(-6), Integer::from(13), Integer::new(), Integer::from(-5), Integer::from(2), Integer::from(-6), Integer::from(3), Integer::from(-8), Integer::from(-4), Integer::from(9), Integer::from(4), Integer::from(6), Integer::from(13), Integer::new(), Integer::from(-10), Integer::from(6), Integer::from(2), Integer::from(-3), Integer::from(1), Integer::from(-1), Integer::from(-12), Integer::from(5), Integer::new(), Integer::new(), Integer::from(-3), Integer::from(-5), Integer::from(-5), Integer::new(), Integer::from(-7), Integer::from(35) ], nvec![ Integer::from(-7), Integer::from(18), Integer::from(4), Integer::from(4), Integer::from(-2), Integer::from(3), Integer::from(4), Integer::from(10), Integer::from(34), Integer::from(6), Integer::from(15), Integer::from(4), Integer::from(11), Integer::from(15), Integer::from(-12), Integer::from(-6), Integer::from(-2), Integer::from(6), Integer::from(13), Integer::from(-1), Integer::from(-1), Integer::from(-8), Integer::from(7), Integer::from(3), Integer::from(-4), Integer::from(12), Integer::from(10), Integer::from(-3), Integer::from(2), Integer::from(7) ], nvec![ Integer::from(-4), Integer::from(-4), Integer::from(-5), Integer::from(-1), Integer::from(-6), Integer::from(4), Integer::from(-38), Integer::from(-5), Integer::from(6), Integer::from(15), Integer::from(-5), Integer::from(9), Integer::from(13), Integer::from(10), Integer::from(10), Integer::from(-2), Integer::from(-13), Integer::from(8), Integer::from(-2), Integer::from(12), Integer::new(), Integer::from(-13), Integer::from(8), Integer::from(-13), Integer::new(), Integer::from(-2), Integer::from(-6), Integer::from(3), Integer::from(-5), Integer::from(-3) ], nvec![ Integer::from(1), Integer::new(), Integer::from(-5), Integer::from(-4), Integer::from(-1), Integer::from(-8), Integer::from(-16), Integer::from(-9), Integer::from(13), Integer::from(13), Integer::from(6), Integer::from(-3), Integer::from(-11), Integer::from(-6), Integer::from(-27), Integer::from(6), Integer::from(-6), Integer::from(-5), Integer::from(3), Integer::from(25), Integer::from(-1), Integer::from(-8), Integer::from(-7), Integer::from(10), Integer::from(3), Integer::from(4), Integer::from(-3), Integer::from(18), Integer::from(24), Integer::from(-2) ], nvec![ Integer::from(11), Integer::from(-1), Integer::from(18), Integer::from(-4), Integer::from(16), Integer::from(-1), Integer::from(-7), Integer::new(), Integer::from(-12), Integer::from(4), Integer::from(2), Integer::from(3), Integer::from(-4), Integer::from(-5), Integer::from(7), Integer::from(-2), Integer::from(1), Integer::from(-13), Integer::from(-1), Integer::from(7), Integer::from(-1), Integer::from(8), Integer::from(3), Integer::from(-25), Integer::from(24), Integer::new(), Integer::from(3), Integer::from(15), Integer::from(35), Integer::from(15) ], nvec![ Integer::from(-60), Integer::from(27), Integer::from(2), Integer::from(-23), Integer::from(35), Integer::from(-16), Integer::from(15), Integer::from(-75), Integer::from(29), Integer::from(-21), Integer::from(-18), Integer::from(-23), Integer::from(2), Integer::from(12), Integer::from(2), Integer::from(108), Integer::from(11), Integer::from(-1), Integer::from(-20), Integer::from(-34), Integer::from(-4), Integer::from(-53), Integer::from(-32), Integer::from(-55), Integer::new(), Integer::from(-5), Integer::from(-15), Integer::from(3), Integer::from(16), Integer::from(-57) ], nvec![ Integer::from(20), Integer::from(-12), Integer::from(273), Integer::from(20), Integer::from(-50), Integer::from(15), Integer::from(-19), Integer::from(-8), Integer::from(23), Integer::from(3), Integer::from(7), Integer::from(-7), Integer::from(-53), Integer::from(29), Integer::from(23), Integer::from(-64), Integer::from(-87), Integer::from(-9), Integer::from(8), Integer::from(97), Integer::from(-17), Integer::from(14), Integer::from(-97), Integer::from(42), Integer::from(-74), Integer::from(-21), Integer::from(20), Integer::from(16), Integer::from(-119), Integer::from(29) ], ]; for i in 0..b.len() { b[i].norm = Some(&b[i] * &b[i]); } let l = Lattice { basis: b.clone() }; let t = Float::with_val(56, b.len()).ln(); let mut gs = gsieve![l, t]; p.iter(|| gs.sieve()) }