pub struct UniformFloat<X> { /* private fields */ }Expand description
The back-end implementing UniformSampler for floating-point types.
Unless you are implementing UniformSampler for your own type, this type
should not be used directly, use Uniform instead.
§Implementation notes
UniformFloat implementations convert RNG output to a float in the range
[1, 2) via transmutation, map this to [0, 1), then scale and translate
to the desired range. Values produced this way have what equals 23 bits of
random digits for an f32 and 52 for an f64.
§Bias and range errors
Bias may be expected within the least-significant bit of the significand.
It is not guaranteed that exclusive limits of a range are respected; i.e.
when sampling the range [a, b) it is not guaranteed that b is never
sampled.
Trait Implementations§
Source§impl<X: Clone> Clone for UniformFloat<X>
impl<X: Clone> Clone for UniformFloat<X>
Source§fn clone(&self) -> UniformFloat<X>
fn clone(&self) -> UniformFloat<X>
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl<X: Debug> Debug for UniformFloat<X>
impl<X: Debug> Debug for UniformFloat<X>
Source§impl<X: PartialEq> PartialEq for UniformFloat<X>
impl<X: PartialEq> PartialEq for UniformFloat<X>
Source§impl UniformSampler for UniformFloat<f32>
impl UniformSampler for UniformFloat<f32>
Source§fn new<B1, B2>(low_b: B1, high_b: B2) -> Result<Self, Error>
fn new<B1, B2>(low_b: B1, high_b: B2) -> Result<Self, Error>
Construct self, with inclusive lower bound and exclusive upper bound
[low, high). Read moreSource§fn new_inclusive<B1, B2>(low_b: B1, high_b: B2) -> Result<Self, Error>
fn new_inclusive<B1, B2>(low_b: B1, high_b: B2) -> Result<Self, Error>
Construct self, with inclusive bounds
[low, high]. Read moreSource§fn sample_single<R: Rng + ?Sized, B1, B2>(
low_b: B1,
high_b: B2,
rng: &mut R,
) -> Result<Self::X, Error>
fn sample_single<R: Rng + ?Sized, B1, B2>( low_b: B1, high_b: B2, rng: &mut R, ) -> Result<Self::X, Error>
Sample a single value uniformly from a range with inclusive lower bound
and exclusive upper bound
[low, high). Read moreSource§impl UniformSampler for UniformFloat<f64>
impl UniformSampler for UniformFloat<f64>
Source§fn new<B1, B2>(low_b: B1, high_b: B2) -> Result<Self, Error>
fn new<B1, B2>(low_b: B1, high_b: B2) -> Result<Self, Error>
Construct self, with inclusive lower bound and exclusive upper bound
[low, high). Read moreSource§fn new_inclusive<B1, B2>(low_b: B1, high_b: B2) -> Result<Self, Error>
fn new_inclusive<B1, B2>(low_b: B1, high_b: B2) -> Result<Self, Error>
Construct self, with inclusive bounds
[low, high]. Read moreSource§fn sample_single<R: Rng + ?Sized, B1, B2>(
low_b: B1,
high_b: B2,
rng: &mut R,
) -> Result<Self::X, Error>
fn sample_single<R: Rng + ?Sized, B1, B2>( low_b: B1, high_b: B2, rng: &mut R, ) -> Result<Self::X, Error>
Sample a single value uniformly from a range with inclusive lower bound
and exclusive upper bound
[low, high). Read moreimpl<X: Copy> Copy for UniformFloat<X>
impl<X> StructuralPartialEq for UniformFloat<X>
Auto Trait Implementations§
impl<X> Freeze for UniformFloat<X>where
X: Freeze,
impl<X> RefUnwindSafe for UniformFloat<X>where
X: RefUnwindSafe,
impl<X> Send for UniformFloat<X>where
X: Send,
impl<X> Sync for UniformFloat<X>where
X: Sync,
impl<X> Unpin for UniformFloat<X>where
X: Unpin,
impl<X> UnwindSafe for UniformFloat<X>where
X: UnwindSafe,
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