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