miden-crypto/src/rand/mod.rs
src/rand/mod.rsRaw
1//! Pseudo-random element generation.
2
3pub use winter_crypto::{RandomCoin, RandomCoinError};
4
5use crate::{Felt, FieldElement, StarkField, Word, ZERO};
6
7mod rpo;
8pub use rpo::RpoRandomCoin;
9
10/// Pseudo-random element generator.
11///
12/// An instance can be used to draw, uniformly at random, base field elements as well as [Word]s.
13pub trait FeltRng {
14 /// Draw, uniformly at random, a base field element.
15 fn draw_element(&mut self) -> Felt;
16
17 /// Draw, uniformly at random, a [Word].
18 fn draw_word(&mut self) -> Word;
19}