Skip to content

Add multiply*FromRight() functions #641

@TysonRayJones

Description

@TysonRayJones

There are 18 existing multiply*() functions, such as multiplyPauliStrSum(), which are useful for left-multiplying operations upon a density matrix. That is, they effect

$$ \rho \rightarrow \hat{H} \rho $$

which does not capture unitary or CPTP evolution; $\hat{H}$ itself need not even be CPTP. Instead, these functions are useful for "building subexpressions" - for example, as a terribly inefficient way to compute expectation values:

$$ \langle E \rangle = \text{Tr}( \hat{H} \rho ) $$

To complement these, we should add corresponding multiply*FromRight() functions which effect

$$ \rho \rightarrow \rho \hat{H} $$

This greatly expands the utility of the multiply functions, and would permit (for example) term-wise evaluation of the commutators in the Linbladian.

Implementing these should require very little (if any) new code due to vectorisation of density matrices. In most cases, evaluation of $\rho \rightarrow \rho \hat{H}$ will be a subroutine of the existing facilities to evaluate $\rho \rightarrow \hat{H} \rho \hat{H}^\dagger$.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions