Added
- New function ``loperator.make_matrix()`` with three overloads. These wrapped
C++ functions construct and return a matrix representation (2D NumPy array)
of a linear operator acting (1) in a full Hilbert space, (2) in its subspace
spanned by a given list of basis vectors or (3) between two subspaces of the
Hilbert space.
- New classes ``loperator.NFermionSectorView(R|C)``. These objects are
``LOperator(R|C)``-compatible views that represent state vectors defined in an
N-fermion subspace of a full Hilbert space. In addition to the view classes,
there are two new utility functions ``loperator.n_fermion_sector_size()`` and
``loperator.n_fermion_sector_basis_states()``.
- New classes ``loperator.NFermionMultiSectorView(R|C)``. These objects are
``LOperator(R|C)``-compatible views that represent state vectors defined in an
N-fermion multisector. A multisector is a set of all basis states, which have
``N_1`` particles within a subset of fermionic modes ``{S_1}``, ``N_2``
particles within another subset ``{S_2}`` and so on. There can be any number
of individual pairs ``({S_i}, N_i)`` (sectors contributing to the multisector)
as long as all subsets ``{S_i}`` are disjoint. In addition to the view
classes, there are two new utility functions
``loperator.n_fermion_multisector_size()`` and
``loperator.n_fermion_multisector_basis_states()``.
- New method ``loperator.HilbertSpace.has_algebra()``.
- New method ``loperator.SpacePartition.find_connections()``.