QuantLib: Gaussian1dModel Class Reference

A free/open-source library for quantitative finance Reference manual - version 1.12

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:
[legend]

## Public Member Functions
const boost::shared_ptr< StochasticProcess1D > | stateProcess () const
Real | numeraire (const Time t, const Real y=0.0, const Handle< YieldTermStructure > &yts=Handle< YieldTermStructure >()) const
Real | zerobond (const Time T, const Time t=0.0, const Real y=0.0, const Handle< YieldTermStructure > &yts=Handle< YieldTermStructure >()) const
Real | numeraire (const Date &referenceDate, const Real y=0.0, const Handle< YieldTermStructure > &yts=Handle< YieldTermStructure >()) const
Real | zerobond (const Date &maturity, const Date &referenceDate=Null< Date >(), const 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, 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
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
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
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
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 &)
Observable & | operator= (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 &)
Observer & | operator= (const Observer &)
std::pair< iterator, bool > | registerWith (const boost::shared_ptr< Observable > &)
void | registerWithObservables (const boost::shared_ptr< Observer > &)
Size | unregisterWith (const boost::shared_ptr< Observable > &)
void | unregisterWithAll ()
virtual void | deepUpdate ()

## Static Public Member Functions
static Real | gaussianPolynomialIntegral (const Real a, const Real b, const Real c, const Real d, const Real e, const Real x0, const Real x1)
static 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 Real | numeraireImpl (const Time t, const Real y, const Handle< YieldTermStructure > &yts) const =0
virtual 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
Protected Member Functions inherited from LazyObject
virtual void | calculate () const

## Protected Attributes
boost::shared_ptr< StochasticProcess1D > | stateProcess_
Date | evaluationDate_
bool | enforcesTodaysHistoricFixings_
Protected Attributes inherited from LazyObject
bool | calculated_
bool | frozen_
bool | alwaysForward_

## Additional Inherited Members
Public Types inherited from Observer
typedef std::set< boost::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 | ( | const Real | a,
|  | const Real | b,
|  | const Real | c,
|  | const Real | d,
|  | const Real | e,
|  | const Real | x0,
|  | const 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 | ( | const Real | a,
|  | const Real | b,
|  | const Real | c,
|  | const Real | d,
|  | const Real | e,
|  | const Real | h,
|  | const Real | x0,
|  | const 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()

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

## ◆ 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.