sf.ops.Kgate¶
-
class
Kgate
(kappa)[source]¶ Bases:
strawberryfields.ops.Gate
Kerr gate.
\[K(\kappa) = e^{i \kappa \hat{n}^2}\]Warning
The Kerr gate is non-Gaussian, and thus can only be used in the Fock backends, not the Gaussian backend.
- Parameters
kappa (float) – parameter
Details and Conventions
Definition
The Kerr interaction is given by the Hamiltonian
\[H = (\hat{a}^\dagger\hat{a})^2=\hat{n}^2\]which is non-Gaussian and diagonal in the Fock basis.
We can therefore define the Kerr gate, with parameter \(\kappa\) as
\[K(\kappa) = \exp{(i\kappa\hat{n}^2)}.\]Attributes
Returns a copy of the gate with the self.dagger flag flipped.
Extra dependencies due to parameters that depend on measurements.
-
H
¶ Returns a copy of the gate with the self.dagger flag flipped.
H stands for hermitian conjugate.
- Returns
formal inverse of this gate
- Return type
Gate
-
measurement_deps
¶ Extra dependencies due to parameters that depend on measurements.
- Returns
dependencies
- Return type
set[RegRef]
-
ns
= 1¶
Methods
apply
(reg, backend, **kwargs)Ask a backend to execute the operation on the current register state right away.
decompose
(reg, **kwargs)Decompose the operation into elementary operations supported by the backend API.
merge
(other)Merge the operation with another (acting on the exact same set of subsystems).
-
apply
(reg, backend, **kwargs)¶ Ask a backend to execute the operation on the current register state right away.
Like
Operation.apply()
, but takes into account the special nature of p[0] and applies self.dagger.- Returns
Gates do not return anything, return value is None
- Return type
None
-
decompose
(reg, **kwargs)¶ Decompose the operation into elementary operations supported by the backend API.
Like
Operation.decompose()
, but applies self.dagger.
-
merge
(other)¶ Merge the operation with another (acting on the exact same set of subsystems).
Note
For subclass overrides: merge may return a newly created object, or self, or other, but it must never modify self or other because the same Operation objects may be also used elsewhere.
- Parameters
other (Operation) – operation to merge this one with
- Returns
other * self. The return value None represents the identity gate (doing nothing).
- Return type
Operation, None
- Raises
MergeFailure – if the two operations cannot be merged