14#ifndef TRIPLYINDEXEDMULTIPLEENTRIESBLOCK_HPP_
15#define TRIPLYINDEXEDMULTIPLEENTRIESBLOCK_HPP_
17#include "../../MEC/ExtendedMass.hpp"
31 template<
class ValueClass >
34 InterpreterClass::MultipleTriplyIndexed< ValueClass > >
40 int const firstIndexDigits = 5,
41 int const secondIndexDigits = 5,
42 int const thirdIndexDigits = 5 );
46 std::list< ValueClass* >
47 operator()( std::pair< std::pair< int, int >,
int >
const& indexTriple );
49 std::list< ValueClass const* >
51 std::pair< std::pair< int, int >,
int >
const& indexTriple )
const;
53 std::list< ValueClass* >
55 int const secondIndex,
56 int const thirdIndex )
57 {
return (*
this)( std::make_pair( std::make_pair( firstIndex,
60 std::list< ValueClass const* >
62 int const secondIndex,
63 int const thirdIndex )
const
64 {
return (*
this)( std::make_pair( std::make_pair( firstIndex,
69 std::pair< std::pair< int, int >,
int >
const& indexTriple )
const;
73 int const secondIndex,
74 int const thirdIndex )
const
75 {
return hasEntry( std::make_pair( std::make_pair( firstIndex,
84 template<
class ValueClass >
86 TriplyIndexedMultipleEntriesBlock< ValueClass
88 std::string
const& blockName,
89 ValueClass
const& defaultUnsetValue,
91 int const firstIndexDigits,
92 int const secondIndexDigits,
93 int const thirdIndexDigits ) :
95 InterpreterClass::MultipleTriplyIndexed< ValueClass > >(
99 BOL::
Vi( firstIndexDigits
101 ).e( thirdIndexDigits ) )
106 template<
class ValueClass >
109 >::~TriplyIndexedMultipleEntriesBlock()
115 template<
class ValueClass >
116 inline std::list< ValueClass* >
118 std::pair< std::pair< int, int >,
int >
const& indexTriple )
121 return this->dataBlocks[ this->lowestScaleIndex ]( indexTriple );
124 template<
class ValueClass >
125 inline std::list< ValueClass const* >
127 std::pair< std::pair< int, int >,
int >
const& indexTriple )
const
130 return this->dataBlocks[ this->lowestScaleIndex ]( indexTriple );
133 template<
class ValueClass >
136 std::pair< std::pair< int, int >,
int >
const& indexTriple )
const
140 this->dataBlocks[ this->lowestScaleIndex ].hasEntry( indexTriple );
ValueClass const defaultUnsetValue
std::list< ValueClass const * > operator()(int const firstIndex, int const secondIndex, int const thirdIndex) const
bool hasEntry(std::pair< std::pair< int, int >, int > const &indexTriple) const
std::list< ValueClass * > operator()(std::pair< std::pair< int, int >, int > const &indexTriple)
virtual ~TriplyIndexedMultipleEntriesBlock()
std::list< ValueClass * > operator()(int const firstIndex, int const secondIndex, int const thirdIndex)
bool hasEntry(int const firstIndex, int const secondIndex, int const thirdIndex) const
TriplyIndexedMultipleEntriesBlock(std::string const &blockName, ValueClass const &defaultUnsetValue, bool const isVerbose=false, int const firstIndexDigits=5, int const secondIndexDigits=5, int const thirdIndexDigits=5)
StdVectorFiller< int > Vi