pub struct BinomialSampler {
pub distr: Binomial,
pub rng: SamplerRng,
}Expand description
Enables sampling a Z according to the binomial distribution Bin(n, p).
Attributes:
distr: defines the binomial distribution with parametersnandpto sample fromrng: defines theThreadRngor seededStdRngthat’s used to sample fromdistr
§Examples
use qfall_math::utils::sample::binomial::BinomialSampler;
let n = 2;
let p = 0.5;
let mut bin_sampler = BinomialSampler::init(n, p, None).unwrap();
let sample = bin_sampler.sample();
assert!(0 <= sample);
assert!(sample <= n);Fields§
§distr: Binomial§rng: SamplerRngImplementations§
Source§impl BinomialSampler
impl BinomialSampler
Sourcepub fn init(
n: impl Into<Z>,
p: impl Into<Q>,
seed: Option<[u8; 32]>,
) -> Result<Self, MathError>
pub fn init( n: impl Into<Z>, p: impl Into<Q>, seed: Option<[u8; 32]>, ) -> Result<Self, MathError>
Initializes the BinomialSampler with
distras the binomial distribution withntries and success probabilitypfor each try, andrngas aStdRngseeded withseedifseedis provided, and as a freshThreadRngotherwise.
Parameters:
n: specifies the number of triesp: specifies the success probabilityseed: specifies an optional 256-bit seed for the internalStdRng. IfNoneis provided, a freshThreadRngis used instead.
Returns a BinomialSampler or a MathError if n < 0,
p ∉ (0,1), or n does not fit into an i64.
§Examples
use qfall_math::utils::sample::binomial::BinomialSampler;
let n = 2;
let p = 0.5;
let bin_sampler = BinomialSampler::init(n, p, None).unwrap();
let mut bin_sampler_seeded_0 = BinomialSampler::init(n, p, Some([42; 32])).unwrap();
let mut bin_sampler_seeded_1 = BinomialSampler::init(n, p, Some([42; 32])).unwrap();
assert_eq!(bin_sampler_seeded_0.sample(), bin_sampler_seeded_1.sample());§Errors and Failures
- Returns a
MathErrorof typeInvalidIntegerInputifn < 0. - Returns a
MathErrorof typeInvalidIntervalifp ∉ (0,1). - Returns a
MathErrorof typeConversionErrorifndoes not fit into ani64.
Auto Trait Implementations§
impl !RefUnwindSafe for BinomialSampler
impl !Send for BinomialSampler
impl !Sync for BinomialSampler
impl !UnwindSafe for BinomialSampler
impl Freeze for BinomialSampler
impl Unpin for BinomialSampler
impl UnsafeUnpin for BinomialSampler
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more