o1_utils/
lib.rs

1//! A collection of utility functions and constants that can be reused from
2//! multiple projects
3
4pub mod adjacent_pairs;
5pub mod array;
6pub mod biguint_helpers;
7pub mod bitwise_operations;
8pub mod chunked_evaluations;
9pub mod chunked_polynomial;
10pub mod dense_polynomial;
11pub mod evaluations;
12pub mod field_helpers;
13pub mod foreign_field;
14pub mod hasher;
15pub mod lazy_cache;
16pub mod math;
17pub mod serialization;
18
19pub use biguint_helpers::BigUintHelpers;
20pub use bitwise_operations::BitwiseOps;
21pub use chunked_evaluations::ChunkedEvaluations;
22pub use dense_polynomial::ExtendedDensePolynomial;
23pub use evaluations::ExtendedEvaluations;
24pub use field_helpers::{BigUintFieldHelpers, FieldHelpers, RandomField, Two};
25pub use foreign_field::ForeignElement;
26
27/// Utils only for testing
28pub mod tests {
29    use rand::{rngs::StdRng, thread_rng, Rng, SeedableRng};
30
31    /// Create a new test rng with a random seed
32    pub fn make_test_rng(seed: Option<[u8; 32]>) -> StdRng {
33        let seed = seed.unwrap_or(thread_rng().gen());
34        eprintln!("Seed: {:?}", seed);
35        StdRng::from_seed(seed)
36    }
37}