Functions for calculating expected values of Hermitian observables. More...
Functions | |
qreal | calcExpecFullStateDiagMatr (Qureg qureg, FullStateDiagMatr matr) |
qreal | calcExpecFullStateDiagMatrPower (Qureg qureg, FullStateDiagMatr matr, qreal exponent) |
qcomp | calcExpecNonHermitianFullStateDiagMatr (Qureg qureg, FullStateDiagMatr matr) |
qcomp | calcExpecNonHermitianFullStateDiagMatrPower (Qureg qureg, FullStateDiagMatr matrix, qcomp exponent) |
qcomp | calcExpecNonHermitianPauliStrSum (Qureg qureg, PauliStrSum sum) |
qreal | calcExpecPauliStr (Qureg qureg, PauliStr str) |
qreal | calcExpecPauliStrSum (Qureg qureg, PauliStrSum sum) |
Functions for calculating expected values of Hermitian observables.
qreal calcExpecFullStateDiagMatr | ( | Qureg | qureg, |
FullStateDiagMatr | matr ) |
Definition at line 161 of file calculations.cpp.
Referenced by TEST_CASE().
qreal calcExpecFullStateDiagMatrPower | ( | Qureg | qureg, |
FullStateDiagMatr | matr, | ||
qreal | exponent ) |
Definition at line 185 of file calculations.cpp.
Referenced by TEST_CASE().
qcomp calcExpecNonHermitianFullStateDiagMatr | ( | Qureg | qureg, |
FullStateDiagMatr | matr ) |
Definition at line 85 of file calculations.cpp.
Referenced by TEST_CASE().
qcomp calcExpecNonHermitianFullStateDiagMatrPower | ( | Qureg | qureg, |
FullStateDiagMatr | matrix, | ||
qcomp | exponent ) |
Definition at line 98 of file calculations.cpp.
Referenced by calcExpecNonHermitianFullStateDiagMatr(), and TEST_CASE().
qcomp calcExpecNonHermitianPauliStrSum | ( | Qureg | qureg, |
PauliStrSum | sum ) |
Definition at line 68 of file calculations.cpp.
Referenced by TEST_CASE().
Calculates the expectation value of the given Pauli string observable str
under the given state qureg
without modifying it.
str
.qureg
is a statevector \(\svpsi\), this function returns \[ \brapsi \pstr \svpsi \in \mathbb{R}. \]
qureg
is a density matrix \(\dmrho\), this function returns the real component of \[ \tr{ \pstr \dmrho } \]
which is exact when \(\dmrho\) is physical (specifically Hermitian).qureg
is an unnormalised density matrix, in which case the imaginary component of the above expression is neglected. The full complex value can be obtained using calcExpecNonHermitianPauliStrSum().str
is general, this function is equivalent to calling calcExpecPauliStrSum() with a PauliStrSum composed of only a single PauliStr term and a unity coefficient.str
\( = \id^\otimes \), the output is equivalent to that of calcTotalProb().[in] | qureg | the reference state. |
[in] | str | the observable operator. |
invalidQuESTInputError() |
|
Definition at line 133 of file calculations.cpp.
Referenced by TEST_CASE().
qreal calcExpecPauliStrSum | ( | Qureg | qureg, |
PauliStrSum | sum ) |
Calculates the expectation value of the given Hermitian observable sum
- a weighted sum of Pauli strings - under the given state qureg
, without modifying it.
sum
.qureg
is a statevector \(\svpsi\), this function returns \[ \brapsi \hat{H} \svpsi \in \mathbb{R}. \]
qureg
is a density matrix \(\dmrho\), this function returns the real component of \[ \tr{ \hat{H} \dmrho } \]
which is the exact expectation value when \(\dmrho\) is physical (specifically Hermitian).sum
requires that every coefficient within is real. Validation will check sum
is approximately Hermitian, i.e. that \[ |\im{c}| \le \valeps \]
for all \(c \in \)sum.coeffs
. Adjust \(\valeps\) using setValidationEpsilon().qureg
is an unnormalised density matrix. The full complex value can be obtained using calcExpecNonHermitianPauliStrSum().PauliStr
within sum
, weighting each by its corresponding coefficient, and summing the outputs.sum
contains only \(\pauliz\) and \(\id\) operators, its corresponding operator matrix is diagonal, and could be instead effected with calcExpecFullStateDiagMatr(). This may be faster when sum
contains very-many terms and operates upon all qubits of the register.[in] | qureg | the reference state. |
[in] | sum | the observable operator. |
invalidQuESTInputError() |
|
Definition at line 146 of file calculations.cpp.
Referenced by TEST_CASE().