G2 Class Reference
Short-rate modelling framework

Two-additive-factor gaussian model class. More...

`#include <ql/models/shortrate/twofactormodels/g2.hpp>`

Inheritance diagram for G2:
[legend]

## Classes

class | FittingParameter
| Analytical term-structure fitting parameter \( \varphi(t) \). More...

## Public Member Functions

| G2 (const Handle< YieldTermStructure > &termStructure, Real a=0.1, Real sigma=0.01, Real b=0.1, Real eta=0.01, Real rho=-0.75)
boost::shared_ptr< ShortRateDynamics > | dynamics () const
| Returns the short-rate dynamics.
virtual Real | discountBond (Time now, Time maturity, Array factors) const
Real | discountBond (Time, Time, Rate, Rate) const
Real | discountBondOption (Option::Type type, Real strike, Time maturity, Time bondMaturity) const
Real | swaption (const Swaption::arguments &arguments, Rate fixedRate, Real range, Size intervals) const
DiscountFactor | discount (Time t) const
| Implied discount curve.
Real | a () const
Real | sigma () const
Real | b () const
Real | eta () const
Real | rho () const
Public Member Functions inherited from TwoFactorModel
| TwoFactorModel (Size nParams)
boost::shared_ptr< Lattice > | tree (const TimeGrid &grid) const
| Returns a two-dimensional trinomial tree.
Public Member Functions inherited from ShortRateModel
| ShortRateModel (Size nArguments)
Public Member Functions inherited from CalibratedModel
| CalibratedModel (Size nArguments)
void | update ()
virtual void | calibrate (const std::vector< boost::shared_ptr< CalibrationHelper > > &, OptimizationMethod &method, const EndCriteria &endCriteria, const Constraint &constraint=Constraint(), const std::vector< Real > &weights=std::vector< Real >(), const std::vector< bool > &fixParameters=std::vector< bool >())
| Calibrate to a set of market instruments (usually caps/swaptions) More...
Real | value (const Array &params, const std::vector< boost::shared_ptr< CalibrationHelper > > &)
const boost::shared_ptr< Constraint > & | constraint () const
EndCriteria::Type | endCriteria () const
| Returns end criteria result.
const Array & | problemValues () const
| Returns the problem values.
Disposable< Array > | params () const
| Returns array of arguments on which calibration is done.
virtual void | setParams (const Array &params)
Integer | functionEvaluation () const
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 ()
Public Member Functions inherited from Observable
| Observable (const Observable &)
Observable & | operator= (const Observable &)
void | notifyObservers ()
Public Member Functions inherited from AffineModel
virtual Real | discountBondOption (Option::Type type, Real strike, Time maturity, Time bondStart, Time bondMaturity) const
Public Member Functions inherited from TermStructureConsistentModel
| TermStructureConsistentModel (const Handle< YieldTermStructure > &termStructure)
const Handle< YieldTermStructure > & | termStructure () const

## Protected Member Functions

void | generateArguments ()
Real | A (Time t, Time T) const
Real | B (Real x, Time t) const

## Friends

class | SwaptionPricingFunction

## Additional Inherited Members

Public Types inherited from Observer
typedef std::set< boost::shared_ptr< Observable > > | set_type
typedef set_type::iterator | iterator
Protected Attributes inherited from CalibratedModel
std::vector< Parameter > | arguments_
boost::shared_ptr< Constraint > | constraint_
EndCriteria::Type | shortRateEndCriteria_
Array | problemValues_
Integer | functionEvaluation_

## Detailed Description

Two-additive-factor gaussian model class.

This class implements a two-additive-factor model defined by

\[ dr_t = \varphi(t) + x_t + y_t \]

where \( x_t \) and \( y_t \) are defined by

\[ dx_t = -a x_t dt + \sigma dW^1_t, x_0 = 0 \]

\[ dy_t = -b y_t dt + \sigma dW^2_t, y_0 = 0 \]

and \( dW^1_t dW^2_t = \rho dt \).

Bug:
  This class was not tested enough to guarantee its functionality.

Examples:
  BermudanSwaption.cpp.