pricerAbstractFactory.hpp
1 #ifndef MARIAN_PRICERABSTRACTFACTORY_HPP
2 #define MARIAN_PRICERABSTRACTFACTORY_HPP
3 
4 #include <FDM/boundaryConditions/boundaryCondition.hpp>
5 #include <financial/market.hpp>
6 #include <utils/SmartPointer.hpp>
7 
8 namespace marian {
9 
19  public:
30  virtual std::vector<SmartPointer<BoundaryCondition> > getBoundarySpotConditions(Market mkt ,double low,double upp) = 0;
31 
34  virtual std::vector<double> initialCondition(const std::vector<double>&) = 0;
35 
38  virtual double lowerSpotLmt() = 0;
39 
42  virtual double upperSpotLmt() = 0;
43 
46  virtual double getConcentrationPoint() = 0;
47 
50  virtual AbstractPricerFactory* clone() const = 0;
51 
55  };
56 
57 
70  template<typename T>
72  public:
75  virtual AbstractPricerFactory* clone() const {
76  return new T(static_cast<const T&>(*this));
77  }
78  };
79 } // namespace marian
80 
81 #endif /* MARIAN_PRICERABSTRACTFACTORY_HPP */
virtual double upperSpotLmt()=0
Returns upper boundary level.
Deeply copyable AbstractPricerFactory.
Definition: pricerAbstractFactory.hpp:71
Data structure holding the market data.
Definition: market.hpp:11
virtual double getConcentrationPoint()=0
Returns concentration point used by non-uniform grid builders.
virtual AbstractPricerFactory * clone() const =0
Virtual copy construct.
AbstractPricerFactory()
Default constructor.
Definition: pricerAbstractFactory.hpp:22
Definition: backwardKolmogorovEq.cpp:5
virtual double lowerSpotLmt()=0
Returns lower boundary level.
Class implements the interface for Abstract Factory.
Definition: pricerAbstractFactory.hpp:18
virtual AbstractPricerFactory * clone() const
Virtual copy constructor.
Definition: pricerAbstractFactory.hpp:75
virtual std::vector< double > initialCondition(const std::vector< double > &)=0
Calculates initial condition for a given vector of spots.
virtual std::vector< SmartPointer< BoundaryCondition > > getBoundarySpotConditions(Market mkt, double low, double upp)=0
Returns boundary conditions.
virtual ~AbstractPricerFactory()
destructor
Definition: pricerAbstractFactory.hpp:54