SubSwapGate
- class SubSwapGate(radix, qudit_levels)[source]
Bases:
QuditGate,CachedClassThe two-qudit subspace SWAP gate.
The subspace SWAP gate swaps between “qudit-levels” on a two-qudit gate. For example, a |01> to |20> swap would be the identity with the |01> row and |20> rows swapped.
- __init__(radix, qudit_levels)[source]
Construct a SubSwapGate.
- Parameters:
- Raises:
ValueError – if radix < 2
ValueError – If any of the qudit levels integer represenation greater than or equal to radix.
ValueError – If the qudit_levels string is not formatted correctly.
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
calculate_level_swap_expr(radix, level1, level2)Build the QGL expression for a qudit level swap.
calculate_level_swap_unitary(radix, level1, ...)Calculate the unitary for a qudit level swap.
check_parameters(params)Check parameters are valid and match the unitary.
decode_qudit_level_string(string)Decode the qudit level string into two pairs of integers.
get_grad([params])Return the gradient for the unitary map as an np.ndarray.
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.
get_unitary_and_grad([params])Return a tuple combining the outputs of get_unitary and get_grad.
Return true if this unitary doesn't take parameters.
Return true if this gate has a gradient definition.
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.
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.