20#include <ql/legacy/libormarketmodels/lmlinexpvolmodel.hpp>
25 const std::vector<Time>& fixingTimes,
28 fixingTimes_(fixingTimes) {
48 tmp[i] = (a*(T-t)+d)*std::exp(-b*(T-t)) + c;
64 return (T>t) ? (a*(T-t)+d)*std::exp(-b*(T-t)) + c :
Real(0.0);
77 const Real k1=std::exp(b*u);
78 const Real k2=std::exp(b*
S);
79 const Real k3=std::exp(b*T);
81 return (a*a*(-1 - 2*b*b*
S*T - b*(
S + T)
82 + k1*k1*(1 + b*(
S + T - 2*u) + 2*b*b*(
S - u)*(T - u)))
83 + 2*b*b*(2*c*d*(k2 + k3)*(k1 - 1)
84 +d*d*(k1*k1 - 1)+2*b*c*c*k2*k3*u)
85 + 2*a*b*(d*(-1 - b*(
S + T) + k1*k1*(1 + b*(
S + T - 2*u)))
86 -2*c*(k3*(1 + b*
S) + k2*(1 + b*T)
87 - k1*k3*(1 + b*(
S - u))
88 - k1*k2*(1 + b*(T - u)))
1-D array used in linear algebra.
Standard constant parameter .
Array volatility(Time t, const Array &x=Null< Array >()) const override
void generateArguments() override
LmLinearExponentialVolatilityModel(const std::vector< Time > &fixingTimes, Real a, Real b, Real c, Real d)
const std::vector< Time > fixingTimes_
Real integratedVariance(Size i, Size j, Time u, const Array &x=Null< Array >()) const override
std::vector< Parameter > arguments_
Constraint imposing positivity to all arguments
Real Time
continuous quantity with 1-year units
Real Volatility
volatility
std::size_t Size
size of a container