pub struct CoxIngersollRoss {
pub kappa: f64,
pub theta: f64,
pub sigma: f64,
/* private fields */
}Expand description
Cox-Ingersoll-Ross mean-reverting square-root process.
$$dv_t = kappa * (theta - v_t) * dt + sigma * sqrt(v_t) * dW_t$$
Fields§
§kappa: f64§theta: f64§sigma: f64Implementations§
Trait Implementations§
Source§impl Clone for CoxIngersollRoss
impl Clone for CoxIngersollRoss
Source§fn clone(&self) -> CoxIngersollRoss
fn clone(&self) -> CoxIngersollRoss
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Simulatable for CoxIngersollRoss
impl Simulatable for CoxIngersollRoss
Source§fn dim(&self) -> usize
fn dim(&self) -> usize
Dimensionality of the Brownian driver. Used by the runner to
pre-generate the correct number of random normals per step.
GBM is 1, Heston is 2, etc.
Source§impl StochasticProcess for CoxIngersollRoss
impl StochasticProcess for CoxIngersollRoss
type State = f64
type Diffusion = f64
type BrownianIncrement = f64
fn drift(&self, x: &f64, _t: f64) -> f64
fn diffusion(&self, x: &f64, _t: f64) -> f64
fn jump_size<R: Rng + ?Sized>(&self, _x: &f64, _t: f64, _rng: &mut R) -> f64
fn expected_value(&self, x0: &f64, t: f64) -> f64
fn variance(&self, x0: &f64, t: f64) -> f64
fn step<R: Rng + ?Sized>( &self, x: &f64, t: f64, dt: f64, dw: &f64, _rng: &mut R, ) -> f64
fn generate_increment<R: Rng + ?Sized>(&self, rng: &mut R, dt: f64) -> f64
fn simulate<R: Rng + ?Sized>( &self, x0: f64, t0: f64, t_end: f64, dt: f64, rng: &mut R, ) -> Vec<(f64, f64)>
fn jump_intensity(&self, _x: &Self::State, _t: f64) -> f64
fn simulate_paths( &self, x0: Self::State, t0: f64, t_end: f64, dt: f64, num_paths: usize, ) -> Vec<Vec<(f64, Self::State)>>
Auto Trait Implementations§
impl Freeze for CoxIngersollRoss
impl RefUnwindSafe for CoxIngersollRoss
impl Send for CoxIngersollRoss
impl Sync for CoxIngersollRoss
impl Unpin for CoxIngersollRoss
impl UnsafeUnpin for CoxIngersollRoss
impl UnwindSafe for CoxIngersollRoss
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
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