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

Classes | Protected Member Functions | Protected Attributes
StochasticProcess Class Reference

multi-dimensional stochastic process class. More...

`#include <ql/stochasticprocess.hpp>`

Inheritance diagram for StochasticProcess:
[legend]

List of all members.

## Classes

class | discretization
| discretization of a stochastic process over a given time interval More...

## Public Member Functions

Stochastic process interface
virtual Size | size () const =0
| returns the number of dimensions of the stochastic process
virtual Size | factors () const
| returns the number of independent factors of the process
virtual Disposable< Array > | initialValues () const =0
| returns the initial values of the state variables
virtual Disposable< Array > | drift (Time t, const Array &x) const =0
| returns the drift part of the equation, i.e.,
virtual Disposable< Matrix > | diffusion (Time t, const Array &x) const =0
| returns the diffusion part of the equation, i.e.
virtual Disposable< Array > | expectation (Time t0, const Array &x0, Time dt) const
virtual Disposable< Matrix > | stdDeviation (Time t0, const Array &x0, Time dt) const
virtual Disposable< Matrix > | covariance (Time t0, const Array &x0, Time dt) const
virtual Disposable< Array > | evolve (Time t0, const Array &x0, Time dt, const Array &dw) const
virtual Disposable< Array > | apply (const Array &x0, const Array &dx) const
utilities
virtual Time | time (const Date &) const
Observer interface
void | update ()

## Protected Member Functions

| StochasticProcess (const boost::shared_ptr< discretization > &)

## Protected Attributes

boost::shared_ptr< discretization > | discretization_

## Detailed Description

multi-dimensional stochastic process class.

This class describes a stochastic process governed by

## Member Function Documentation

virtual Disposable<Array> expectation | ( | Time | t0,
|  | const Array & | x0,
|  | Time | dt
| ) |  | const`[virtual]`

returns the expectation of the process after a time interval according to the given discretization. This method can be overridden in derived classes which want to hard-code a particular discretization.

Reimplemented in G2ForwardProcess, StochasticProcessArray, and G2Process.

virtual Disposable<Matrix> stdDeviation | ( | Time | t0,
|  | const Array & | x0,
|  | Time | dt
| ) |  | const`[virtual]`

returns the standard deviation of the process after a time interval according to the given discretization. This method can be overridden in derived classes which want to hard-code a particular discretization.

Reimplemented in G2ForwardProcess, StochasticProcessArray, and G2Process.

virtual Disposable<Matrix> covariance | ( | Time | t0,
|  | const Array & | x0,
|  | Time | dt
| ) |  | const`[virtual]`

returns the covariance of the process after a time interval according to the given discretization. This method can be overridden in derived classes which want to hard-code a particular discretization.

Reimplemented in G2ForwardProcess, LiborForwardModelProcess, StochasticProcessArray, and G2Process.

virtual Disposable<Array> evolve | ( | Time | t0,
|  | const Array & | x0,
|  | Time | dt,
|  | const Array & | dw
| ) |  | const`[virtual]`

returns the asset value after a time interval according to the given discretization. By default, it returns

where is the expectation and the standard deviation.

Reimplemented in GJRGARCHProcess, ExtOUWithJumpsProcess, LiborForwardModelProcess, KlugeExtOUProcess, HestonProcess, BatesProcess, HybridHestonHullWhiteProcess, and StochasticProcessArray.

virtual Disposable<Array> apply | ( | const Array & | x0,
|  | const Array & | dx
| ) |  | const`[virtual]`

applies a change to the asset value. By default, it returns .

Reimplemented in GJRGARCHProcess, LiborForwardModelProcess, HestonProcess, HybridHestonHullWhiteProcess, and StochasticProcessArray.

virtual Time time | ( | const Date & |  | ) | const`[virtual]`

returns the time value corresponding to the given date in the reference system of the stochastic process.

Note:
  As a number of processes might not need this functionality, a default implementation is given which raises an exception.

Reimplemented in GJRGARCHProcess, HestonProcess, GeneralizedBlackScholesProcess, HybridHestonHullWhiteProcess, Merton76Process, and StochasticProcessArray.

void update | ( |  | ) | `[virtual]`

This method must be implemented in derived classes. An instance of Observer does not call this method directly: instead, it will be called by the observables the instance registered with when they need to notify any changes.

Implements Observer.

Reimplemented in GeneralizedBlackScholesProcess, and HybridHestonHullWhiteProcess.