24 #ifndef COM_DAFER45_TBTK_BLOCK_STRUCTURE_DESCRIPTOR
25 #define COM_DAFER45_TBTK_BLOCK_STRUCTURE_DESCRIPTOR
32 class BlockStructureDescriptor{
35 BlockStructureDescriptor();
38 BlockStructureDescriptor(
39 const HoppingAmplitudeSet &hoppingAmplitudeSet
43 unsigned int getNumBlocks()
const;
50 unsigned int getNumStatesInBlock(
unsigned int block)
const;
58 unsigned int getBlockIndex(
unsigned int state)
const;
65 unsigned int getFirstStateInBlock(
unsigned int block)
const;
68 std::vector<unsigned int> numStatesInBlock;
71 std::vector<unsigned int> stateToBlockMap;
74 std::vector<unsigned int> blockToStateMap;
77 inline unsigned int BlockStructureDescriptor::getNumBlocks()
const{
78 return numStatesInBlock.size();
81 inline unsigned int BlockStructureDescriptor::getNumStatesInBlock(
84 return numStatesInBlock[block];
87 inline unsigned int BlockStructureDescriptor::getBlockIndex(
90 return stateToBlockMap[state];
93 inline unsigned int BlockStructureDescriptor::getFirstStateInBlock(
96 return blockToStateMap[block];