1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116
|
diff --git a/benches/ckms.rs b/benches/ckms.rs
deleted file mode 100644
index 5899077..0000000
--- a/benches/ckms.rs
+++ /dev/null
@@ -1,110 +0,0 @@
-#![feature(test)]
-
-extern crate test;
-extern crate quantiles;
-
-mod ckms {
- #[derive(Debug, Clone, Copy)]
- pub struct Xorshift {
- seed: u64,
- }
-
- impl Xorshift {
- pub fn new(seed: u64) -> Xorshift {
- Xorshift { seed: seed }
- }
-
- pub fn next_val(&mut self) -> u32 {
- // implementation inspired by
- // https://github.com/astocko/xorshift/blob/master/src/splitmix64.rs
- use std::num::Wrapping as w;
-
- let mut z = w(self.seed) + w(0x9E37_79B9_7F4A_7C15_u64);
- let nxt_seed = z.0;
- z = (z ^ (z >> 30)) * w(0xBF58_476D_1CE4_E5B9_u64);
- z = (z ^ (z >> 27)) * w(0x94D0_49BB_1331_11EB_u64);
- self.seed = nxt_seed;
- u32::from((z ^ (z >> 31)).0 as u16)
- }
- }
-
- use quantiles::ckms::CKMS;
- use test::Bencher;
-
- macro_rules! generate_tests {
- ($t:ty, $fn:ident, $s:expr) => {
- #[bench]
- fn $fn(b: &mut Bencher) {
- let mut xshft = Xorshift::new(1972);
- b.iter(|| {
- let mut ckms = CKMS::<$t>::new(0.001);
- for _ in 0..$s {
- let val = xshft.next_val();
- ckms.insert(val as $t);
- }
- });
- }
- }
- }
-
- macro_rules! generate_primed_tests {
- ($t:ty, $fn:ident, $s:expr) => {
- #[bench]
- fn $fn(b: &mut Bencher) {
- let mut xshft = Xorshift::new(1972);
- let mut ckms = CKMS::<$t>::new(0.001);
- for _ in 0..1_000_000 {
- let elem = xshft.next_val() as $t;
- ckms.insert(elem);
- }
-
- b.iter(|| {
- let elem = xshft.next_val() as $t;
- ckms.insert(elem);
- });
- }
- }
- }
-
- mod u16 {
- use super::*;
-
- generate_tests!(u16, bench_insert_100, 100);
- generate_tests!(u16, bench_insert_1000, 1000);
- generate_tests!(u16, bench_insert_10000, 10_000);
- generate_tests!(u16, bench_insert_65535, 65_535);
-
- generate_primed_tests!(u16, bench_primed_100, 100);
- generate_primed_tests!(u16, bench_primed_1000, 1000);
- generate_primed_tests!(u16, bench_primed_10000, 10_000);
- generate_primed_tests!(u16, bench_primed_65535, 65_535);
- }
-
- mod u32 {
- use super::*;
-
- generate_tests!(u32, bench_insert_100, 100);
- generate_tests!(u32, bench_insert_1000, 1000);
- generate_tests!(u32, bench_insert_10000, 10_000);
- generate_tests!(u32, bench_insert_100000, 100_000);
-
- generate_primed_tests!(u32, bench_primed_100, 100);
- generate_primed_tests!(u32, bench_primed_1000, 1000);
- generate_primed_tests!(u32, bench_primed_10000, 10_000);
- generate_primed_tests!(u32, bench_primed_65535, 65_535);
- }
-
- mod f32 {
- use super::*;
-
- generate_tests!(f32, bench_insert_100, 100);
- generate_tests!(f32, bench_insert_1000, 1000);
- generate_tests!(f32, bench_insert_10000, 10_000);
- generate_tests!(f32, bench_insert_100000, 100_000);
-
- generate_primed_tests!(f32, bench_primed_100, 100);
- generate_primed_tests!(f32, bench_primed_1000, 1000);
- generate_primed_tests!(f32, bench_primed_10000, 10_000);
- generate_primed_tests!(f32, bench_primed_65535, 65_535);
- }
-}
|