14#ifndef DOUBLYINDEXEDMULTIPLEENTRIESBLOCK_HPP_
15#define DOUBLYINDEXEDMULTIPLEENTRIESBLOCK_HPP_
17#include "../../MEC/ExtendedMass.hpp"
31 template<
class ValueClass >
34 InterpreterClass::MultipleDoublyIndexed< ValueClass > >
40 int const firstIndexDigits = 5,
41 int const secondIndexDigits = 5 );
45 std::list< ValueClass* >
46 operator()( std::pair< int, int >
const& indexPair );
48 std::list< ValueClass const* >
49 operator()( std::pair< int, int >
const& indexPair )
const;
51 std::list< ValueClass* >
53 int const secondIndex )
54 {
return (*
this)( std::make_pair( firstIndex,
56 std::list< ValueClass const* >
58 int const secondIndex )
const
59 {
return (*
this)( std::make_pair( firstIndex,
62 hasEntry( std::pair< int, int >
const& indexPair )
const;
66 int const secondIndex )
const
67 {
return hasEntry( std::make_pair( firstIndex,
75 template<
class ValueClass >
77 DoublyIndexedMultipleEntriesBlock< ValueClass
79 std::string
const& blockName,
80 ValueClass
const& defaultUnsetValue,
82 int const firstIndexDigits,
83 int const secondIndexDigits ) :
85 InterpreterClass::MultipleDoublyIndexed< ValueClass > >(
89 BOL::
Vi( firstIndexDigits ).e( secondIndexDigits ) )
94 template<
class ValueClass >
97 >::~DoublyIndexedMultipleEntriesBlock()
103 template<
class ValueClass >
104 inline std::list< ValueClass* >
106 std::pair< int, int >
const& indexPair )
109 return this->dataBlocks[ this->lowestScaleIndex ]( indexPair );
112 template<
class ValueClass >
113 inline std::list< ValueClass const* >
115 std::pair< int, int >
const& indexPair )
const
118 return this->dataBlocks[ this->lowestScaleIndex ]( indexPair );
121 template<
class ValueClass >
124 std::pair< int, int >
const& indexPair )
const
127 return this->dataBlocks[ this->lowestScaleIndex ].hasEntry( indexPair );
bool hasEntry(std::pair< int, int > const &indexPair) const
std::list< ValueClass const * > operator()(int const firstIndex, int const secondIndex) const
bool hasEntry(int const firstIndex, int const secondIndex) const
DoublyIndexedMultipleEntriesBlock(std::string const &blockName, ValueClass const &defaultUnsetValue, bool const isVerbose=false, int const firstIndexDigits=5, int const secondIndexDigits=5)
std::list< ValueClass * > operator()(std::pair< int, int > const &indexPair)
virtual ~DoublyIndexedMultipleEntriesBlock()
std::list< ValueClass * > operator()(int const firstIndex, int const secondIndex)
ValueClass const defaultUnsetValue
StdVectorFiller< int > Vi