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 math;
16pub mod serialization;
17
18pub use biguint_helpers::BigUintHelpers;
19pub use bitwise_operations::BitwiseOps;
20pub use chunked_evaluations::ChunkedEvaluations;
21pub use dense_polynomial::ExtendedDensePolynomial;
22pub use evaluations::ExtendedEvaluations;
23pub use field_helpers::{BigUintFieldHelpers, FieldHelpers, RandomField, Two};
24pub use foreign_field::ForeignElement;
25
26/// Utils only for testing
27pub mod tests {
28    use rand::{rngs::StdRng, thread_rng, Rng, SeedableRng};
29
30    /// Create a new test rng with a random seed
31    pub fn make_test_rng(seed: Option<[u8; 32]>) -> StdRng {
32        let seed = seed.unwrap_or(thread_rng().gen());
33        eprintln!("Seed: {:?}", seed);
34        StdRng::from_seed(seed)
35    }
36}