CFL
Model.hpp
Go to the documentation of this file.
1 //Copyright (c) Dmitry Kramkov, 2000-2006. All rights reserved.
2 
3 #ifndef __cflModel_hpp__
4 #define __cflModel_hpp__
5 
6 #include "cfl/MultiFunction.hpp"
7 
18 namespace cfl
19 {
20  class Slice;
21 
23 
24 
26 
31  class IModel
32  {
33  public:
37  virtual ~IModel(){}
38 
45  virtual const std::vector<double> & eventTimes() const = 0;
46 
51  virtual unsigned numberOfStates() const = 0;
52 
62  virtual unsigned numberOfNodes(unsigned iEventTime,
63  const std::vector<unsigned> & rStates) const = 0;
64 
72  virtual Slice state(unsigned iEventTime, unsigned iState) const = 0;
73 
79  virtual std::valarray<double> origin() const = 0;
80 
93  virtual void addDependence(Slice & rSlice,
94  const std::vector<unsigned> & rStates) const = 0;
95 
105  virtual void rollback(Slice & rSlice, unsigned iEventTime) const = 0;
106 
116  virtual void indicator(Slice & rSlice, double dBarrier) const = 0;
117 
126  virtual MultiFunction interpolate(const Slice & rSlice) const = 0;
127  };
129 }
130 
131 #endif // of __cflModel_hpp__
132 
Interface class for financial models.
Definition: Model.hpp:31
virtual void addDependence(Slice &rSlice, const std::vector< unsigned > &rStates) const =0
virtual void indicator(Slice &rSlice, double dBarrier) const =0
virtual unsigned numberOfNodes(unsigned iEventTime, const std::vector< unsigned > &rStates) const =0
Representation of random payoffs in the library.
Definition: Slice.hpp:40
virtual const std::vector< double > & eventTimes() const =0
virtual std::valarray< double > origin() const =0
Multi-dimensional function object.
Main namespace for cfl library.
Definition: Approx.hpp:22
Standard concrete class for multi-dimensional function object.
Definition: MultiFunction.hpp:79
STL class.
virtual unsigned numberOfStates() const =0
virtual Slice state(unsigned iEventTime, unsigned iState) const =0
virtual ~IModel()
Definition: Model.hpp:37
virtual void rollback(Slice &rSlice, unsigned iEventTime) const =0
virtual MultiFunction interpolate(const Slice &rSlice) const =0