25#ifndef quantext_crossasset_stateprocess_hpp
26#define quantext_crossasset_stateprocess_hpp
28#include <ql/math/matrixutilities/pseudosqrt.hpp>
29#include <ql/stochasticprocess.hpp>
31#include <boost/unordered_map.hpp>
47 Size
size()
const override;
50 Array
drift(Time t,
const Array& x)
const override;
51 Matrix
diffusion(Time t,
const Array& x)
const override;
52 Array
evolve(Time t0,
const Array& x0, Time dt,
const Array& dw)
const override;
62 QuantLib::ext::shared_ptr<const CrossAssetModel>
model_;
64 std::vector<QuantLib::ext::shared_ptr<StochasticProcess>>
crCirpp_;
72 SalvagingAlgorithm::Type salvaging = SalvagingAlgorithm::Spectral);
83 QuantLib::ext::shared_ptr<const CrossAssetModel>
model_;
std::vector< Array > cache_m_
virtual Matrix diffusion(const StochasticProcess &, Time t0, const Array &x0, Time dt) const override
std::vector< Matrix > cache_v_
virtual Matrix covariance(const StochasticProcess &, Time t0, const Array &x0, Time dt) const override
virtual Array driftImpl2(const StochasticProcess &, Time t0, const Array &x0, Time dt) const
std::vector< Matrix > cache_d_
SalvagingAlgorithm::Type salvaging_
virtual Matrix covarianceImpl(const StochasticProcess &, Time t0, const Array &x0, Time dt) const
virtual Array drift(const StochasticProcess &, Time t0, const Array &x0, Time dt) const override
QuantLib::ext::shared_ptr< const CrossAssetModel > model_
void resetCache(const Size timeSteps) const
virtual Array driftImpl1(const StochasticProcess &, Time t0, const Array &x0, Time dt) const
Cross Asset Model State Process.
std::vector< QuantLib::ext::shared_ptr< StochasticProcess > > crCirpp_
Array drift(Time t, const Array &x) const override
Size size() const override
std::vector< Array > cache_m_
Array evolve(Time t0, const Array &x0, Time dt, const Array &dw) const override
virtual Matrix diffusionOnCorrelatedBrowniansImpl(Time t, const Array &x) const
Matrix diffusion(Time t, const Array &x) const override
std::vector< Matrix > cache_d_
Size factors() const override
virtual Matrix diffusionOnCorrelatedBrownians(Time t, const Array &x) const
void updateSqrtCorrelation() const
Array initialValues() const override
QuantLib::ext::shared_ptr< const CrossAssetModel > model_
void resetCache(const Size timeSteps) const