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.
Description
Create function to compute
A @ B.dag()
in one operation.This will help with super operators not using super representation.
For example kraus operators:
A @ rho @ A.dag()
.For CSR operators,
CSR @ Dense
is fast, butDense @ CSR
is slow. (We have to convert one of the matrices.)However
Dense @ CSR.dag == ( CSR.conj @ Dense.T ).T
. Transposing dense array is free since we support both c and fortran ordered matrices, so we can do that operation almost as fast as the usualCSR @ Dense
operation.For
Dense @ Dense
operation, lapack matmul function supportA @ B.dag
. So the new operation allows to do the matmul without creating the temporary dag matrix.