rangeSetup.hpp
1 #ifndef MARIAN_RANGESETUP_HPP
2 #define MARIAN_RANGESETUP_HPP
3 
4 #include <financial/options/option.hpp>
5 #include <financial/market.hpp>
6 
7 namespace marian {
8 
20  class RangeSetup {
21  public:
24  virtual double getUpperBound(Market ,SmartPointer<Option>) const = 0;
25 
28  virtual double getLowerBound(Market ,SmartPointer<Option>) const = 0;
29 
32  virtual RangeSetup* clone() const = 0;
33 
36  virtual ~RangeSetup(){}
37 
38  };
39 
52  template<typename T>
53  class DCRangeSetup : public RangeSetup {
54  public:
57  virtual RangeSetup* clone() const {
58  return new T(static_cast<const T&>(*this));
59  }
60  };
61 } // namespace marian
62 
63 #endif /* MARIAN_RANGESETUP_HPP */
Data structure holding the market data.
Definition: market.hpp:11
Template of deep-coping smart pointer.
Definition: smartPointer.hpp:9
Definition: backwardKolmogorovEq.cpp:5
Deeply copyable RangeSetup.
Definition: rangeSetup.hpp:53
virtual ~RangeSetup()
Destructor.
Definition: rangeSetup.hpp:36
virtual double getUpperBound(Market, SmartPointer< Option >) const =0
Returns the upper boundary for a given market and option.
virtual RangeSetup * clone() const
Virtual copy constructor.
Definition: rangeSetup.hpp:57
virtual RangeSetup * clone() const =0
Virtual copy constructor.
virtual double getLowerBound(Market, SmartPointer< Option >) const =0
Returns the lower boundary for a given market and option.
Class implements algorithm to approximate indefinite boundaries.
Definition: rangeSetup.hpp:20