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

PathFunctional< ProcessRangeType, RangeType, ScalarType > Class Template Reference

#include <StochasticProcess.h>

List of all members.


Detailed Description

template<typename ProcessRangeType = Real, typename RangeType = Real, typename ScalarType = Real>
class PathFunctional< ProcessRangeType, RangeType, ScalarType >

A path functional H is a random object (random variable with arbitrary not necessarily scalar range) which is a deterministic function of the path of a stochastic process X. In this context there is a notion of time and of the information available at time t. This information is the observed path of the process up to time t. Thus a path functional can be conditioned on the state of the process at time t by evaluating it along paths which branch from the observed path at time t (continue this path from time t to the horizon).

The class PathFunctional implements this conditioning. The method conditionedAtTime(int t) returns a random object which is the path functional H conditioned on the state of the process at time t. Conditional expectations then become ordinary expectations . These conditional expectations are implemented, all other methods delivered by the class RandomObject are also available using the method conditionedAtTime().

It is assumed that paths of the process X are computed as a series of time steps of equal size dt. With this time becomes an integer variable and discrete time t corresponds to continuous time t*dt. In other words discrete time t is the number of the time step.

The template parameters RangeType, ScalarType have the same meaning as in the case of a RandomObject. The functional is RangeType valued and RangeType is a vector type with dim components of type ScalarType. The ScalarType only comes into play if covariances are computed, the dimension dim of the RangeType only comes into play if the covariance matrix is computed. The default values can be used otherwise.

ProcessRangeType is the type of values of of the underlying stochastic process. The process and the path functional are assumed to have the same ScalarType.

A PathFunctional is fully specified as soon as the template parameters and the method valueAlongCurrentPath are defined.

Parameters:
ProcessRangeType range of underlying stochastic process (possibly vectors).
RangeType range of functional (possibly vectors).
ScalarType common scalar type (type of vector components).
Author:
Michael J. Meyer

Definition at line 736 of file StochasticProcess.h.

Public Member Functions

int getDimension ()
StochasticProcess< ProcessRangeType,
ScalarType > * 
getProcess ()
 PathFunctional (StochasticProcess< ProcessRangeType, ScalarType > *Y, int d=1)
virtual RangeType valueAlongCurrentPath ()=0
RandomObject< RangeType, ScalarType > * conditionedAtTime (int t)
RangeType conditionalExpectation (int t, int nPath, bool progressReport=false, string message="")
RangeType * conditionalMeanAndVariance (int t, int nPath, bool progressReport=false, string message="")

Protected Attributes

StochasticProcess< ProcessRangeType,
ScalarType > * 
X
int dim


Constructor & Destructor Documentation

template<typename ProcessRangeType = Real, typename RangeType = Real, typename ScalarType = Real>
PathFunctional< ProcessRangeType, RangeType, ScalarType >::PathFunctional StochasticProcess< ProcessRangeType, ScalarType > *    Y,
int    d = 1
[inline]
 

Parameters:
Y the underlying process.
d dimension of RangeType of functional.

Definition at line 756 of file StochasticProcess.h.


Member Function Documentation

template<typename ProcessRangeType = Real, typename RangeType = Real, typename ScalarType = Real>
int PathFunctional< ProcessRangeType, RangeType, ScalarType >::getDimension   [inline]
 

Dimension of functional RangeType.

Definition at line 747 of file StochasticProcess.h.

template<typename ProcessRangeType = Real, typename RangeType = Real, typename ScalarType = Real>
StochasticProcess<ProcessRangeType,ScalarType>* PathFunctional< ProcessRangeType, RangeType, ScalarType >::getProcess   [inline]
 

The underlying stochastic process.

Definition at line 750 of file StochasticProcess.h.

template<typename ProcessRangeType = Real, typename RangeType = Real, typename ScalarType = Real>
virtual RangeType PathFunctional< ProcessRangeType, RangeType, ScalarType >::valueAlongCurrentPath   [pure virtual]
 

The value of the functional along the current path of the process.

Implemented in SumFunctional.

template<typename ProcessRangeType = Real, typename RangeType = Real, typename ScalarType = Real>
RandomObject<RangeType,ScalarType>* PathFunctional< ProcessRangeType, RangeType, ScalarType >::conditionedAtTime int    t [inline]
 

The path functional conditioned on the state of the process at time t as a random object with values in RangeType.

If RangeType==ScalarType==Real, this function returns a pointer to RandomVariable and if RangeType==RealVector, ScalarType==Real, this function returns a pointer to RandomVector. Here vector is our own light weigth vector class not std::vector.

Definition at line 773 of file StochasticProcess.h.

Referenced by PathFunctional< ProcessRangeType, RangeType >::conditionalExpectation(), and PathFunctional< ProcessRangeType, RangeType >::conditionalMeanAndVariance().

template<typename ProcessRangeType = Real, typename RangeType = Real, typename ScalarType = Real>
RangeType PathFunctional< ProcessRangeType, RangeType, ScalarType >::conditionalExpectation int    t,
int    nPath,
bool    progressReport = false,
string    message = " "
[inline]
 

Monte Carlo expectation of the functional conditioned on the state of the process at time t.

Parameters:
t time of conditioning.
nPath number of paths for evaluation.
progressReport periodically report time left to the console.
message string identifying computation in case of a progress report.

Definition at line 783 of file StochasticProcess.h.

template<typename ProcessRangeType = Real, typename RangeType = Real, typename ScalarType = Real>
RangeType* PathFunctional< ProcessRangeType, RangeType, ScalarType >::conditionalMeanAndVariance int    t,
int    nPath,
bool    progressReport = false,
string    message = " "
[inline]
 

Monte Carlo conditional mean ([0]) and variance ([1]).

Parameters:
t time of conditioning.
nPath number of paths for evaluation.
progressReport periodically reports time left to the console.
message string identifying computation in case of a progress report.

Definition at line 800 of file StochasticProcess.h.


Member Data Documentation

template<typename ProcessRangeType = Real, typename RangeType = Real, typename ScalarType = Real>
StochasticProcess<ProcessRangeType,ScalarType>* PathFunctional< ProcessRangeType, RangeType, ScalarType >::X [protected]
 

Definition at line 741 of file StochasticProcess.h.

template<typename ProcessRangeType = Real, typename RangeType = Real, typename ScalarType = Real>
int PathFunctional< ProcessRangeType, RangeType, ScalarType >::dim [protected]
 

Definition at line 742 of file StochasticProcess.h.


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