35 ext::shared_ptr<YieldTermStructure> rTS,
43 Pow(mesher->locations(0), 2.0 *
beta))),
48 .mult(
rho *
nu *
Exp(mesher->locations(1)) *
Pow(mesher->locations(0),
beta))),
49 mapF_(0, mesher), mapA_(1, mesher) {}
74 else if (direction == 1)
86 else if (direction == 1) {
1-D array used in linear algebra.
Size size() const override
FdmSabrOp(const ext::shared_ptr< FdmMesher > &mesher, ext::shared_ptr< YieldTermStructure > rTS, Real f0, Real alpha, Real beta, Real nu, Real rho)
const TripleBandLinearOp dxMap_
Array apply_direction(Size direction, const Array &r) const override
Array preconditioner(const Array &r, Real s) const override
std::vector< SparseMatrix > toMatrixDecomp() const override
const TripleBandLinearOp dxxMap_
void setTime(Time t1, Time t2) override
Time is required.
Array apply_mixed(const Array &r) const override
const TripleBandLinearOp dffMap_
Array solve_splitting(Size direction, const Array &r, Real s) const override
const ext::shared_ptr< YieldTermStructure > rTS_
Array apply(const Array &r) const override
const NinePointLinearOp correlationMap_
SparseMatrix toMatrix() const override
Array apply(const Array &r) const override
SparseMatrix toMatrix() const override
Array solve_splitting(const Array &r, Real a, Real b=1.0) const
void axpyb(const Array &a, const TripleBandLinearOp &x, const TripleBandLinearOp &y, const Array &b)
Array apply(const Array &r) const override
#define QL_FAIL(message)
throw an error (possibly with file and line information)
const ext::shared_ptr< YieldTermStructure > rTS_
memory layout of a fdm linear operator
FDM operator for the SABR model.
first derivative linear operator
Real Time
continuous quantity with 1-year units
std::size_t Size
size of a container
Array Pow(const Array &v, Real alpha)
Array Exp(const Array &v)
ext::shared_ptr< YieldTermStructure > r
second derivative operator
second order mixed derivative linear operator
Interest-rate term structure.