QuantLib: a free/open-source library for quantitative finance
fully annotated source code - version 1.34
|
#include <jointstochasticprocess.hpp>
Classes | |
struct | CachingKey |
Public Member Functions | |
JointStochasticProcess (std::vector< ext::shared_ptr< StochasticProcess > > l, Size factors=Null< Size >()) | |
Size | size () const override |
returns the number of dimensions of the stochastic process More... | |
Size | factors () const override |
returns the number of independent factors of the process More... | |
Array | initialValues () const override |
returns the initial values of the state variables More... | |
Array | drift (Time t, const Array &x) const override |
returns the drift part of the equation, i.e., \( \mu(t, \mathrm{x}_t) \) More... | |
Array | expectation (Time t0, const Array &x0, Time dt) const override |
Matrix | diffusion (Time t, const Array &x) const override |
returns the diffusion part of the equation, i.e. \( \sigma(t, \mathrm{x}_t) \) More... | |
Matrix | covariance (Time t0, const Array &x0, Time dt) const override |
Matrix | stdDeviation (Time t0, const Array &x0, Time dt) const override |
Array | apply (const Array &x0, const Array &dx) const override |
Array | evolve (Time t0, const Array &x0, Time dt, const Array &dw) const override |
virtual void | preEvolve (Time t0, const Array &x0, Time dt, const Array &dw) const =0 |
virtual Array | postEvolve (Time t0, const Array &x0, Time dt, const Array &dw, const Array &y0) const =0 |
virtual DiscountFactor | numeraire (Time t, const Array &x) const =0 |
virtual bool | correlationIsStateDependent () const =0 |
virtual Matrix | crossModelCorrelation (Time t0, const Array &x0) const =0 |
const std::vector< ext::shared_ptr< StochasticProcess > > & | constituents () const |
void | update () override |
Time | time (const Date &date) const override |
Public Member Functions inherited from StochasticProcess | |
~StochasticProcess () override=default | |
void | update () override |
Public Member Functions inherited from Observer | |
Observer ()=default | |
Observer (const Observer &) | |
Observer & | operator= (const Observer &) |
virtual | ~Observer () |
std::pair< iterator, bool > | registerWith (const ext::shared_ptr< Observable > &) |
void | registerWithObservables (const ext::shared_ptr< Observer > &) |
Size | unregisterWith (const ext::shared_ptr< Observable > &) |
void | unregisterWithAll () |
virtual void | update ()=0 |
virtual void | deepUpdate () |
Public Member Functions inherited from Observable | |
Observable () | |
Observable (const Observable &) | |
Observable & | operator= (const Observable &) |
Observable (Observable &&)=delete | |
Observable & | operator= (Observable &&)=delete |
virtual | ~Observable ()=default |
void | notifyObservers () |
Protected Member Functions | |
Array | slice (const Array &x, Size i) const |
Protected Member Functions inherited from StochasticProcess | |
StochasticProcess ()=default | |
StochasticProcess (ext::shared_ptr< discretization >) | |
Protected Attributes | |
std::vector< ext::shared_ptr< StochasticProcess > > | l_ |
Protected Attributes inherited from StochasticProcess | |
ext::shared_ptr< discretization > | discretization_ |
Private Types | |
typedef std::vector< ext::shared_ptr< StochasticProcess > >::const_iterator | const_iterator |
typedef std::vector< ext::shared_ptr< StochasticProcess > >::iterator | iterator |
Private Attributes | |
Size | size_ = 0 |
Size | factors_ |
Size | modelFactors_ = 0 |
std::vector< Size > | vsize_ |
std::vector< Size > | vfactors_ |
std::map< CachingKey, Matrix > | correlationCache_ |
Additional Inherited Members | |
Public Types inherited from Observer | |
typedef set_type::iterator | iterator |
Definition at line 34 of file jointstochasticprocess.hpp.
|
private |
Definition at line 76 of file jointstochasticprocess.hpp.
|
private |
Definition at line 79 of file jointstochasticprocess.hpp.
JointStochasticProcess | ( | std::vector< ext::shared_ptr< StochasticProcess > > | l, |
Size | factors = Null<Size>() |
||
) |
|
overridevirtual |
returns the number of dimensions of the stochastic process
Implements StochasticProcess.
Definition at line 60 of file jointstochasticprocess.cpp.
|
overridevirtual |
returns the number of independent factors of the process
Reimplemented from StochasticProcess.
Definition at line 64 of file jointstochasticprocess.cpp.
|
overridevirtual |
returns the initial values of the state variables
Implements StochasticProcess.
Definition at line 77 of file jointstochasticprocess.cpp.
returns the drift part of the equation, i.e., \( \mu(t, \mathrm{x}_t) \)
Implements StochasticProcess.
Definition at line 91 of file jointstochasticprocess.cpp.
returns the expectation \( E(\mathrm{x}_{t_0 + \Delta t} | \mathrm{x}_{t_0} = \mathrm{x}_0) \) of the process after a time interval \( \Delta t \) according to the given discretization. This method can be overridden in derived classes which want to hard-code a particular discretization.
Reimplemented from StochasticProcess.
Definition at line 106 of file jointstochasticprocess.cpp.
returns the diffusion part of the equation, i.e. \( \sigma(t, \mathrm{x}_t) \)
Implements StochasticProcess.
Definition at line 123 of file jointstochasticprocess.cpp.
returns the covariance \( V(\mathrm{x}_{t_0 + \Delta t} | \mathrm{x}_{t_0} = \mathrm{x}_0) \) of the process after a time interval \( \Delta t \) according to the given discretization. This method can be overridden in derived classes which want to hard-code a particular discretization.
Reimplemented from StochasticProcess.
Definition at line 130 of file jointstochasticprocess.cpp.
returns the standard deviation \( S(\mathrm{x}_{t_0 + \Delta t} | \mathrm{x}_{t_0} = \mathrm{x}_0) \) of the process after a time interval \( \Delta t \) according to the given discretization. This method can be overridden in derived classes which want to hard-code a particular discretization.
Reimplemented from StochasticProcess.
Definition at line 164 of file jointstochasticprocess.cpp.
applies a change to the asset value. By default, it returns \( \mathrm{x} + \Delta \mathrm{x} \).
Reimplemented from StochasticProcess.
Definition at line 171 of file jointstochasticprocess.cpp.
returns the asset value after a time interval \( \Delta t \) according to the given discretization. By default, it returns
\[ E(\mathrm{x}_0,t_0,\Delta t) + S(\mathrm{x}_0,t_0,\Delta t) \cdot \Delta \mathrm{w} \]
where \( E \) is the expectation and \( S \) the standard deviation.
Reimplemented from StochasticProcess.
Definition at line 185 of file jointstochasticprocess.cpp.
|
pure virtual |
|
pure virtual |
|
pure virtual |
const std::vector< ext::shared_ptr< StochasticProcess > > & constituents | ( | ) | const |
Definition at line 294 of file jointstochasticprocess.cpp.
|
overridevirtual |
This method must be implemented in derived classes. An instance of Observer does not call this method directly: instead, it will be called by the observables the instance registered with when they need to notify any changes.
Implements Observer.
Definition at line 304 of file jointstochasticprocess.cpp.
returns the time value corresponding to the given date in the reference system of the stochastic process.
Reimplemented from StochasticProcess.
Definition at line 298 of file jointstochasticprocess.cpp.
Definition at line 68 of file jointstochasticprocess.cpp.
|
protected |
Definition at line 70 of file jointstochasticprocess.hpp.
|
private |
Definition at line 81 of file jointstochasticprocess.hpp.
|
private |
Definition at line 81 of file jointstochasticprocess.hpp.
|
private |
Definition at line 81 of file jointstochasticprocess.hpp.
|
private |
Definition at line 82 of file jointstochasticprocess.hpp.
|
private |
Definition at line 82 of file jointstochasticprocess.hpp.
|
mutableprivate |
Definition at line 96 of file jointstochasticprocess.hpp.