14#ifndef DENSEDOUBLYINDEXEDBLOCK_HPP_
15#define DENSEDOUBLYINDEXEDBLOCK_HPP_
29 template<
class ValueClass >
31 InterpreterClass::DenseDoublyIndexed< ValueClass > >
37 int const firstIndexDigits = 2,
38 int const secondIndexDigits = 2 );
44 int const secondIndex );
48 int const secondIndex )
const;
52 {
return (*
this)( indexPair.first,
55 operator()( std::pair< int, int >
const& indexPair )
const
56 {
return (*
this)( indexPair.first,
60 int const secondIndex )
const;
64 hasEntry( std::pair< int, int >
const& indexPair )
const
73 template<
class ValueClass >
76 std::string
const& blockName,
77 ValueClass
const& defaultUnsetValue,
79 int const firstIndexDigits,
80 int const secondIndexDigits ) :
82 InterpreterClass::DenseDoublyIndexed< ValueClass > >(
86 BOL::
Vi( firstIndexDigits ).e( secondIndexDigits ) )
91 template<
class ValueClass >
99 template<
class ValueClass >
102 int const secondIndex )
105 return this->dataBlocks[ this->lowestScaleIndex ]( firstIndex,
109 template<
class ValueClass >
110 inline ValueClass
const&
112 int const secondIndex )
const
115 return this->dataBlocks[ this->lowestScaleIndex ]( firstIndex,
119 template<
class ValueClass >
122 int const secondIndex )
const
126 return this->dataBlocks[ this->lowestScaleIndex ].hasEntry( firstIndex,
ValueClass & operator()(int const firstIndex, int const secondIndex)
virtual ~DenseDoublyIndexedBlock()
ValueClass const & operator()(std::pair< int, int > const &indexPair) const
ValueClass & operator()(std::pair< int, int > const &indexPair)
bool hasEntry(std::pair< int, int > const &indexPair) const
DenseDoublyIndexedBlock(std::string const &blockName, ValueClass const &defaultUnsetValue, bool const isVerbose=false, int const firstIndexDigits=2, int const secondIndexDigits=2)
bool hasEntry(int const firstIndex, int const secondIndex) const
ValueClass const defaultUnsetValue
StdVectorFiller< int > Vi