from .graph.defs cimport gint from .graph.defs import gint_dtype cdef gint _bisect(gint[:] a, gint x) cdef int _is_herm_conj(complex[:, :] a, complex[:, :] b, double atol=*, double rtol=*) except -1 cdef _select(gint[:, :] arr, gint[:] indexes) cdef int _check_onsite(complex[:, :] M, gint norbs, int check_hermiticity) except -1 cdef int _check_ham(complex[:, :] H, ham, args, params, gint a, gint a_norbs, gint b, gint b_norbs, int check_hermiticity) except -1 cdef void _get_orbs(gint[:, :] site_ranges, gint site, gint *start_orb, gint *norbs) cdef class BlockSparseMatrix: cdef public gint[:, :] block_offsets, block_shapes cdef public gint[:] data_offsets cdef public complex[:] data cdef complex* get(self, gint block_idx) cdef class _LocalOperator: cdef public int check_hermiticity, sum cdef public object syst, onsite, _onsite_param_names, _terms cdef public gint[:, :] where, _site_ranges cdef public BlockSparseMatrix _bound_onsite, _bound_hamiltonian cdef BlockSparseMatrix _eval_onsites(self, args, params) cdef BlockSparseMatrix _eval_hamiltonian(self, args, params) cdef class Density(_LocalOperator): pass cdef class Current(_LocalOperator): pass cdef class Source(_LocalOperator): pass