### A free/open-source library for quantitative finance

Public Member Functions | Protected Member Functions | Protected Attributes
TreeLattice< Impl > Class Template Reference
Lattice methods

Tree-based lattice-method base class. More...

`#include <ql/methods/lattices/lattice.hpp>`

Inheritance diagram for TreeLattice< Impl >:
[legend]

List of all members.

## Public Member Functions

| TreeLattice (const TimeGrid &timeGrid, Size n)
const Array & | statePrices (Size i) const
void | stepback (Size i, const Array &values, Array &newValues) const
Lattice interface
void | initialize (DiscretizedAsset &, Time t) const
| initialize an asset at the given time.
void | rollback (DiscretizedAsset &, Time to) const
void | partialRollback (DiscretizedAsset &, Time to) const
Real | presentValue (DiscretizedAsset &) const
| Computes the present value of an asset using Arrow-Debrew prices.

## Protected Member Functions

void | computeStatePrices (Size until) const

## Protected Attributes

std::vector< Array > | statePrices_

## Detailed Description

### template<class Impl>
class QuantLib::TreeLattice< Impl >

Tree-based lattice-method base class.

This class defines a lattice method that is able to rollback (with discount) a discretized asset object. It will be based on one or more trees.

Derived classes must implement the following interface:

            public:
              DiscountFactor discount(Size i, Size index) const;
              Size descendant(Size i, Size index, Size branch) const;
              Real probability(Size i, Size index, Size branch) const;

and may implement the following:

            public:
              void stepback(Size i,
                            const Array& values,
                            Array& newValues) const;

## Member Function Documentation

void rollback | ( | DiscretizedAsset & | ,
|  | Time | to
| ) |  | const`[virtual]`

Roll back an asset until the given time, performing any needed adjustment.

Implements Lattice.

Reimplemented in TsiveriotisFernandesLattice< T >.

void partialRollback | ( | DiscretizedAsset & | ,
|  | Time | to
| ) |  | const`[virtual]`

Roll back an asset until the given time, but do not perform the final adjustment.

Warning:
  In version 0.3.7 and earlier, this method was called rollAlmostBack method and performed pre-adjustment. This is no longer true; when migrating your code, you'll have to replace calls such as:

                         method->rollAlmostBack(asset,t);

with the two statements:

                         method->partialRollback(asset,t);
                         asset->preAdjustValues();

Implements Lattice.

Reimplemented in TsiveriotisFernandesLattice< T >.