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: _

Feedback

Examples

Templates

Documentation