Gunbel

Struct Gunbel 

Source
pub struct Gunbel { /* private fields */ }
Expand description

Gunbel Distribution

§Examples

let mut gunbel = rand_simple::Gunbel::new(1192u32);
assert_eq!(format!("{gunbel}"), "Gu(Location parameter, Scale parameter) = Gu(0, 1)");
println!("Returns a random number -> {}", gunbel.sample());

// If you want to change the parameters of the random variable
let location: f64 = 3_f64;
let scale: f64 = 1.5_f64;
let result: Result<(f64, f64), &str> = gunbel.try_set_params(location, scale);
assert_eq!(format!("{gunbel}"), "Gu(Location parameter, Scale parameter) = Gu(3, 1.5)");
println!("Returns a random number -> {}", gunbel.sample());

Implementations§

Source§

impl Gunbel

Source

pub fn new(_seed: u32) -> Self

Constructor for the Gunbel distribution.

§Arguments
  • _seed - Seed for the random number generator.
§Examples
let gunbel = rand_simple::Gunbel::new(1192u32);
println!("Gunbel distribution initialized with seed 1192");
Source

pub fn sample(&mut self) -> f64

Calculate a random number from the distribution. The method used is Algorithm 3.53: Inverse Transform Sampling.

§Examples
let mut gunbel = rand_simple::Gunbel::new(1192u32);
let result = gunbel.sample();
println!("Random number from Gunbel distribution: {}", result);
Source

pub fn try_set_params( &mut self, location: f64, scale: f64, ) -> Result<(f64, f64), &str>

Try to set parameters of the probability variable.

  • location - Location parameter
  • scale - Scale parameter
§Errors

Returns an error if the scale parameter is less than or equal to zero. In such cases, the parameters of the probability variable are maintained from the previous setting.

§Examples
let mut gunbel = rand_simple::Gunbel::new(1192u32);
let location: f64 = 2_f64;
let scale: f64 = 1.5_f64;
let result: Result<(f64, f64), &str> = gunbel.try_set_params(location, scale);
assert_eq!(format!("{gunbel}"), "Gu(Location parameter, Scale parameter) = Gu(2, 1.5)");

Trait Implementations§

Source§

impl Display for Gunbel

Gunbel Distribution

§Display

Formats the struct for display using macros like println!

  • Struct type
  • Location parameter
  • Scale parameter
Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl Freeze for Gunbel

§

impl RefUnwindSafe for Gunbel

§

impl Send for Gunbel

§

impl Sync for Gunbel

§

impl Unpin for Gunbel

§

impl UnwindSafe for Gunbel

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.