#include <ql/models/shortrate/onefactormodels/gaussian1dmodel.hpp>
Public Member Functions | |
const boost::shared_ptr< StochasticProcess1D > | stateProcess () const |
const Real | numeraire (const Time t, const Real y=0.0, const Handle< YieldTermStructure > &yts=Handle< YieldTermStructure >()) const |
const Real | zerobond (const Time T, const Time t=0.0, const Real y=0.0, const Handle< YieldTermStructure > &yts=Handle< YieldTermStructure >()) const |
const Real | numeraire (const Date &referenceDate, const Real y=0.0, const Handle< YieldTermStructure > &yts=Handle< YieldTermStructure >()) const |
const Real | zerobond (const Date &maturity, const Date &referenceDate=Null< Date >(), const Real y=0.0, const Handle< YieldTermStructure > &yts=Handle< YieldTermStructure >()) const |
const Real | zerobondOption (const Option::Type &type, const Date &expiry, const Date &valueDate, const Date &maturity, const Rate strike, const Date &referenceDate=Null< Date >(), const Real y=0.0, const Handle< YieldTermStructure > &yts=Handle< YieldTermStructure >(), const Real yStdDevs=7.0, const Size yGridPoints=64, const bool extrapolatePayoff=true, const bool flatPayoffExtrapolation=false) const |
const Real | forwardRate (const Date &fixing, const Date &referenceDate=Null< Date >(), const Real y=0.0, boost::shared_ptr< IborIndex > iborIdx=boost::shared_ptr< IborIndex >()) const |
const Real | swapRate (const Date &fixing, const Period &tenor, const Date &referenceDate=Null< Date >(), const Real y=0.0, boost::shared_ptr< SwapIndex > swapIdx=boost::shared_ptr< SwapIndex >()) const |
const Real | swapAnnuity (const Date &fixing, const Period &tenor, const Date &referenceDate=Null< Date >(), const Real y=0.0, boost::shared_ptr< SwapIndex > swapIdx=boost::shared_ptr< SwapIndex >()) const |
const Disposable< Array > | yGrid (const Real yStdDevs, const int gridPoints, const Real T=1.0, const Real t=0, const Real y=0) const |
![]() | |
TermStructureConsistentModel (const Handle< YieldTermStructure > &termStructure) | |
const Handle< YieldTermStructure > & | termStructure () const |
![]() | |
Observable (const Observable &) | |
Observable & | operator= (const Observable &) |
void | notifyObservers () |
![]() | |
void | update () |
void | recalculate () |
void | freeze () |
void | unfreeze () |
![]() | |
Observer (const Observer &) | |
Observer & | operator= (const Observer &) |
std::pair< std::set< boost::shared_ptr< Observable > >::iterator, bool > | registerWith (const boost::shared_ptr< Observable > &) |
void | registerWithObservables (const boost::shared_ptr< Observer > &) |
Size | unregisterWith (const boost::shared_ptr< Observable > &) |
void | unregisterWithAll () |
Static Public Member Functions | |
static const Real | gaussianPolynomialIntegral (const Real a, const Real b, const Real c, const Real d, const Real e, const Real x0, const Real x1) |
static const Real | gaussianShiftedPolynomialIntegral (const Real a, const Real b, const Real c, const Real d, const Real e, const Real h, const Real x0, const Real x1) |
Protected Member Functions | |
Gaussian1dModel (const Handle< YieldTermStructure > &yieldTermStructure) | |
virtual const Real | numeraireImpl (const Time t, const Real y, const Handle< YieldTermStructure > &yts) const =0 |
virtual const Real | zerobondImpl (const Time T, const Time t, const Real y, const Handle< YieldTermStructure > &yts) const =0 |
void | performCalculations () const |
void | generateArguments () |
boost::shared_ptr< VanillaSwap > | underlyingSwap (const boost::shared_ptr< SwapIndex > &index, const Date &expiry, const Period &tenor) const |
![]() | |
virtual void | calculate () const |
Protected Attributes | |
boost::shared_ptr< StochasticProcess1D > | stateProcess_ |
Date | evaluationDate_ |
bool | enforcesTodaysHistoricFixings_ |
![]() | |
bool | calculated_ |
bool | frozen_ |
One factor interest rate model interface class The only methods that must be implemented by subclasses are the numeraire and zerobond methods for an input array of state variable values. The variable $y$ is understood to be the standardized (zero mean, unit variance) version of the model's original state variable $x$.
NTL support may be enabled by defining GAUSS1D_ENABLE_NTL in this file. For details on NTL see http://www.shoup.net/ntl/
|
static |
Computes the integral
\[ {2\pi}^{-0.5} \int_{a}^{b} p(x) \exp{-0.5*x*x} \mathrm{d}x \]
with
\[ p(x) = ax^4+bx^3+cx^2+dx+e \]
.
|
static |
Computes the integral
\[ {2\pi}^{-0.5} \int_{a}^{b} p(x) \exp{-0.5*x*x} \mathrm{d}x \]
with
\[ p(x) = a(x-h)^4+b(x-h)^3+c(x-h)^2+d(x-h)+e \]
.
const Disposable<Array> yGrid | ( | const Real | yStdDevs, |
const int | gridPoints, | ||
const Real | T = 1.0 , |
||
const Real | t = 0 , |
||
const Real | y = 0 |
||
) | const |
Generates a grid of values for the standardized state variable $y$ at time $T$ conditional on $y(t)=y$, covering yStdDevs standard deviations consisting of 2*gridPoints+1 points
|
protectedvirtual |
This method must implement any calculations which must be (re)done in order to calculate the desired results.
Implements LazyObject.
Reimplemented in MarkovFunctional, and Gsr.