24 #ifndef COM_DAFER45_TBTK_SUM_RULE
25 #define COM_DAFER45_TBTK_SUM_RULE
27 #include "TBTK/FockSpace.h"
28 #include "TBTK/FockStateRule/FockStateRule.h"
31 #include <initializer_list>
35 namespace FockStateRule{
37 class SumRule :
public FockStateRule{
41 std::initializer_list<Index> stateIndices,
47 std::vector<Index> stateIndices,
55 virtual SumRule* clone()
const;
58 virtual WrapperRule createNewRule(
59 const LadderOperator<BitRegister> &ladderOperator
63 virtual WrapperRule createNewRule(
64 const LadderOperator<ExtensiveBitRegister> &ladderOperator
69 virtual bool isSatisfied(
70 const FockSpace<BitRegister> &fockSpace,
71 const FockState<BitRegister> &fockState
76 virtual bool isSatisfied(
77 const FockSpace<ExtensiveBitRegister> &fockSpace,
78 const FockState<ExtensiveBitRegister> &fockState
82 virtual bool operator==(
const FockStateRule &rhs)
const;
85 virtual void print()
const;
88 std::vector<Index> stateIndices;