# template class xf::fintech::OrnsteinUhlenbeckProcess¶

#include "ornstein_uhlenbeck_process.hpp"


## Overview¶

Ornstein-Uhlenbeck Process is one of the basic stochastic processes. This class describes the Ornstein-Uhlenbeck process.

Parameters:

 DT The data type, which decides the precision of the result, and the default data type is double. _x0 The initial value of the state variable.
template <typename DT = double>
class OrnsteinUhlenbeckProcess

// fields

DT _x0


## Methods¶

### OrnsteinUhlenbeckProcess¶

OrnsteinUhlenbeckProcess ()


constructor

### init¶

void init (
DT speed,
DT vola,
DT x0,
DT level = 0.0
)


Initialize parameters.

Parameters:

 speed Spreads on interest rates. vola The overall level of volatility. x0 The initial value of the state variable. level The initial value of level.

### expectation¶

DT expectation (
DT t0,
DT x0,
DT dt
) const


The expertation E of the process.

Parameters:

 t0 the time at the beginning of processing x0 the state of current value dt the step of processing

Returns:

the result of expectation

### stdDeviation¶

DT stdDeviation (
DT t0,
DT x0,
DT dt
) const


The standard deviation S of the process.

Parameters:

 t0 the time at the beginning of processing x0 the state of current value dt the step of processing

Returns:

the result of standard deviation

### variance¶

DT variance (
DT t0,
DT x0,
DT dt
) const


The variance of the process.

Parameters:

 t0 the time at the beginning of processing x0 the state of current value dt the step of processing

Returns:

the result of variance

### evolve¶

DT evolve (
DT dt,
DT dw
) const


As this process will only be executed for once in the prcing engine and it is not the critical time consumer,then it is optimized for minimum resource utilization while having a reasonable latency.

Parameters:

 dt the step of processing dw the step of evoleing

Returns:

Returns the asset value after a time interval Δt according to the given discretization.