Struct OpenClosed01
pub struct OpenClosed01;
A distribution to sample floating point numbers uniformly in the half-open
interval (0, 1], i.e. including 1 but not 0.
All values that can be generated are of the form n * ε/2. For f32
the 24 most significant random bits of a u32 are used and for f64 the
53 most significant bits of a u64 are used. The conversion uses the
multiplicative method.
See also: StandardUniform which samples from [0, 1), Open01
which samples from (0, 1) and Uniform which samples from arbitrary
ranges.
Example
use RngExt;
use OpenClosed01;
let val: f32 = rng.sample;
println!;
Trait Implementations
impl Clone for OpenClosed01
fn clone(&self) -> OpenClosed01
impl Copy for OpenClosed01
impl Debug for OpenClosed01
fn fmt(&self, f: &mut Formatter<'_>) -> Result
impl Default for OpenClosed01
fn default() -> OpenClosed01
impl Distribution<f32> for OpenClosed01
fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> f32
impl Distribution<f64> for OpenClosed01
fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> f64
impl Serialize for OpenClosed01
fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error> where __S: Serializer,
impl<'de> Deserialize<'de> for OpenClosed01
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where __D: Deserializer<'de>,
Auto Trait Implementations
impl Freeze for OpenClosed01
impl RefUnwindSafe for OpenClosed01
impl Send for OpenClosed01
impl Sync for OpenClosed01
impl Unpin for OpenClosed01
impl UnsafeUnpin for OpenClosed01
impl UnwindSafe for OpenClosed01
Blanket Implementations
impl<T> Any for OpenClosed01
where
T: 'static + ?Sized,
fn type_id(&self) -> TypeId
impl<T> Borrow<T> for OpenClosed01
where
T: ?Sized,
fn borrow(&self) -> &T
impl<T> BorrowMut<T> for OpenClosed01
where
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
impl<T> CloneToUninit for OpenClosed01
where
T: Clone,
unsafe fn clone_to_uninit(&self, dest: *mut u8)
impl<T> DeserializeOwned for OpenClosed01
where
T: for<'de> Deserialize<'de>,
impl<T> From<T> for OpenClosed01
fn from(t: T) -> TReturns the argument unchanged.
impl<T> ToOwned for OpenClosed01
where
T: Clone,
type Owned = T;fn to_owned(&self) -> Tfn clone_into(&self, target: &mut T)
impl<T, U> Into<U> for OpenClosed01
where
U: From<T>,
fn into(self) -> UCalls
U::from(self).That is, this conversion is whatever the implementation of
[From]<T> for Uchooses to do.
impl<T, U> TryFrom<U> for OpenClosed01
where
U: Into<T>,
type Error = Infallible;fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
impl<T, U> TryInto<U> for OpenClosed01
where
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error;fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>