a block-"sparse" string represents occupancies of an arbitrarily-large set of states as a set of alternating unoccupied/occupied blocks.
More...
#include <chemistry/qc/nbody/string.h>
|
struct | Block |
| represents a continuous block of states of same occupancy More...
|
|
|
typedef size_t | state_index_type |
|
typedef std::set< Block > | Blocks |
|
a block-"sparse" string represents occupancies of an arbitrarily-large set of states as a set of alternating unoccupied/occupied blocks.
◆ FermionOccupationBlockString() [1/3]
sc::FermionOccupationBlockString::FermionOccupationBlockString |
( |
size_t |
Ns | ) |
|
|
inlineexplicit |
Constructs an empty set of Ns states.
- Parameters
-
◆ FermionOccupationBlockString() [2/3]
sc::FermionOccupationBlockString::FermionOccupationBlockString |
( |
size_t |
Ns, |
|
|
const std::vector< state_index_type > & |
occupied_states |
|
) |
| |
|
inlineexplicit |
◆ FermionOccupationBlockString() [3/3]
sc::FermionOccupationBlockString::FermionOccupationBlockString |
( |
size_t |
Ns, |
|
|
Blocks & |
blocks |
|
) |
| |
|
inlineexplicit |
◆ add()
Adds a particle to_ state to_.
Unsafe, but fast.
- Parameters
-
to_ | the state to_ which the particle will be added. The current status of the state is not checked. |
- Returns
- reference to_ this string, for chaining operations (e.g. a.remove(0).remove(7).add(13) etc.)
Referenced by FermionOccupationBlockString().
◆ append()
appends other to the end of this
- Parameters
-
other | the string to be appended |
- Returns
- *this
References sc::other().
◆ count() [1/2]
size_t sc::FermionOccupationBlockString::count |
( |
| ) |
const |
|
inline |
Reports the number of occupied states.
- Returns
- the number of occupied states
Referenced by empty().
◆ count() [2/2]
size_t sc::FermionOccupationBlockString::count |
( |
size_t |
pos1, |
|
|
size_t |
pos2 |
|
) |
| const |
|
inline |
counts the number of bits in (pos1,pos2) (assumes pos2 >= pos1)
- Parameters
-
- Returns
◆ empty()
bool sc::FermionOccupationBlockString::empty |
( |
| ) |
const |
|
inline |
are all states empty?
- Returns
- true if all states are empty
References count().
◆ operator[]()
bool sc::FermionOccupationBlockString::operator[] |
( |
size_t |
i | ) |
const |
|
inline |
Returns the occupancy of state i.
- Parameters
-
- Returns
- true is the state is occupied
◆ remove()
Removes a particle from_ state from_.
Unsafe, but fast.
- Parameters
-
from_ | the state from_ which the particle will be removed. The current status of the state is not checked. |
- Returns
- reference to_ this string, for chaining operations (e.g. a.remove(0).remove(7).add(13) etc.)
◆ size()
size_t sc::FermionOccupationBlockString::size |
( |
| ) |
const |
|
inline |
Reports the total number of states.
- Returns
- the total number states
Referenced by operator^().
The documentation for this class was generated from the following file: