pub struct UnitBall;
Expand description
Samples uniformly from the volume of the unit ball in three dimensions.
Implemented via rejection sampling.
For a distribution that samples only from the surface of the unit ball,
see UnitSphere
.
For a similar distribution in two dimensions, see UnitDisc
.
§Plot
The following plot shows the unit ball in three dimensions. This distribution samples individual points from the entire volume of the ball.
§Example
use rand_distr::{UnitBall, Distribution};
let v: [f64; 3] = UnitBall.sample(&mut rand::rng());
println!("{:?} is from the unit ball.", v)
Trait Implementations§
source§impl<'de> Deserialize<'de> for UnitBall
impl<'de> Deserialize<'de> for UnitBall
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
source§impl<F: Float + SampleUniform> Distribution<[F; 3]> for UnitBall
impl<F: Float + SampleUniform> Distribution<[F; 3]> for UnitBall
impl Copy for UnitBall
Auto Trait Implementations§
impl Freeze for UnitBall
impl RefUnwindSafe for UnitBall
impl Send for UnitBall
impl Sync for UnitBall
impl Unpin for UnitBall
impl UnwindSafe for UnitBall
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
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)