pub struct Open01;
Expand description
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 rand::Rng;
use rand::distr::Open01;
let val: f32 = rand::rng().sample(Open01);
println!("f32 from (0, 1): {}", val);
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Open01
impl<'de> Deserialize<'de> for Open01
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<Open01, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<Open01, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl Distribution<f32> for Open01
impl Distribution<f32> for Open01
Source§impl Distribution<f64> for Open01
impl Distribution<f64> for Open01
Source§impl Serialize for Open01
impl Serialize for Open01
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Serialize this value into the given Serde serializer. Read more
impl Copy for Open01
Auto Trait Implementations§
impl Freeze for Open01
impl RefUnwindSafe for Open01
impl Send for Open01
impl Sync for Open01
impl Unpin for Open01
impl UnwindSafe for Open01
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