-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathsequence_vec.rs
More file actions
29 lines (25 loc) · 1.01 KB
/
Copy pathsequence_vec.rs
File metadata and controls
29 lines (25 loc) · 1.01 KB
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
//! Benchmark for large sequences of simple observations.
use criterion::{black_box, criterion_group, criterion_main, Criterion};
use fugue::*;
use rand::rngs::StdRng;
use rand::SeedableRng;
fn benchmark_stack_overflow_model(c: &mut Criterion) {
let n = 1_000usize;
c.bench_function("stack_overflow_model/sequence_vec", |b| {
b.iter(|| {
let models: Vec<Model<bool>> = (0..n)
.map(|i| sample(addr!("coin", i), Bernoulli::new(0.5).unwrap()))
.collect();
let model = sequence_vec(models);
let mut rng = StdRng::seed_from_u64(42);
let handler = runtime::interpreters::PriorHandler {
rng: &mut rng,
trace: runtime::trace::Trace::default(),
};
let (result, _trace) = runtime::handler::run(handler, model);
black_box(result.len());
})
});
}
criterion_group!(stack_overflow_benches, benchmark_stack_overflow_model);
criterion_main!(stack_overflow_benches);