DecomposedIntoTimeStepsCA function
Namespace: Microsoft.Quantum.Canon
Package: Microsoft.Quantum.Standard
Returns an operation implementing the Trotter–Suzuki integrator for a given operation.
function DecomposedIntoTimeStepsCA<'T> ((nSteps : Int, op : ((Int, Double, 'T) => Unit is Adj + Ctl)), trotterOrder : Int) : ((Double, 'T) => Unit is Adj + Ctl)
Input
nSteps : Int
The number of operations to be decomposed into time steps.
op : (Int,Double,'T) => Unit is Adj + Ctl
An operation which accepts an index input (type Int) and a time
input (type Double) for decomposition.
trotterOrder : Int
Selects the order of the Trotter–Suzuki integrator to be used. Order 1 and even orders 2, 4, 6,... are currently supported.
Output : (Double,'T) => Unit is Adj + Ctl
Returns a unitary implementing the Trotter–Suzuki integrator, where
the first parameter Double is the integration step size, and the
second parameter is the target acted upon.
Type Parameters
'T
The type which each time step should act upon; typically, either
Qubit[] or Qubit.
Remarks
When called with order equal to 1, this function returns an operation
that can be simulated by the lowest-order Trotter–Suzuki integrator
$$
\begin{align}
S_1(\lambda) = \prod_{j = 1}^{m} e^{H_j \lambda},
\end{align}
$$
where we have followed the notation of
quant-ph/0508139
and let $\lambda$ be the evolution time (represented by the first input
of the returned operation), and have let ${H_j}_{j = 1}^{m}$ be the
set of (skew-Hermitian) dynamical generators being integrated such that
op(j, lambda, _) is simulated by the unitary operator
$e^{H_j \lambda}$.
Similarly, an order of 2 returns the second-order symmetric
Trotter–Suzuki integrator
$$
\begin{align}
S_2(\lambda) = \prod_{j = 1}^{m} e^{H_k \lambda / 2}
\prod_{j' = m}^{1} e^{H_{j'} \lambda / 2}.
\end{align}
$$
Higher even values of order are implemented using the recursive
construction of quant-ph/0508139.
References
反馈
提交和查看相关反馈