ket.qulib.gates¶
Quantum gate construction.
Functions ket.qulib.gates
¶
|
Create a diagonal quantum gate. |
|
Uniformly controlled z-axis rotation gate. |
|
Create a quantum gate from 2x2 unitary matrix. |
- diagonal(*angles, up_to_global_phase=True)¶
Create a diagonal quantum gate.
\[U = \sum_i \theta_i \left| i \right> \left< i \right|\]- Parameters:
angles – List of rotation angles \(\theta_i\).
up_to_global_phase – If True, the resulting unitary is equivalent up to a global phase.
- ucz(angles, qubits, *, _last=True)¶
Uniformly controlled z-axis rotation gate.
Implements a uniformly controlled rotation around the z-axis, as proposed in https://arxiv.org/abs/quant-ph/0406176.
- Parameters:
angles – List of rotation angles.
qubits – List of qubits to apply the gate to.
- unitary(matrix: list[list[complex]], up_to_global_phase: bool = False) Callable[[Quant], Quant] ¶
Create a quantum gate from 2x2 unitary matrix.
The provided unitary matrix is decomposed into a sequence of rotation gates, which together implement an equivalent unitary transformation. When the gate is used in a controlled operation, the resulting unitary is equivalent up to a global phase.
- Parameters:
matrix – Unitary matrix in the format
[[a, b], [c, d]]
.up_to_global_phase – If True, the resulting unitary is equivalent up to a global phase even when the gate is not used in a controlled operation.
- Returns:
Returns a new callable that implements the unitary operation.
- Raises:
ValueError – If the input matrix is not unitary.