# 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
    statesdm : list
        List of states considered in calculations involving density matrix.
    shiftlst0 : numpy array
        Array necessary for labeling states for Pauli master equation. See method get_ind_dm0().
    dictdm : numpy array
        Array giving enumeration of considered many-body states in statesdm.
    mapdm0 : list
        List showing which states are mapped to each other due to symmetries.
        For example mapdm0[1]=1, mapdm0[2]=1, shows that 1 and 2 are equivalent.
        Also mapdm0[ind]=-1 shows that the state is excluded.
    booldm0 : list
        List giving states which will be used. Other states will be mapped to states,
        which have booldm0[ind]=True.
        From example for mapdm0 we have booldm0[1]=True, booldm0[2]=False.
    """

    def __init__(self, nsingle, indexing='Lin', symmetry=None, nleads=0):
        """
        Initialization of the StateIndexingDM class

        Parameters
        ----------
        nsingle : int
            Number of single-particle states.
        indexing : str
            String determining type of the indexing. Possible values are 'Lin', 'charge', 'sz', 'ssq'.
        symmetry : str
            String determining that the states will be augmented by the symmetry.
        """
        StateIndexing.__init__(self, nsingle, indexing, symmetry, nleads)

# 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

    statesdm : list
        List of states considered in calculations involving density matrix.
    shiftlst0 : numpy array
        Array necessary for labeling states for Pauli master equation. See method get_ind_dm0().
    dictdm : numpy array
        Array giving enumeration of considered many-body states in statesdm.
    mapdm0 : list
        List showing which states are mapped to each other due to symmetries.
        For example mapdm0[1]=1, mapdm0[2]=1, shows that 1 and 2 are equivalent.
        Also mapdm0[ind]=-1 shows that the state is excluded.
    booldm0 : list
        List giving states which will be used. Other states will be mapped to states,
        which have booldm0[ind]=True.
        From example for mapdm0 we have booldm0[1]=True, booldm0[2]=False.
    """

    def __init__(self, nsingle, indexing='Lin', symmetry=None, nleads=0):
        """
        Initialization of the StateIndexingDM class

        Parameters
        ----------
        nsingle : int
            Number of single-particle states.
        indexing : str
            String determining type of the indexing. Possible values are 'Lin', 'charge', 'sz', 'ssq'.
        symmetry : str
            String determining that the states will be augmented by the symmetry.
        """
        StateIndexing.__init__(self, nsingle, indexing, symmetry, nleads)

        self.shiftlst0 = np.zeros(self.ncharge+1, dtype=longnp)