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>
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
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>
[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>
[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>
[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>
[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>
[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>
[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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Layout§
Note: Unable to compute type layout, possibly due to this type having generic parameters. Layout can only be computed for concrete, fully-instantiated types.