QInchworm.sector_block_matrix
QInchworm.sector_block_matrix — ModuleMatrix representation of operators acting in a many-body Hilbert space partitioned into invariant subspaces (sectors) of a Hamiltonian.
QInchworm.sector_block_matrix.SectorBlockMatrix — TypeComplex block matrix stored as a dictionary of non-vanishing blocks.
Each element of the dictionary has the form right block index => (left block index, block). A block matrix represented by this type is allowed to have at most one non-vanishing block per column.
Objects of this type support addition/subtraction, matrix multiplication and multiplication/division by a scalar.
QInchworm.sector_block_matrix.operator_to_sector_block_matrix — Functionoperator_to_sector_block_matrix(
ed::KeldyshED.EDCore,
op::KeldyshED.Operators.OperatorExpr
) -> Dict{Int64, Tuple{Int64, Matrix{ComplexF64}}}
Return the SectorBlockMatrix representation of a many-body operator op acting in the Hilbert space of the exact diagonalization problem ed.
Base.zeros — Methodzeros(
_::Type{Dict{Int64, Tuple{Int64, Matrix{ComplexF64}}}},
ed::KeldyshED.EDCore
) -> Dict{Int64, Tuple{Int64, Matrix{ComplexF64}}}
Construct a block-diagonal SectorBlockMatrix, whose block structure is consistent with the invariant subspace partition of a given exact diagonalization object ed. All matrix elements of the stored blocks are set to zero.
Base.zero — Methodzero(
A::Dict{Int64, Tuple{Int64, Matrix{ComplexF64}}}
) -> Dict{Int64, Tuple{Int64, Matrix{ComplexF64}}}
Construct a SectorBlockMatrix that shares the list of stored blocks with another matrix A but has all those blocks set to zero.
Base.fill! — Methodfill!(A::Dict{Int64, Tuple{Int64, Matrix{ComplexF64}}}, x)
Set elements of all stored blocks of a SectorBlockMatrix A to x.
LinearAlgebra.tr — Methodtr(
A::Dict{Int64, Tuple{Int64, Matrix{ComplexF64}}}
) -> ComplexF64
Trace of a SectorBlockMatrix A.
LinearAlgebra.norm — Functionnorm(
A::Dict{Int64, Tuple{Int64, Matrix{ComplexF64}}}
) -> Any
norm(
A::Dict{Int64, Tuple{Int64, Matrix{ComplexF64}}},
p::Real
) -> Any
p-norm of a SectorBlockMatrix A.
Statistics.var — Methodvar(
itr::AbstractArray{Dict{Int64, Tuple{Int64, Matrix{ComplexF64}}}};
corrected,
mean
) -> Any
Compute the sample variance of collection of SectorBlockMatrix itr.
If corrected is true, then the sum is scaled with n-1, whereas the sum is scaled with n if corrected is false where n is the number of elements in itr. A pre-computed mean may be provided.
Statistics.std — Methodstd(
itr::AbstractArray{Dict{Int64, Tuple{Int64, Matrix{ComplexF64}}}};
corrected,
mean
) -> Dict
Compute the sample standard deviation of collection itr.
If corrected is true, then the sum is scaled with n-1, whereas the sum is scaled with n if corrected is false where n is the number of elements in itr. A pre-computed mean may be provided.
Base.isapprox — Methodisapprox(
A::Dict{Int64, Tuple{Int64, Matrix{ComplexF64}}},
B::Dict{Int64, Tuple{Int64, Matrix{ComplexF64}}};
atol
) -> Bool
Inexact equality comparison of two SectorBlockMatrix objects A and B. Block structures of the objects must agree. atol specifies the absolute tolerance for the single element comparison (zero by default).