Struct nyx_space::mc::Generator

source ·
pub struct Generator<S: State, Distr: Distribution<f64> + Copy>where
    DefaultAllocator: Allocator<f64, S::Size> + Allocator<f64, S::Size, S::Size> + Allocator<usize, S::Size, S::Size> + Allocator<f64, S::VecLength>,{
    pub template: S,
    pub dispersions: Vec<Dispersion<Distr>>,
}
Expand description

A state generator for Monte Carlo analyses.

Fields§

§template: S

The template state

§dispersions: Vec<Dispersion<Distr>>

The list of dispersions to be added to the template state Note that we can’t use a HashMap here because StateParameter has a SlantAngle option comprised of f64s, and those neither have Hash nor Eq

Implementations§

source§

impl<S: State, D: Distribution<f64> + Copy> Generator<S, D>where DefaultAllocator: Allocator<f64, S::Size> + Allocator<f64, S::Size, S::Size> + Allocator<usize, S::Size, S::Size> + Allocator<f64, S::VecLength>,

source

pub fn add_dispersion( &mut self, dispersion: Dispersion<D> ) -> Result<(), NyxError>

Add a parameter dispersion to this Monte Carlo state generator.

source

pub fn from_dispersions( template: S, dispersions: &[Dispersion<D>] ) -> Result<Self, NyxError>

Create a new Monte Carlo state generator given a template state, the parameters to disperse, and their respective dispersion probability density functions.

source

pub fn from_dispersion( template: S, dispersion: Dispersion<D> ) -> Result<Self, NyxError>

Create a new Monte Carlo state generator given a template state, the parameters to disperse, and their respective dispersion probability density functions.

source§

impl<S: State> Generator<S, Normal<f64>>where DefaultAllocator: Allocator<f64, S::Size> + Allocator<f64, S::Size, S::Size> + Allocator<usize, S::Size, S::Size> + Allocator<f64, S::VecLength>,

source

pub fn add_3std_dev( &mut self, param: StateParameter, three_sigma: f64 ) -> Result<(), NyxError>

Add a state dispersion from the provided 3-sigma value, zero mean

source

pub fn add_std_dev( &mut self, param: StateParameter, std_dev: f64 ) -> Result<(), NyxError>

Add a state dispersion from the provided 1-sigma value, zero mean

source

pub fn from_3std_devs( template: S, three_sigmas: &[(StateParameter, f64)] ) -> Result<Self, NyxError>

Create a new Monte Carlo state generator given a template state, the parameters to disperse, and their respective 3-σ standard deviations, zero mean.

source

pub fn from_3std_dev( template: S, param: StateParameter, three_sigma: f64 ) -> Result<Self, NyxError>

Create a new Monte Carlo state generator given a template state, the parameter to disperse, and its 3-σ standard deviation, zero mean.

source

pub fn from_3std_dev_prct( template: S, param: StateParameter, prct: f64 ) -> Result<Self, NyxError>

Create a new Monte Carlo state generator given a template state, the parameter to disperse, and its 3-σ standard deviation in percentage of the template’s value, zero mean.

source

pub fn from_3std_dev_prcts( template: S, prcts: &[(StateParameter, f64)] ) -> Result<Self, NyxError>

Create a new Monte Carlo state generator given a template state, the parameter to disperse, and its 3-σ standard deviation in percentage of the template’s value, zero mean.

source

pub fn from_std_devs( template: S, std_devs: &[(StateParameter, f64)] ) -> Result<Self, NyxError>

Create a new Monte Carlo state generator given a template state, the parameters to disperse, and their respective 1-σ standard deviations, zero mean.

source

pub fn from_std_dev_prcts( template: S, prcts: &[(StateParameter, f64)] ) -> Result<Self, NyxError>

Create a new Monte Carlo state generator given a template state, the parameter to disperse, and its 1-σ standard deviation in percentage of the template’s value, zero mean.

source

pub fn from_std_dev( template: S, param: StateParameter, std_dev: f64 ) -> Result<Self, NyxError>

Create a new Monte Carlo state generator given a template state, the parameter to disperse, and its 1-σ standard deviation, zero mean.

source

pub fn from_std_dev_prct( template: S, param: StateParameter, prct: f64 ) -> Result<Self, NyxError>

Create a new Monte Carlo state generator given a template state, the parameter to disperse, and its 1-σ standard deviation in percentage of the template’s value, zero mean.

Trait Implementations§

source§

impl<S: State, D: Distribution<f64> + Copy> Distribution<DispersedState<S>> for Generator<S, D>where DefaultAllocator: Allocator<f64, S::Size> + Allocator<f64, S::Size, S::Size> + Allocator<usize, S::Size, S::Size> + Allocator<f64, S::VecLength>,

source§

fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> DispersedState<S>

Generate a random value of T, using rng as the source of randomness.
source§

fn sample_iter<R>(self, rng: R) -> DistIter<Self, R, T>where R: Rng, Self: Sized,

Create an iterator that generates random values of T, using rng as the source of randomness. Read more
source§

fn map<F, S>(self, func: F) -> DistMap<Self, F, T, S>where F: Fn(T) -> S, Self: Sized,

Create a distribution of values of ‘S’ by mapping the output of Self through the closure F Read more
source§

impl<S: State, D: Distribution<f64> + Copy> From<S> for Generator<S, D>where DefaultAllocator: Allocator<f64, S::Size> + Allocator<f64, S::Size, S::Size> + Allocator<usize, S::Size, S::Size> + Allocator<f64, S::VecLength>,

source§

fn from(template: S) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

§

impl<S, Distr> RefUnwindSafe for Generator<S, Distr>where Distr: RefUnwindSafe, S: RefUnwindSafe,

§

impl<S, Distr> Send for Generator<S, Distr>where Distr: Send,

§

impl<S, Distr> Sync for Generator<S, Distr>where Distr: Sync,

§

impl<S, Distr> Unpin for Generator<S, Distr>where Distr: Unpin, S: Unpin,

§

impl<S, Distr> UnwindSafe for Generator<S, Distr>where Distr: UnwindSafe, S: UnwindSafe,

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

const: unstable · source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> From<!> for T

const: unstable · source§

fn from(t: !) -> T

Converts to this type from the input type.
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

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

const: unstable · 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.

§

impl<T> Pointable for T

§

const ALIGN: usize = mem::align_of::<T>()

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same<T> for T

§

type Output = T

Should always be Self
§

impl<SS, SP> SupersetOf<SS> for SPwhere SS: SubsetOf<SP>,

§

fn to_subset(&self) -> Option<SS>

The inverse inclusion map: attempts to construct self from the equivalent element of its superset. Read more
§

fn is_in_subset(&self) -> bool

Checks if self is actually part of its subset T (and can be converted to it).
§

fn to_subset_unchecked(&self) -> SS

Use with care! Same as self.to_subset but without any property checks. Always succeeds.
§

fn from_subset(element: &SS) -> SP

The inclusion map: converts self to the equivalent element of its superset.
source§

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

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

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

Performs the conversion.
source§

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

§

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

The type returned in the event of a conversion error.
const: unstable · source§

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

Performs the conversion.
§

impl<V, T> VZip<V> for Twhere V: MultiLane<T>,

§

fn vzip(self) -> V