QuantLib
A free/open-source library for quantitative finance
Reference manual - version 1.20
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
Gaussian1dModel Class Referenceabstract

#include <ql/models/shortrate/onefactormodels/gaussian1dmodel.hpp>

+ Inheritance diagram for Gaussian1dModel:

Public Member Functions

ext::shared_ptr< StochasticProcess1DstateProcess () const
 
Real numeraire (Time t, Real y=0.0, const Handle< YieldTermStructure > &yts=Handle< YieldTermStructure >()) const
 
Real zerobond (Time T, Time t=0.0, Real y=0.0, const Handle< YieldTermStructure > &yts=Handle< YieldTermStructure >()) const
 
Real numeraire (const Date &referenceDate, Real y=0.0, const Handle< YieldTermStructure > &yts=Handle< YieldTermStructure >()) const
 
Real zerobond (const Date &maturity, const Date &referenceDate=Null< Date >(), Real y=0.0, const Handle< YieldTermStructure > &yts=Handle< YieldTermStructure >()) const
 
Real zerobondOption (const Option::Type &type, const Date &expiry, const Date &valueDate, const Date &maturity, Rate strike, const Date &referenceDate=Null< Date >(), Real y=0.0, const Handle< YieldTermStructure > &yts=Handle< YieldTermStructure >(), Real yStdDevs=7.0, Size yGridPoints=64, bool extrapolatePayoff=true, bool flatPayoffExtrapolation=false) const
 
Real forwardRate (const Date &fixing, const Date &referenceDate=Null< Date >(), Real y=0.0, const ext::shared_ptr< IborIndex > &iborIdx=ext::shared_ptr< IborIndex >()) const
 
Real swapRate (const Date &fixing, const Period &tenor, const Date &referenceDate=Null< Date >(), Real y=0.0, const ext::shared_ptr< SwapIndex > &swapIdx=ext::shared_ptr< SwapIndex >()) const
 
Real swapAnnuity (const Date &fixing, const Period &tenor, const Date &referenceDate=Null< Date >(), Real y=0.0, const ext::shared_ptr< SwapIndex > &swapIdx=ext::shared_ptr< SwapIndex >()) const
 
Disposable< ArrayyGrid (Real yStdDevs, int gridPoints, Real T=1.0, Real t=0, Real y=0) const
 
- Public Member Functions inherited from TermStructureConsistentModel
 TermStructureConsistentModel (const Handle< YieldTermStructure > &termStructure)
 
const Handle< YieldTermStructure > & termStructure () const
 
- Public Member Functions inherited from Observable
 Observable (const Observable &)
 
Observableoperator= (const Observable &)
 
void notifyObservers ()
 
- Public Member Functions inherited from LazyObject
void update ()
 
void recalculate ()
 
void freeze ()
 
void unfreeze ()
 
void alwaysForwardNotifications ()
 
- Public Member Functions inherited from Observer
 Observer (const Observer &)
 
Observeroperator= (const Observer &)
 
std::pair< iterator, bool > registerWith (const ext::shared_ptr< Observable > &)
 
void registerWithObservables (const ext::shared_ptr< Observer > &)
 
Size unregisterWith (const ext::shared_ptr< Observable > &)
 
void unregisterWithAll ()
 
virtual void deepUpdate ()
 

Static Public Member Functions

static Real gaussianPolynomialIntegral (Real a, Real b, Real c, Real d, Real e, Real x0, Real x1)
 
static Real gaussianShiftedPolynomialIntegral (Real a, Real b, Real c, Real d, Real e, Real h, Real x0, Real x1)
 

Protected Member Functions

 Gaussian1dModel (const Handle< YieldTermStructure > &yieldTermStructure)
 
virtual Real numeraireImpl (Time t, Real y, const Handle< YieldTermStructure > &yts) const =0
 
virtual Real zerobondImpl (Time T, Time t, Real y, const Handle< YieldTermStructure > &yts) const =0
 
void performCalculations () const
 
void generateArguments ()
 
ext::shared_ptr< VanillaSwapunderlyingSwap (const ext::shared_ptr< SwapIndex > &index, const Date &expiry, const Period &tenor) const
 
- Protected Member Functions inherited from LazyObject
virtual void calculate () const
 

Protected Attributes

ext::shared_ptr< StochasticProcess1DstateProcess_
 
Date evaluationDate_
 
bool enforcesTodaysHistoricFixings_
 
- Protected Attributes inherited from LazyObject
bool calculated_
 
bool frozen_
 
bool alwaysForward_
 

Additional Inherited Members

- Public Types inherited from Observer
typedef boost::unordered_set< ext::shared_ptr< Observable > > set_type
 
typedef set_type::iterator iterator
 

Detailed Description

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/

Warning:
the variance of the state process conditional on $x(t)=x$ must be independent of the value of $x$

Member Function Documentation

◆ gaussianPolynomialIntegral()

static Real gaussianPolynomialIntegral ( Real  a,
Real  b,
Real  c,
Real  d,
Real  e,
Real  x0,
Real  x1 
)
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 \]

.

◆ gaussianShiftedPolynomialIntegral()

static Real gaussianShiftedPolynomialIntegral ( Real  a,
Real  b,
Real  c,
Real  d,
Real  e,
Real  h,
Real  x0,
Real  x1 
)
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 \]

.

◆ yGrid()

Disposable<Array> yGrid ( Real  yStdDevs,
int  gridPoints,
Real  T = 1.0,
Real  t = 0,
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

◆ performCalculations()

void performCalculations ( ) const
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.