ShiftGate
- class ShiftGate[source]
Bases:
ConstantGate
,QuditGate
The one-qudit shift (X) gate. This is a Weyl-Heisenberg gate.
This gate shifts the state of a qudit up by one level modulo. For example, the shift gate on a qubit is the Pauli-X gate. The shift gate on a qutrit is the following matrix:
The shift gate is generally given by the following formula:
where d is the number of levels (2 levels is a qubit, 3 levels is a qutrit, etc.)
References
- __init__(radix=2)[source]
Construct a ShiftGate.
- Parameters:
radix (
int
) – The number of qudit levels (>=2). Defaults to qutrits.- Raises:
ValueError – if radix < 2
Attributes
The matrix dimension for this unitary.
The name of this gate.
The number of real parameters this unitary-valued function takes.
The number of qudits this unitary can act on.
The qasm identifier for this gate.
The number of levels in each qudit.
The number of orthogonal states for each qudit.
Methods
check_env_matrix
(env_matrix)Check to ensure the env_matrix is validly shaped.
check_parameters
(params)Check parameters are valid and match the unitary.
get_grad
([params])Return the gradient for this gate.
Return the gate's inverse as a gate.
get_inverse_params
([params])Return the parameters that invert the gate.
get_qasm
(params, location)Returns the qasm string for this gate.
Returns a qasm gate definition block for this gate.
get_unitary
([params])Return the unitary for this gate, see
Unitary
for more.get_unitary_and_grad
([params])Return the unitary and gradient for this gate.
Return true if this unitary doesn't take parameters.
Return true if this unitary is parameterized.
Return true if this unitary can only act on qubits.
is_qudit_only
(radix)Return true if this unitary can only act on radix-qudits.
Return true if this unitary can only act on qutrits.
is_self_inverse
([params])Checks whether the unitary is its own inverse.
optimize
(env_matrix)Return the optimal parameters with respect to an environment matrix.
with_all_frozen_params
(params)Freeze all of a gate's parameters so they don't change from optimization.
with_frozen_params
(frozen_params)Freeze some of a gate's parameters so they don't change from optimization.