PermutationallyReducedStateSpace
Defines a basis state space where terms are reduced over their permutationally equivalent operations, making many operations dramatically faster
__init__(self, basis, class_reps, perms):
original_space:BasisStateSpace
to_equivalence_class_space(self):
@classmethod
from_space(cls, original_space):
@classmethod
get_equivalent_permutations(cls, exc):
exc:np.ndarray:returns:_
permutation_direct_product(self, perms):
Creates a new space by taking permutation products
perms:Any:returns:_
apply_selection_rules(self, selection_rules, target_dimensions=None, filter_space=None, parallelizer=None, logger=None, iterations=1, new_state_space_class=None):
permutationally_reduce(self):
representative_space(self):
permutationally_expand(self):
:returns:BasisStateSpace
take_permutations(self, *p):
Takes subsets of the stored permutations.
This function is subject to change as the held structure of the permutations
changes.
Since permutation structure is stored like a direct product to maintain equivalence
class relations we index from the bottom out, i.e. asking for take_permutations(i, j)
will give you the states where the original state was i and the first product was in j
p:Any:returns:_
take_subspace(self, sel, assume_sorted=False, track_excitations=True, track_indices=True):
Returns a subsample of the space. Intended to be a cheap operation, so samples along either the indices or the excitations, depending on which we have If we know the subsample is sorted then we can actually reuse more information and so we make use of that
sel:Any:returns:_
take_subdimensions(self, inds):
Returns a subsample of the space with some dimensions dropped
inds:Any:returns:_