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).