Logo
Reference manual - version orea_version
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
SensiCube< T > Class Template Reference

SensiCube stores only npvs not equal to the base npvs. More...

#include <orea/cube/sensicube.hpp>

+ Inheritance diagram for SensiCube< T >:

Public Member Functions

 SensiCube (const std::set< std::string > &ids, const QuantLib::Date &asof, QuantLib::Size samples, const T &t=T())
 
QuantLib::Size numIds () const override
 Return the length of each dimension.
 
QuantLib::Size samples () const override
 
const std::map< std::string, Size > & idsAndIndexes () const override
 Get the vector of ids for this 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)
 
Real getT0 (Size i, Size) const override
 Get a T0 value from the cube.
 
void setT0 (Real value, Size i, Size) override
 Set a value in the cube.
 
Real get (Size i, Size j, Size k, Size) const override
 Get a value from the cube.
 
void set (Real value, Size i, Size j, Size k, Size) override
 Set a value in the cube.
 
void remove (Size i) override
 
void remove (Size i, Size k) override
 
std::map< QuantLib::Size, QuantLib::Real > getTradeNPVs (QuantLib::Size i) const override
 
std::set< QuantLib::Size > relevantScenarios () const override
 
- Public Member Functions inherited from NPVSensiCube
QuantLib::Size numDates () const override
 Number of dates in the NPVSensiCube is exactly one i.e. the as of date.
 
QuantLib::Size depth () const override
 The depth in the NPVSensiCube is exactly one.
 
Real get (QuantLib::Size id, QuantLib::Size sample) const
 Convenience method to get a value from the cube using id and sample only.
 
Real get (const std::string &id, QuantLib::Size sample) const
 Convenience method to get a value from the cube using id and sample only.
 
void set (QuantLib::Real value, QuantLib::Size id, QuantLib::Size sample)
 Convenience method to set a value in the cube using id and sample only.
 
void set (QuantLib::Real value, const std::string &id, QuantLib::Size sample)
 Convenience method to set a value in the cube using id and sample only.
 
Size getTradeIndex (const std::string &tradeId) const
 Return the index of the trade in the cube.
 
virtual std::map< QuantLib::Size, QuantLib::Real > getTradeNPVs (Size tradeIdx) const =0
 
std::map< QuantLib::Size, QuantLib::Real > getTradeNPVs (const std::string &tradeId) const
 
virtual Real get (Size id, Size date, Size sample, Size depth=0) const=0
 Get a value from 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, Size id, Size date, Size sample, Size depth=0)=0
 Set a value in the cube using index.
 
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.
 
- Public Member Functions inherited from NPVCube
 NPVCube ()
 default ctor
 
 NPVCube (NPVCube &)=delete
 Do not allow cube copying.
 
NPVCubeoperator= (NPVCube const &)=delete
 
virtual ~NPVCube ()
 dtor
 
const std::set< std::string > ids () const
 Get a set of all ids in the cube.
 
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, const std::string &id, Size depth=0)
 Set a value in the cube using trade id.
 
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.
 
Size getTradeIndex (const std::string &id) const
 

Protected Member Functions

void check (QuantLib::Size i, QuantLib::Size j, QuantLib::Size k) 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

std::vector< T > t0Data_
 
std::vector< std::map< QuantLib::Size, T > > tradeNPVs_
 
std::set< QuantLib::Size > relevantScenarios_
 

Detailed Description

template<typename T>
class ore::analytics::SensiCube< T >

SensiCube stores only npvs not equal to the base npvs.

Member Function Documentation

◆ remove() [1/2]

void remove ( Size  id)
overridevirtual

remove all values for a given id, i.e. change the state as if setT0() and set() has never been called for the id the default implementation has generelly to be overriden in derived classes depending on how values are stored

Reimplemented from NPVCube.

◆ remove() [2/2]

void remove ( Size  id,
Size  sample 
)
overridevirtual

simliar as above, but remove all values for a given id and scenario and keep T0 values

Reimplemented from NPVCube.

◆ relevantScenarios()

std::set<QuantLib::Size> relevantScenarios ( ) const
overridevirtual

Return the set of scenario indices with non-zero result

Implements NPVSensiCube.