diff --git a/lace/lace_cc/src/misc.rs b/lace/lace_cc/src/misc.rs deleted file mode 100644 index c05403d2..00000000 --- a/lace/lace_cc/src/misc.rs +++ /dev/null @@ -1,86 +0,0 @@ -use lace_stats::rv::dist::Beta; -use lace_stats::rv::misc::pflip; -use lace_stats::rv::traits::Rv; -use rand::Rng; -use serde::{Deserialize, Serialize}; - -// #[derive(Debug, Clone, Hash, PartialEq, Eq, Ord, PartialOrd)] -// pub struct CrpDraw { -// pub asgn: Vec, -// pub counts: Vec, -// pub n_cats: usize, -// } - -// /// Draw from Chinese Restaurant Process -// pub fn crp_draw(n: usize, alpha: f64, rng: &mut R) -> CrpDraw { -// let mut n_cats = 0; -// let mut weights: Vec = vec![]; -// let mut asgn: Vec = Vec::with_capacity(n); - -// for _ in 0..n { -// weights.push(alpha); -// let k = pflip(&weights, 1, rng)[0]; -// asgn.push(k); - -// if k == n_cats { -// weights[n_cats] = 1.0; -// n_cats += 1; -// } else { -// weights.truncate(n_cats); -// weights[k] += 1.0; -// } -// } -// // convert weights to counts, correcting for possible floating point -// // errors -// let counts: Vec = -// weights.iter().map(|w| (w + 0.5) as usize).collect(); - -// CrpDraw { -// asgn, -// counts, -// n_cats, -// } -// } - -// #[cfg(test)] -// mod tests { -// use super::*; - -// const TOL: f64 = 1E-12; - -// mod sb_slice { -// use super::*; - -// #[test] -// fn should_return_input_weights_if_alpha_is_zero() { -// let mut rng = rand::thread_rng(); -// let weights_in: Vec = vec![0.8, 0.2, 0.0]; -// let weights_out = -// sb_slice_extend(weights_in.clone(), 1.0, 0.2, &mut rng) -// .unwrap(); -// let good = weights_in -// .iter() -// .zip(weights_out.iter()) -// .all(|(wi, wo)| (wi - wo).abs() < TOL); -// assert!(good); -// } - -// #[test] -// fn should_return_error_for_zero_u_star() { -// let mut rng = rand::thread_rng(); -// let weights_in: Vec = vec![0.8, 0.2]; -// let u_star = 0.0; -// let res = sb_slice_extend(weights_in, 1.0, u_star, &mut rng); -// assert!(res.is_err()); -// } - -// #[test] -// fn smoke() { -// let mut rng = rand::thread_rng(); -// let weights_in: Vec = vec![0.8, 0.2]; -// let u_star = 0.1; -// let res = sb_slice_extend(weights_in, 1.0, u_star, &mut rng); -// assert!(res.is_ok()); -// } -// } -// }