class qctrl.dynamic.types.TargetInput(*, operator)

The desired time-evolution operator the controls implement in an ideal case. This target is a non-zero partial isometry, which means that it can be expressed in the form \(\sum_j \left|\psi_j\right>\left<\phi_j\right|\), where \(\left\{\left|\psi_j\right>\right\}\) and \(\left\{\left|\phi_j\right>\right\}\) both form (non-empty) orthonormal, but not necessarily complete, sets. Such an operator represents a target state \(\left|\psi_j\right>\) for each initial state \(\left|\phi_j\right>\). You can use this type of operator to describe full quantum gates, quantum gates on subspaces, or state transfers. For example, to describe a target quantum gate represented by a unitary matrix \(U\), where you are only interested in the behaviour of the gate on a subspace with orthogonal projection matrix \(P\) (for example the qubit subspace of a qutrit, with \(P=\left|0\right>\left<0\right|+\left|1\right>\left<1\right|\)), you can set operator to the partial isometry \(PUP\).


operator (ndarray) – The matrix that represents the target operator.