Support svdvals
, generalize norm
, and introduce tracedist
for Qobj
#102
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The original
LinearAlgebra.norm
calculates standard vector norm no matter the input array is vector or matrix. But usually we calculate Schatten p-norm for matrices (density operators), which need to first calculate the singular values before taking the standard vector norm.Summary for this PR:
LinearAlgebra.svdvals
(singular values) forQobj
LinearAlgebra.norm(A::QuantumObject, p::Real=2)
:Qobj
isKet
,Bra
,OperatorKet
, orOperatorBra
, calculate the standard vector p-normQobj
isOperator
orSuperOperator
, calculate the Schatten p-normnegativity
is related to the trace-norm (Schatten 1-norm), use the above method directly can slightly increase the efficiency.tracedist
(also relates to the trace-norm) between two givenQobj