Skip to main content

MonteCarlo

Struct MonteCarlo 

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

A rocket’s nominal flight and the dispersion of its inputs, ready to fly samples.

Implementations§

Source§

impl MonteCarlo

Source

pub fn new( nominal: FlightInputs, dispersion: Dispersion, ) -> Result<Self, AnalysisError>

A run of nominal dispersed by dispersion.

§Errors
Source

pub fn nominal(&self) -> &FlightInputs

The nominal flight.

Source

pub fn dispersion(&self) -> &Dispersion

The dispersion.

Source

pub fn draw(&self, seed: u64, index: u64) -> Draw

What sample index of a run seeded with seed draws.

Source

pub fn inputs(&self, draw: &Draw) -> Result<FlightInputs, AnalysisError>

The flight inputs draw gives: the nominal ones, with each input whose entry isn’t its nominal value (a factor of 1, an offset of 0) changed as the module’s docs say. An entry at its nominal value leaves its input as it is, so a draw with no dispersion flies the nominal flight bit for bit; any other entry is applied, whatever the dispersion, so a draw read back or written by hand flies as it says.

§Errors
Source

pub fn fly(&self, draw: &Draw) -> Result<FlightSummary, AnalysisError>

Flies draw (MonteCarlo::inputs) to the ground and gives its metrics, on what the run’s flights share (the module’s Speed): as FlightInputs::fly on the same inputs, bit for bit, but without laying out the parts or building a supersonic table again. For flights drawn by hand, as a sensitivity analysis’s (crate::sensitivity).

§Errors

As MonteCarlo::inputs, and AnalysisError::Sim around the errors of FlightInputs::fly.

Source

pub fn sample(&self, seed: u64, index: u64) -> Sample

Draws and flies sample index of a run seeded with seed. A draw that makes an input impossible, or a flight that stops with an error, is a failed sample, not an error.

Source

pub fn run(&self, seed: u64, count: u64) -> Run

Flies samples 0..count of a run seeded with seed, one after another.

Source

pub fn run_parallel(&self, seed: u64, count: u64) -> Run

As MonteCarlo::run, with the samples spread over the threads of the current rayon pool: the global one, or one a caller’s rayon::ThreadPool::install sets up to choose how many. The run is the same, bit for bit, whatever the number of threads.

Trait Implementations§

Source§

impl Clone for MonteCarlo

Source§

fn clone(&self) -> MonteCarlo

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for MonteCarlo

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize

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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. 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.