![]() |
The Quantum Exact Simulation Toolkit v4.0.0
|
Functions for applying, exponentiating or Trotterising a weigthed sum of Pauli tensors. More...
Functions | |
void | applyTrotterizedPauliStrSumGadget (Qureg qureg, PauliStrSum sum, qreal angle, int order, int reps) |
void | multiplyPauliStrSum (Qureg qureg, PauliStrSum sum, Qureg workspace) |
Functions for applying, exponentiating or Trotterising a weigthed sum of Pauli tensors.
void applyTrotterizedPauliStrSumGadget | ( | Qureg | qureg, |
PauliStrSum | sum, | ||
qreal | angle, | ||
int | order, | ||
int | reps ) |
Let \( \hat{H} = \) sum
and \( \theta = \) angle
. This function approximates the action of
\[ \exp \left(\iu \, \theta \, \hat{H} \right) \]
via a Trotter-Suzuki decomposition of the specified order
and number of repetitions (reps
).
To be precise, let \( r = \) reps
and assume sum
is composed of \( T \)-many terms of the form
\[ \hat{H} = \sum\limits_j^T c_j \, \hat{\sigma}_j \]
where \( c_j \) is the (necessarily real) coefficient of the \( j \)-th PauliStr \( \hat{\sigma}_j \).
order=1
, this function performs first-order Trotterisation, whereby \[ \exp(\iu \, \theta \, \hat{H} ) \approx \prod\limits^{r} \prod\limits_{j=1}^{T} \exp \left( \iu \, \frac{\theta \, c_j}{r} \, \hat\sigma_j \right). \]
order=2
, this function performs the lowest order "symmetrized" Suzuki decomposition, whereby \[ \exp(\iu \, \theta \, \hat{H} ) \approx \prod\limits^{r} \left[ \prod\limits_{j=1}^{T} \exp \left( \iu \frac{\theta \, c_j}{2 \, r} \hat\sigma_j \right) \prod\limits_{j=T}^{1} \exp \left( \iu \frac{\theta \, c_j}{2 \, r} \hat\sigma_j \right) \right]. \]
order
(denoted by symbol \( n \)) invoke higher-order symmetrized decompositions \( S[\theta,n,r] \). Letting \( p = \left( 4 - 4^{1/(n-1)} \right)^{-1} \), these satisfy \begin{align*} S[\theta, n, 1] &= \left( \prod\limits^2 S[p \, \theta, n-2, 1] \right) S[ (1-4p)\,\theta, n-2, 1] \left( \prod\limits^2 S[p \, \theta, n-2, 1] \right), \\ S[\theta, n, r] &= \prod\limits^{r} S\left[\frac{\theta}{r}, n, 1\right]. \end{align*}
These formulations are taken from 'Finding Exponential Product Formulas of Higher Orders', Naomichi Hatano and Masuo Suzuki (2005) (arXiv).
Definition at line 1168 of file operations.cpp.
void multiplyPauliStrSum | ( | Qureg | qureg, |
PauliStrSum | sum, | ||
Qureg | workspace ) |
Definition at line 1111 of file operations.cpp.
Referenced by TEST_CASE().