InMemoryCube stores the cube in memory using nested STL vectors. More...
#include <orea/cube/inmemorycube.hpp>
Inheritance diagram for InMemoryCubeBase< T >:Public Member Functions | |
| InMemoryCubeBase (const Date &asof, const std::set< std::string > &ids, const vector< Date > &dates, Size samples, const T &t=T()) | |
| default ctor | |
| InMemoryCubeBase () | |
| default constructor | |
| Size | numIds () const override |
| Return the length of each dimension. | |
| Size | numDates () const override |
| virtual Size | samples () const override |
| const std::map< std::string, Size > & | idsAndIndexes () const override |
| Return a map of all ids and their position in the cube. | |
| const std::vector< QuantLib::Date > & | dates () const override |
| Get the vector of dates for this cube. | |
| QuantLib::Date | asof () const override |
| Return the asof date (T0 date) | |
Public Member Functions inherited from NPVCube | |
| NPVCube () | |
| default ctor | |
| NPVCube (NPVCube &)=delete | |
| Do not allow cube copying. | |
| NPVCube & | operator= (NPVCube const &)=delete |
| virtual | ~NPVCube () |
| dtor | |
| virtual Size | depth () const =0 |
| const std::set< std::string > | ids () const |
| Get a set of all ids in the cube. | |
| virtual Real | getT0 (Size id, Size depth=0) const =0 |
| Get a T0 value from the cube using index. | |
| virtual Real | getT0 (const std::string &id, Size depth=0) const |
| Get a T0 value from the cube using trade id. | |
| virtual void | setT0 (Real value, Size id, Size depth=0)=0 |
| Set a value in the cube using index. | |
| virtual void | setT0 (Real value, const std::string &id, Size depth=0) |
| Set a value in the cube using trade id. | |
| virtual Real | get (Size id, Size date, Size sample, Size depth=0) const =0 |
| Get a value from the cube using index. | |
| virtual void | set (Real value, Size id, Size date, Size sample, Size depth=0)=0 |
| Set a value in the cube using index. | |
| virtual Real | get (const std::string &id, const QuantLib::Date &date, Size sample, Size depth=0) const |
| Get a value from the cube using trade id and date. | |
| virtual void | set (Real value, const std::string &id, const QuantLib::Date &date, Size sample, Size depth=0) |
| Set a value in the cube using trade id and date. | |
| virtual void | remove (Size id) |
| virtual void | remove (Size id, Size sample) |
| Size | getTradeIndex (const std::string &id) const |
Protected Member Functions | |
| void | check (Size i, Size j, Size k, Size d) const |
Protected Member Functions inherited from NPVCube | |
| virtual Size | index (const std::string &id) const |
| virtual Size | index (const QuantLib::Date &date) const |
Protected Attributes | |
| QuantLib::Date | asof_ |
| vector< QuantLib::Date > | dates_ |
| Size | samples_ |
| vector< T > | t0Data_ |
| vector< vector< vector< T > > > | data_ |
| std::map< std::string, Size > | idIdx_ |
InMemoryCube stores the cube in memory using nested STL vectors.
InMemoryCube stores the cube in memory using nested STL vectors, this class is a template to allow both single and double precision implementations.
The use of nested STL vectors is adds a small memory overhead (~ 1 to 2%)