Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members  

LowFactorDriftlessLMM Class Reference

#include <LowFactorDriftlessLMM.h>

Inheritance diagram for LowFactorDriftlessLMM:

LiborMarketModel List of all members.

Detailed Description

A driftless Libor market model DriftlessLMM where the covariation matrices C(t) which control the time steps are approximated as products with R(t) of rank r. The idea is to speed up the simulation by reducing matrix sizes.

Author:
Michael J. Meyer

Definition at line 67 of file LowFactorDriftlessLMM.h.

Public Member Functions

void switchToQMC ()
void switchToMC ()
void factorizationTest () const
Real XL (int j, int t) const
const RealVectorXLvect (int t, int p)
 LowFactorDriftlessLMM (LiborFactorLoading *fl, int r)
void newWienerIncrements (int t)
void printWienerIncrements (int t, int s) const
int effectiveDimension (int t, int s) const
void timeStep (int t, int p)
void timeStep (int t)
Real vol (int i) const
Real H_i0 (int i) const
Real H_it (int i, int t)
Real H_ii (int i) const
Real H_pq (int p, int q, int t)
Real B0 (int i) const
Real B (int i, int t)
Real swapRate (int p, int q, int t)
Real swapRate (int p, int q)
Real B_pq (int p, int q, int t)
Real B_pq (int p, int q)
Real capletAggregateVolatility (int i) const
Real swaptionAggregateVolatility (int p, int q, int t) const
Real bondAggregateVolatility (Bond *B, int t) const
std::ostream & printSelf (std::ostream &os) const

Static Public Member Functions

LiborMarketModelsample (int n, int volType, int corrType, int r=3)


Constructor & Destructor Documentation

LowFactorDriftlessLMM::LowFactorDriftlessLMM LiborFactorLoading   fl,
int    r
 

Constructor, sets default stochastic generator: Mersenne Twister. Covariation matrices controlling the time steps approximated to rank r.

Parameters:
fl volatility and correlation structure, see LiborFactorLoading.
r number of factors.


Member Function Documentation

void LowFactorDriftlessLMM::switchToQMC  
 

Switches to quasi random dynamics based on Sobol sequence.

void LowFactorDriftlessLMM::switchToMC  
 

Switches to pseudo random dynamics based on Mersenne Twister.

void LowFactorDriftlessLMM::factorizationTest   const
 

Prints the relative error in the trace norm of the rank r approximation of the covariation matrices C(t) which control the time steps. See LiborFactorLoading#factorizationTest.

Real LowFactorDriftlessLMM::XL int    j,
int    t
const [virtual]
 

X-Libor , value in current path.

Parameters:
j Libor index.
t discrete time.

Implements LiborMarketModel.

const RealVector& LowFactorDriftlessLMM::XLvect int    t,
int    p
[virtual]
 

X-Libor vector , value in current path. Index base p, natural indices.

Parameters:
p index of first Libor.
t discrete time.

Implements LiborMarketModel.

LiborMarketModel* LowFactorDriftlessLMM::sample int    n,
int    volType,
int    corrType,
int    r = 3
[static]
 

Sample LMM, quarterly accrual.

Parameters:
n dimension (number of accrual intervals).
volType type of volatility surface (VolSurface::JR,M,CONST).
corrType type of correlations (Correlations::JR,CS).
r number of factors.

Reimplemented from LiborMarketModel.

void LowFactorDriftlessLMM::newWienerIncrements int    t [virtual]
 

Writes a new set of standard normal increments driving a full Libor path to time t into the field Z. Forwards the request to the StochasticGenerator.

Reimplemented from LiborMarketModel.

void LowFactorDriftlessLMM::printWienerIncrements int    t,
int    s
const [virtual]
 

Prints the matrix Z of current Wiener increments, method is used for testing only.

Reimplemented from LiborMarketModel.

int LowFactorDriftlessLMM::effectiveDimension int    t,
int    s
const [inline, virtual]
 

The effective dimension of the simulation, that is, the number of standard normal deviates needed to compute one path. This is the dimension of the low discrepancy sequence generator needed for QMC simulation.

Note: if this is too high (>623 for Mersenne Twister) a random number generator may not be able to ensure equidistribution in this dimension calling into question the mathematical basis for Monte Carlo expectations.

Reimplemented from LiborMarketModel.

Definition at line 197 of file LowFactorDriftlessLMM.h.

void LowFactorDriftlessLMM::timeStep int    t,
int    p
[virtual]
 

Time step of X-Libors . (discrete time t to discrete time t+1) in a single step using a predictor-corrector algorithm and the current matrix Z of standard normal increments. See book 6.5.1.

Parameters:
t current discrete time (continuous time ).
p Libors evolved are .

Implements LiborMarketModel.

void LowFactorDriftlessLMM::timeStep int    t [inline]
 

Evolves the full set of Libors from discrete time t to time t+1 in a single time step using the current matrix Z of standard normal increments.

Parameters:
t current discrete time (continuous time T_t).

Definition at line 223 of file LowFactorDriftlessLMM.h.

References LiborMarketModel::timeStep().

Real LowFactorDriftlessLMM::vol int    i const
 

Annualized volatility of .

Parameters:
i Libor index.

Reimplemented from LiborMarketModel.

Real LowFactorDriftlessLMM::H_i0 int    i const [virtual]
 

Accrual factor , forward transport with Libors in state at time t=0.

Reimplemented from LiborMarketModel.

Real LowFactorDriftlessLMM::H_it int    i,
int    t
[virtual]
 

Accrual factor . This factor shifts a cashflow from time with Libors in state at time (discrete time t). In other words the shift is carried out at discrete time t. Needs all up to time .

Parameters:
t current discrete time (continuous time T_t).
i cashflow shifted from time T_i to horizon.

Reimplemented from LiborMarketModel.

Real LowFactorDriftlessLMM::H_ii int    i const
 

, that is the shift is carried out with Libors in state at time (discrete time t=i).

Parameters:
i cashflow shifted from time to horizon.

Real LowFactorDriftlessLMM::H_pq int    p,
int    q,
int    t
[virtual]
 

, the forward price at horizon of the annuity along at time .

Parameters:
p,q annuity along .
t price at time (accrued forward to time ).

Reimplemented from LiborMarketModel.

Real LowFactorDriftlessLMM::B0 int    i const [virtual]
 

The zero coupon bond .

Parameters:
i bond matures at time .

Reimplemented from LiborMarketModel.

Real LowFactorDriftlessLMM::B int    i,
int    t
[virtual]
 

The zero coupon bond with . Assumes that all Libors have been computed up to time (discrete time t).

Parameters:
t bond evaluated at time
i bond matures at time .

Reimplemented from LiborMarketModel.

Real LowFactorDriftlessLMM::swapRate int    p,
int    q,
int    t
[virtual]
 

The forward swap rate at discrete time t (continuous time ). Needs all Libors up to time t.

Parameters:
p,q swap along .
t discrete time.

Reimplemented from LiborMarketModel.

Real LowFactorDriftlessLMM::swapRate int    p,
int    q
[inline]
 

The forward swap rate at time t=0.

Parameters:
p,q swap along .

Definition at line 325 of file LowFactorDriftlessLMM.h.

References Real, and LiborMarketModel::swapRate().

Real LowFactorDriftlessLMM::B_pq int    p,
int    q,
int    t
[virtual]
 

The annuity . Needs all Libors up to time t.

Parameters:
p,q annuity along .
t discrete time.

Reimplemented from LiborMarketModel.

Real LowFactorDriftlessLMM::B_pq int    p,
int    q
[inline]
 

The annuity at time t=0.

Parameters:
p,q annuity along .

Definition at line 348 of file LowFactorDriftlessLMM.h.

References LiborMarketModel::B_pq(), and Real.

Real LowFactorDriftlessLMM::capletAggregateVolatility int    i const [virtual]
 

Forecast for the total caplet volatility

on the interval . Here . Exact if Libors have deterministic volatility. Quantity is needed for Black caplet formula.

Parameters:
i caplet on .

Reimplemented from LiborMarketModel.

Real LowFactorDriftlessLMM::swaptionAggregateVolatility int    p,
int    q,
int    t
const [virtual]
 

Forecast for the total swap rate volatility

on the interval . Here is the logarithm of the swap rate. Quantity is needed for Black approximate swaption formula.

Parameters:
p,q swap along on .
t swaption exercise at time .

Reimplemented from LiborMarketModel.

Real LowFactorDriftlessLMM::bondAggregateVolatility Bond   B,
int    t
const [virtual]
 

Forecast for the total volatility (of the relevant quantity) on the interval needed for pricing the call on a bond. See book, 6.9.4.

Parameters:
B the bond
t call on bond exercises at time .

Reimplemented from LiborMarketModel.

std::ostream& LowFactorDriftlessLMM::printSelf std::ostream &    os const [virtual]
 

A message what type of factor loading it is, all the parameter values.

Implements LiborMarketModel.


The documentation for this class was generated from the following file:
Generated on Mon Sep 22 02:16:33 2003 for Libor-Library by doxygen1.3-rc3