Internally Used Gate Methods

The gate classes described in the API reference possess various methods to implement the Protocols defined in the Reference of Internal Functions.

TwoQubitGate

TwoQubitGate.with_decay(decay)[source]

Creates a copy of the gate with a new decay strength.

Parameters:

decay (float) – New decay strength \(\gamma/\Omega_0\).

Returns:

A copy of the gate object with the new decay strength.

Return type:

Self

TwoQubitGate.dim()[source]

Hilbert space dimension.

Returns:

4

Return type:

int

TwoQubitGate.hamiltonian_functions_for_basis_states()[source]

The full gate Hamiltonian can be split into distinct blocks that describe the time evolution of basis states. The number of blocks and their dimensionality depends on the interaction strengths.

Returns:

Tuple of Hamiltonian functions.

Return type:

tuple[TypeAliasForwardRef(‘HamiltonianFunction’), …]

TwoQubitGate.rydberg_population_operators_for_basis_states()[source]

For each basis state, the Rydberg population operators count the number of Rydberg excitations on the diagonal.

Returns:

Tuple of operators.

Return type:

tuple[Array, …]

TwoQubitGate.initial_basis_states()[source]

The initial basis states \((1, 0, ...)\) of appropriate dimension are provided.

Returns:

Tuple of arrays.

Return type:

tuple[Array, …]

TwoQubitGate.rydberg_time(expectation_values_of_basis_states)[source]

Given the expectation values of Rydberg populations for each basis state, integrated over the full pulse, this function calculates the average time spent in Rydberg states during the gate.

Parameters:

expectation_values_of_basis_states (tuple[Array, ...]) – Expected Rydberg times for each basis state.

Returns:

Averaged Rydberg time \(T_R\).

Return type:

Array

TwoQubitGateAsym

TwoQubitGateAsym.with_decay(decay)[source]

Creates a copy of the gate with a new decay strength.

Parameters:

decay (float) – New decay strength \(\gamma/\Omega_0\).

Returns:

A copy of the gate object with the new decay strength.

Return type:

Self

TwoQubitGateAsym.dim()[source]

Hilbert space dimension.

Returns:

4

Return type:

int

TwoQubitGateAsym.hamiltonian_functions_for_basis_states()[source]

The full gate Hamiltonian can be split into distinct blocks that describe the time evolution of basis states.

Returns:

Tuple of Hamiltonian functions.

Return type:

tuple[TypeAliasForwardRef(‘HamiltonianFunction’), …]

TwoQubitGateAsym.rydberg_population_operators_for_basis_states()[source]

For each basis state, the Rydberg population operators count the number of Rydberg excitations on the diagonal.

Returns:

Tuple of operators.

Return type:

tuple[Array, …]

TwoQubitGateAsym.initial_basis_states()[source]

The initial basis states \((1, 0, ...)\) of appropriate dimension are provided.

Returns:

Tuple of arrays.

Return type:

tuple[Array, …]

TwoQubitGateAsym.rydberg_time(expectation_values_of_basis_states)[source]

Given the expectation values of Rydberg populations for each basis state, integrated over the full pulse, this function calculates the average time spent in Rydberg states during the gate.

Parameters:

expectation_values_of_basis_states (tuple[Array, ...]) – Expected Rydberg times for each basis state.

Returns:

Averaged Rydberg time \(T_R\).

Return type:

Array

ThreeQubitGateIsosceles

ThreeQubitGateIsosceles.with_decay(decay)[source]

Creates a copy of the gate with a new decay strength.

Parameters:

decay (float) – New decay strength \(\gamma/\Omega_0\).

Returns:

A copy of the gate object with the new decay strength.

Return type:

Self

ThreeQubitGateIsosceles.dim()[source]

Hilbert space dimension.

Returns:

8

Return type:

int

ThreeQubitGateIsosceles.hamiltonian_functions_for_basis_states()[source]

The full gate Hamiltonian can be split into distinct blocks that describe the time evolution of basis states. The number of blocks and their dimensionality depends on the interaction strengths.

Returns:

Tuple of Hamiltonian functions.

Return type:

tuple[TypeAliasForwardRef(‘HamiltonianFunction’), …]

ThreeQubitGateIsosceles.rydberg_population_operators_for_basis_states()[source]

For each basis state, the Rydberg population operators count the number of Rydberg excitations on the diagonal.

Returns:

Tuple of operators.

Return type:

tuple[Array, …]

ThreeQubitGateIsosceles.initial_basis_states()[source]

The initial basis states \((1, 0, ...)\) of appropriate dimension are provided.

Returns:

Tuple of arrays.

Return type:

tuple[Array, …]

ThreeQubitGateIsosceles.rydberg_time(expectation_values_of_basis_states)[source]

Given the expectation values of Rydberg populations for each basis state, integrated over the full pulse, this function calculates the average time spent in Rydberg states during the gate.

Parameters:

expectation_values_of_basis_states (tuple[Array, ...]) – Expected Rydberg times for each basis state.

Returns:

Averaged Rydberg time \(T_R\).

Return type:

Array

ThreeQubitGateAsym

ThreeQubitGateAsym.with_decay(decay)[source]

Creates a copy of the gate with a new decay strength.

Parameters:

decay (float) – New decay strength \(\gamma/\Omega_0\).

Returns:

A copy of the gate object with the new decay strength.

Return type:

Self

ThreeQubitGateAsym.dim()[source]

Hilbert space dimension.

Returns:

8

Return type:

int

ThreeQubitGateAsym.hamiltonian_functions_for_basis_states()[source]

The full gate Hamiltonian can be split into distinct blocks that describe the time evolution of basis states.

Returns:

Tuple of Hamiltonian functions.

Return type:

tuple[TypeAliasForwardRef(‘HamiltonianFunction’), …]

ThreeQubitGateAsym.rydberg_population_operators_for_basis_states()[source]

For each basis state, the Rydberg population operators count the number of Rydberg excitations on the diagonal.

Returns:

Tuple of operators.

Return type:

tuple[Array, …]

ThreeQubitGateAsym.initial_basis_states()[source]

The initial basis states \((1, 0, ...)\) of appropriate dimension are provided.

Returns:

Tuple of arrays.

Return type:

tuple[Array, …]

ThreeQubitGateAsym.rydberg_time(expectation_values_of_basis_states)[source]

Given the expectation values of Rydberg populations for each basis state, integrated over the full pulse, this function calculates the average time spent in Rydberg states during the gate.

Parameters:

expectation_values_of_basis_states (tuple[Array, ...]) – Expected Rydberg times for each basis state.

Returns:

Averaged Rydberg time \(T_R\).

Return type:

Array

FourQubitGatePyramidal

FourQubitGatePyramidal.with_decay(decay)[source]

Creates a copy of the gate with a new decay strength.

Parameters:

decay (float) – New decay strength \(\gamma/\Omega_0\).

Returns:

A copy of the gate object with the new decay strength.

Return type:

Self

FourQubitGatePyramidal.dim()[source]

Hilbert space dimension.

Returns:

16

Return type:

int

FourQubitGatePyramidal.hamiltonian_functions_for_basis_states()[source]

The full gate Hamiltonian can be split into distinct blocks that describe the time evolution of basis states. The number of blocks and their dimensionality depends on the interaction strengths.

Returns:

Tuple of Hamiltonian functions.

Return type:

tuple[TypeAliasForwardRef(‘HamiltonianFunction’), …]

FourQubitGatePyramidal.rydberg_population_operators_for_basis_states()[source]

For each basis state, the Rydberg population operators count the number of Rydberg excitations on the diagonal.

Returns:

Tuple of operators.

Return type:

tuple[Array, …]

FourQubitGatePyramidal.initial_basis_states()[source]

The initial basis states \((1, 0, ...)\) of appropriate dimension are provided.

Returns:

Tuple of arrays.

Return type:

tuple[Array, …]

FourQubitGatePyramidal.rydberg_time(expectation_values_of_basis_states)[source]

Given the expectation values of Rydberg populations for each basis state, integrated over the full pulse, this function calculates the average time spent in Rydberg states during the gate.

Parameters:

expectation_values_of_basis_states (tuple[Array, ...]) – Expected Rydberg times for each basis state.

Returns:

Averaged Rydberg time \(T_R\).

Return type:

Array

FourQubitGateAsym

FourQubitGateAsym.with_decay(decay)[source]

Creates a copy of the gate with a new decay strength.

Parameters:

decay (float) – New decay strength \(\gamma/\Omega_0\).

Returns:

A copy of the gate object with the new decay strength.

Return type:

Self

FourQubitGateAsym.dim()[source]

Hilbert space dimension.

Returns:

16

Return type:

int

FourQubitGateAsym.hamiltonian_functions_for_basis_states()[source]

The full gate Hamiltonian can be split into distinct blocks that describe the time evolution of basis states.

Returns:

Tuple of Hamiltonian functions.

Return type:

tuple[TypeAliasForwardRef(‘HamiltonianFunction’), …]

FourQubitGateAsym.rydberg_population_operators_for_basis_states()[source]

For each basis state, the Rydberg population operators count the number of Rydberg excitations on the diagonal.

Returns:

Tuple of operators.

Return type:

tuple[Array, …]

FourQubitGateAsym.initial_basis_states()[source]

The initial basis states \((1, 0, ...)\) of appropriate dimension are provided.

Returns:

Tuple of arrays.

Return type:

tuple[Array, …]

FourQubitGateAsym.rydberg_time(expectation_values_of_basis_states)[source]

Given the expectation values of Rydberg populations for each basis state, integrated over the full pulse, this function calculates the average time spent in Rydberg states during the gate.

Parameters:

expectation_values_of_basis_states (tuple[Array, ...]) – Expected Rydberg times for each basis state.

Returns:

Averaged Rydberg time \(T_R\).

Return type:

Array