24#ifndef quantlib_square_root_clv_model_hpp
25#define quantlib_square_root_clv_model_hpp
27#include <ql/time/date.hpp>
28#include <ql/patterns/lazyobject.hpp>
29#include <ql/math/interpolations/lagrangeinterpolation.hpp>
30#include <ql/math/matrix.hpp>
31#include <ql/experimental/math/gaussiannoncentralchisquaredpolynomial.hpp>
32#include <ql/functional.hpp>
37 class GBSMRNDCalculator;
38 class SquareRootProcess;
39 class GeneralizedBlackScholesProcess;
44 ext::shared_ptr<SquareRootProcess> sqrtProcess,
45 std::vector<Date> maturityDates,
76 const ext::shared_ptr<Matrix>
s_,
x_;
77 typedef std::map<Time, ext::shared_ptr<LagrangeInterpolation> >
86 const ext::shared_ptr<GeneralizedBlackScholesProcess>
bsProcess_;
1-D array used in linear algebra.
Framework for calculation on demand and result caching.
template class providing a null value for a given type.
Real operator()(Time t, Real x) const
const ext::shared_ptr< Matrix > x_
std::map< Time, ext::shared_ptr< LagrangeInterpolation > > interpl_type
const ext::shared_ptr< Matrix > s_
const std::vector< Date > maturityDates_
const Size lagrangeOrder_
void performCalculations() const override
const ext::shared_ptr< GeneralizedBlackScholesProcess > bsProcess_
const ext::shared_ptr< SquareRootProcess > sqrtProcess_
Real invCDF(const Date &d, Real q) const
Real cdf(const Date &d, Real x) const
ext::function< Real(Time, Real)> g_
const ext::shared_ptr< GBSMRNDCalculator > rndCalculator_
std::pair< Real, Real > nonCentralChiSquaredParams(const Date &d) const
Array collocationPointsX(const Date &d) const
Array collocationPointsY(const Date &d) const
ext::function< Real(Time, Real)> g() const
Real Time
continuous quantity with 1-year units
std::size_t Size
size of a container