# Path: qmeq/wrappers/mytypes.py

# 
# Path: qmeq/wrappers/mytypes.py



import itertools
import numpy as np
    from scipy.special import factorial
    from scipy.misc import factorial
from .wrappers.mytypes import boolnp
from .wrappers.mytypes import longnp
            or given charge, sz, and, ssq, szlst[charge][szind][ssqind].
        """
        if charge is None and sz is None:
            return None
        elif sz is None:
            return self.chargelst[charge]
        elif self.szlst is not None and ssq is None:
            szind = sz_to_ind(sz, charge, self.nsingle)
            return self.szlst[charge][szind]
        elif self.szlst is not None and self.ssqlst is not None:
            szind = sz_to_ind(sz, charge, self.nsingle)
            ssqind = ssq_to_ind(ssq, sz)
            return self.ssqlst[charge][szind][ssqind]
        else:
            print("WARNING: No indexing by 'sz' or 'ssq'. Returning charge list.")
            return self.chargelst[charge]

    def remove_fock_states(self, lin_state_indices):
        """
        Remove Fock states.

        lin_state_indices : list
            Lin state indices of Fock states to remove.
        """
        indexing = self.indexing
        if indexing == 'ssq':
            print("WARNING: For 'ssq' indexing removal of Fock states is not supported.")
            return

        if self.removed_fock_states is None:

# Path: qmeq/wrappers/mytypes.py

# 
# Path: qmeq/wrappers/mytypes.py



# Path: qmeq/indexing.py
import itertools
import numpy as np
    from scipy.special import factorial
    from scipy.misc import factorial
from .wrappers.mytypes import boolnp
from .wrappers.mytypes import longnp

            or given charge, sz, and, ssq, szlst[charge][szind][ssqind].
        """
        if charge is None and sz is None:
            return None
        elif sz is None:
            return self.chargelst[charge]
        elif self.szlst is not None and ssq is None:
            szind = sz_to_ind(sz, charge, self.nsingle)
            return self.szlst[charge][szind]
        elif self.szlst is not None and self.ssqlst is not None:
            szind = sz_to_ind(sz, charge, self.nsingle)
            ssqind = ssq_to_ind(ssq, sz)
            return self.ssqlst[charge][szind][ssqind]
        else:
            print("WARNING: No indexing by 'sz' or 'ssq'. Returning charge list.")
            return self.chargelst[charge]

    def remove_fock_states(self, lin_state_indices):
        """
        Remove Fock states.

        lin_state_indices : list
            Lin state indices of Fock states to remove.
        """
        indexing = self.indexing
        if indexing == 'ssq':
            print("WARNING: For 'ssq' indexing removal of Fock states is not supported.")
            return

        if self.removed_fock_states is None:

            self.removed_fock_states = np.zeros(self.nmany, dtype=boolnp)