MPQC
3.0.0-alpha
|
basic Nb-body number-conserving (nc) operator in sp representation More...
#include <chemistry/qc/nbody/string.h>
Public Types | |
typedef FString::state_index_type | state_index_type |
Public Member Functions | |
template<typename Int > | |
FermionBasicNCOper (const std::array< Int, Rank > &t, const std::array< Int, Rank > &f) | |
const std::array< state_index_type, Rank > & | cre () const |
reports the states in which particles are created More... | |
const std::array< state_index_type, Rank > & | ann () const |
reports the states in which particles are annihilated More... | |
void | apply (FString &os) const |
applies this operator to_ FermionOccupationNBitString os. More... | |
bool | apply_sign (FString &os) const |
same as apply(), but returns whether application operator changes the sign of the state; the sign changes if the number of occupied states "crossed" by the operator is odd More... | |
std::pair< bool, FString > | operator() (const FString &os) const |
similar to_ apply_sign(), but keeps the argument unchanged More... | |
Static Public Attributes | |
static const size_t | Rank = Nb |
basic Nb-body number-conserving (nc) operator in sp representation
Nb | rank of the operator (number of particles that possibly change states) |
|
inline |
reports the states in which particles are annihilated
|
inline |
applies this operator to_ FermionOccupationNBitString os.
Unsafe, but fast.
os | the FermionOccupationNBitString object |
|
inline |
same as apply(), but returns whether application operator changes the sign of the state; the sign changes if the number of occupied states "crossed" by the operator is odd
os | the FermionOccupationNBitString object |
Referenced by sc::FermionBasicNCOper< 1, FString >::operator()(), and sc::FermionBasicNCOper< Rank, FString >::operator()().
|
inline |
reports the states in which particles are created
|
inline |
similar to_ apply_sign(), but keeps the argument unchanged
os | the FermionOccupationNBitString object |