quri_parts.tensornetwork.circuit.gates module

class TensorNetworkQuantumGate(unitary_matrix, qubit_indices, name, backend, conjugate=False)

Bases: Node, ABC

TensorNetworkQuantumGate class is a base class that wraps Node.

Parameters:
  • unitary_matrix (npt.NDArray[np.complex128])

  • qubit_indices (Sequence[int])

  • name (str)

  • backend (str)

  • conjugate (bool)

abstract copy(conjugate=False)
Parameters:

conjugate (bool)

Return type:

TensorNetworkQuantumGate

abstract property input_qubit_edge_mapping: Mapping[int, Edge]
abstract property output_qubit_edge_mapping: Mapping[int, Edge]
class SingleQubitGate(data, qubit_indices, name, backend, conjugate=False)

Bases: TensorNetworkQuantumGate, ABC

SingleQubitGate class is a base class that facilitates one qubit gates.

Parameters:
  • data (Sequence[Sequence[complex]])

  • qubit_indices (Sequence[int])

  • name (str)

  • backend (str)

  • conjugate (bool)

property input_qubit_edge_mapping: Mapping[int, Edge]
property output_qubit_edge_mapping: Mapping[int, Edge]
class SingleQubitRotationGate(angles, qubit_indices, name, backend)

Bases: TensorNetworkQuantumGate, ABC

SingleQubitRotationGate class is a base class that facilitates single qubit rotation gates.

Parameters:
  • angles (Sequence[float])

  • qubit_indices (Sequence[int])

  • name (str)

  • backend (str)

abstract rotation(angles)
Parameters:

angles (Sequence[float])

Return type:

ndarray[Any, dtype[complex128]]

property input_qubit_edge_mapping: Mapping[int, Edge]
property output_qubit_edge_mapping: Mapping[int, Edge]
class SingleQubitPauliRotationGate(angle, qubit_indices, name, backend)

Bases: SingleQubitRotationGate, ABC

SingleQubitPauliRotationGate class is a base class that facilitates single qubit Pauli rotation gates.

Parameters:
  • angle (float)

  • qubit_indices (Sequence[int])

  • name (str)

  • backend (str)

pauli: Sequence[Sequence[complex]]
rotation(angles)
Parameters:

angles (Sequence[float])

Return type:

ndarray[Any, dtype[complex128]]

class TwoQubitGate(data, qubit_indices, name, backend, conjugate=False)

Bases: TensorNetworkQuantumGate, ABC

TwoQubitGate class is a base class that facilitates two qubit gates.

Parameters:
  • data (Sequence[Sequence[Sequence[Sequence[complex]]]])

  • qubit_indices (Sequence[int])

  • name (str)

  • backend (str)

  • conjugate (bool)

property input_qubit_edge_mapping: Mapping[int, Edge]
property output_qubit_edge_mapping: Mapping[int, Edge]
class ThreeQubitGate(data, qubit_indices, name, backend, conjugate=False)

Bases: TensorNetworkQuantumGate, ABC

ThreeQubitGate class is a base class that facilitates three qubit gates.

Parameters:
  • data (Sequence[Sequence[Sequence[Sequence[Sequence[Sequence[complex]]]]]])

  • qubit_indices (Sequence[int])

  • name (str)

  • backend (str)

  • conjugate (bool)

property input_qubit_edge_mapping: Mapping[int, Edge]
property output_qubit_edge_mapping: Mapping[int, Edge]
class I(qubit_indices, backend='numpy')

Bases: SingleQubitGate

Parameters:
  • qubit_indices (Sequence[int])

  • backend (str)

copy(_=False)
Parameters:

_ (bool)

Return type:

I

class X(qubit_indices, backend='numpy')

Bases: SingleQubitGate

Parameters:
  • qubit_indices (Sequence[int])

  • backend (str)

copy(_=False)
Parameters:

_ (bool)

Return type:

X

class Y(qubit_indices, backend='numpy', conjugate=False)

Bases: SingleQubitGate

Parameters:
  • qubit_indices (Sequence[int])

  • backend (str)

  • conjugate (bool)

copy(conjugate=False)
Parameters:

conjugate (bool)

Return type:

Y

class Z(qubit_indices, backend='numpy')

Bases: SingleQubitGate

Parameters:
  • qubit_indices (Sequence[int])

  • backend (str)

copy(_=False)
Parameters:

_ (bool)

Return type:

Z

class H(qubit_indices, backend='numpy')

Bases: SingleQubitGate

Parameters:
  • qubit_indices (Sequence[int])

  • backend (str)

copy(_=False)
Parameters:

_ (bool)

Return type:

H

class S(qubit_indices, backend='numpy', conjugate=False)

Bases: SingleQubitGate

Parameters:
  • qubit_indices (Sequence[int])

  • backend (str)

  • conjugate (bool)

copy(conjugate=False)
Parameters:

conjugate (bool)

Return type:

S

class Sdag(qubit_indices, backend='numpy', conjugate=False)

Bases: SingleQubitGate

Parameters:
  • qubit_indices (Sequence[int])

  • backend (str)

  • conjugate (bool)

copy(conjugate=False)
Parameters:

conjugate (bool)

Return type:

Sdag

class SqrtX(qubit_indices, backend='numpy', conjugate=False)

Bases: SingleQubitGate

Parameters:
  • qubit_indices (Sequence[int])

  • backend (str)

  • conjugate (bool)

copy(conjugate=False)
Parameters:

conjugate (bool)

Return type:

SqrtX

class SqrtXdag(qubit_indices, backend='numpy', conjugate=False)

Bases: SingleQubitGate

Parameters:
  • qubit_indices (Sequence[int])

  • backend (str)

  • conjugate (bool)

copy(conjugate=False)
Parameters:

conjugate (bool)

Return type:

SqrtXdag

class SqrtY(qubit_indices, backend='numpy', conjugate=False)

Bases: SingleQubitGate

Parameters:
  • qubit_indices (Sequence[int])

  • backend (str)

  • conjugate (bool)

copy(conjugate=False)
Parameters:

conjugate (bool)

Return type:

SqrtY

class SqrtYdag(qubit_indices, backend='numpy', conjugate=False)

Bases: SingleQubitGate

Parameters:
  • qubit_indices (Sequence[int])

  • backend (str)

  • conjugate (bool)

copy(conjugate=False)
Parameters:

conjugate (bool)

Return type:

SqrtYdag

class SqrtZ(qubit_indices, backend='numpy', conjugate=False)

Bases: SingleQubitGate

Parameters:
  • qubit_indices (Sequence[int])

  • backend (str)

  • conjugate (bool)

copy(conjugate=False)
Parameters:

conjugate (bool)

Return type:

SqrtZ

class SqrtZdag(qubit_indices, backend='numpy', conjugate=False)

Bases: SingleQubitGate

Parameters:
  • qubit_indices (Sequence[int])

  • backend (str)

  • conjugate (bool)

copy(conjugate=False)
Parameters:

conjugate (bool)

Return type:

SqrtZdag

class T(qubit_indices, backend='numpy', conjugate=False)

Bases: SingleQubitGate

Parameters:
  • qubit_indices (Sequence[int])

  • backend (str)

  • conjugate (bool)

copy(conjugate=False)
Parameters:

conjugate (bool)

Return type:

T

class Tdag(qubit_indices, backend='numpy', conjugate=False)

Bases: SingleQubitGate

Parameters:
  • qubit_indices (Sequence[int])

  • backend (str)

  • conjugate (bool)

copy(conjugate=False)
Parameters:

conjugate (bool)

Return type:

Tdag

class Rx(angle, qubit_indices, backend='numpy')

Bases: SingleQubitPauliRotationGate

Parameters:
  • angle (float)

  • qubit_indices (Sequence[int])

  • backend (str)

pauli: Sequence[Sequence[complex]] = [[0.0, 1.0], [1.0, 0.0]]
copy(conjugate=False)
Parameters:

conjugate (bool)

Return type:

Rx

class Ry(angle, qubit_indices, backend='numpy')

Bases: SingleQubitPauliRotationGate

Parameters:
  • angle (float)

  • qubit_indices (Sequence[int])

  • backend (str)

pauli: Sequence[Sequence[complex]] = [[0.0, 1j], [(-0-1j), 0.0]]
copy(conjugate=False)
Parameters:

conjugate (bool)

Return type:

Ry

class Rz(angle, qubit_indices, backend='numpy')

Bases: SingleQubitPauliRotationGate

Parameters:
  • angle (float)

  • qubit_indices (Sequence[int])

  • backend (str)

pauli: Sequence[Sequence[complex]] = [[1.0, 0.0], [0.0, -1.0]]
copy(conjugate=False)
Parameters:

conjugate (bool)

Return type:

Rz

class U1(angles, qubit_indices, backend='numpy')

Bases: SingleQubitRotationGate

Parameters:
  • angles (Sequence[float])

  • qubit_indices (Sequence[int])

  • backend (str)

rotation(angles)
Parameters:

angles (Sequence[float])

Return type:

ndarray[Any, dtype[complex128]]

copy(conjugate=False)
Parameters:

conjugate (bool)

Return type:

U1

class U2(angles, qubit_indices, backend='numpy')

Bases: SingleQubitRotationGate

Parameters:
  • angles (Sequence[float])

  • qubit_indices (Sequence[int])

  • backend (str)

rotation(angles)
Parameters:

angles (Sequence[float])

Return type:

ndarray[Any, dtype[complex128]]

copy(conjugate=False)
Parameters:

conjugate (bool)

Return type:

U2

class U3(angles, qubit_indices, backend='numpy')

Bases: SingleQubitRotationGate

Parameters:
  • angles (Sequence[float])

  • qubit_indices (Sequence[int])

  • backend (str)

rotation(angles)
Parameters:

angles (Sequence[float])

Return type:

ndarray[Any, dtype[complex128]]

copy(conjugate=False)
Parameters:

conjugate (bool)

Return type:

U3

class CNOT(qubit_indices, backend='numpy')

Bases: TwoQubitGate

Parameters:
  • qubit_indices (Sequence[int])

  • backend (str)

copy(_=False)
Parameters:

_ (bool)

Return type:

CNOT

class CZ(qubit_indices, backend='numpy')

Bases: TwoQubitGate

Parameters:
  • qubit_indices (Sequence[int])

  • backend (str)

copy(_=False)
Parameters:

_ (bool)

Return type:

CZ

class SWAP(qubit_indices, backend='numpy')

Bases: TwoQubitGate

Parameters:
  • qubit_indices (Sequence[int])

  • backend (str)

copy(_=False)
Parameters:

_ (bool)

Return type:

SWAP

class Toffoli(qubit_indices, backend='numpy')

Bases: ThreeQubitGate

Parameters:
  • qubit_indices (Sequence[int])

  • backend (str)

copy(_=False)
Parameters:

_ (bool)

Return type:

Toffoli