Base Class

class arline_quantum.gates.gate.Gate(*args)

Bases: object

An abstract quantum gate class

angles(representation='rational')

Convert args into list of strings.

args

Get new args

Returns:gate args
Return type:list
static args_to_str(*args)

Describes how the gate paramaters will be shown.

calculate_u(args)

Calculate matrix

conjugate()

Produce conjugated gate

Returns:new dagger gate
Return type:Gate
static format_args(*args, representation='rational')

Convert args into list of strings.

graph_symbols = None

List of pseudo graph symbols

is_discrete = None

Flag for discrete or continuous

classmethod make_discrete(*args, class_name=None)
num_qubits = None

The number of qubits the gate acts on

to_qasm(*args)

Describes how the gate will be shown in OPENQASM format.

static to_qiskit_name()

Convert to Qiskit gate name.

u

Get gate unitary matrix

Returns:gate unitary matrix
Return type:np.array

Identity Gate

Inheritance diagram of arline_quantum.gates.identity
class arline_quantum.gates.identity.I(*args)

Bases: arline_quantum.gates.gate.Gate

Name:
Identity Gate

Description:

Other names:
\(I\), Idle

Matrix:

\[\begin{split}\begin{bmatrix} 1 & 0\\ 0 & 1 \end{bmatrix}\end{split}\]
Inverse:
\(I^\dagger = I\)
angles(representation='rational')

Convert args into list of strings.

args

Get new args

Returns:gate args
Return type:list
static args_to_str(*args)

Describes how the gate paramaters will be shown.

calculate_u(args)

Calculate matrix

conjugate()

Produce conjugated gate

Returns:new dagger gate
Return type:Gate
static format_args(*args, representation='rational')

Convert args into list of strings.

graph_symbols = ['I']

List of pseudo graph symbols

is_discrete = True

Flag for discrete or continuous

classmethod make_discrete(*args, class_name=None)
num_qubits = 1

The number of qubits the gate acts on

to_qasm()

Describes how the gate will be shown in OPENQASM format

static to_qiskit_name()

Convert to Qiskit gate name

u

Get gate unitary matrix

Returns:gate unitary matrix
Return type:np.array

U Gates

Inheritance diagram of arline_quantum.gates.u1
class arline_quantum.gates.u1.U1(*args)

Bases: arline_quantum.gates.gate.Gate

Name:
\(U_{1}\left(\lambda\right)\) Gate

Description:

The \(U_{1}\left(\lambda\right)\) gate is a single-qubit rotation over \(\lambda\) (radians) angle

Matrix:

\[\begin{split}\begin{bmatrix} 1 & 0 \\ 0 & \exp(i\lambda) \end{bmatrix}\end{split}\]
Parameters:lambda (float) – angle in radians
angles(representation='rational')

Convert args into list of strings.

args

Get new args

Returns:gate args
Return type:list
static args_to_str(*args)

Describes how the gate paramaters will be shown.

calculate_u(args)

Calculate matrix

conjugate()

Produce conjugated gate

Returns:new dagger gate
Return type:Gate
static format_args(*args, representation='rational')

Convert args into list of strings.

graph_symbols = ['U1']

List of pseudo graph symbols

is_discrete = False

Flag for discrete or continuous

classmethod make_discrete(*args, class_name=None)
num_qubits = 1

The number of qubits the gate acts on

to_qasm()

Describes how the gate will be shown in OPENQASM format

static to_qiskit_name()

Convert to Qiskit gate name

u

Get gate unitary matrix

Returns:gate unitary matrix
Return type:np.array
Inheritance diagram of arline_quantum.gates.u2
class arline_quantum.gates.u2.U2(*args)

Bases: arline_quantum.gates.gate.Gate

Name:
\(U_{2}\left(\phi, \lambda\right)\) Gate

Description:

The \(U_{2}\left(\phi, \lambda\right)\) gate is a single-qubit rotation through \(\phi\) (radians) around \(\lambda\) (radians) around

Matrix:

\[\begin{split}\begin{bmatrix} 1 / \sqrt(2) & -\exp(i * \lambda) * 1 / \sqrt(2) \\ \exp(i * \phi) * 1 / \sqrt(2) & \exp(i * (\phi + \lambda)) * 1 / \sqrt(2) \end{bmatrix}\end{split}\]
Parameters:
  • phi (float) – angle in radians
  • lambda (float) – angle in radians
angles(representation='rational')

Convert args into list of strings.

args

Get new args

Returns:gate args
Return type:list
static args_to_str(*args)

Describes how the gate paramaters will be shown.

calculate_u(args)

Calculate matrix

conjugate()

Produce conjugated gate

Returns:new dagger gate
Return type:Gate
static format_args(*args, representation='rational')

Convert args into list of strings.

graph_symbols = ['U2']

List of pseudo graph symbols

is_discrete = False

Flag for discrete or continuous

classmethod make_discrete(*args, class_name=None)
num_qubits = 1

The number of qubits the gate acts on

to_qasm()

Describes how the gate will be shown in OPENQASM format

static to_qiskit_name()

Convert to Qiskit gate name

u

Get gate unitary matrix

Returns:gate unitary matrix
Return type:np.array
Inheritance diagram of arline_quantum.gates.u3
class arline_quantum.gates.u3.U3(*args)

Bases: arline_quantum.gates.gate.Gate

Name:
\(U_{3}\left(\theta, \phi, \lambda\right)\) Gate

Description:

The \(U_{3}\left(\theta, \phi, \lambda\right)\) gate is a single-qubit rotation through \(\theta\) (radians) around \(\phi\) (radians) around \(\lambda\) (radians) around

Matrix:

\[\begin{split}\begin{bmatrix} \cos(\theta / 2) & -exp(i * \lambda) * \sin(\theta / 2) \\ \exp(i * \phi) * \sin(\theta / 2) & \exp(i * (\phi + \lambda)) * \cos(\theta / 2) \end{bmatrix}\end{split}\]
Parameters:
  • theta (float) – angle in radians
  • phi (float) – angle in radians
  • lambda (float) – angle in radians
angles(representation='rational')

Convert args into list of strings.

args

Get new args

Returns:gate args
Return type:list
static args_to_str(*args)

Describes how the gate paramaters will be shown.

calculate_u(args)

Calculate matrix

conjugate()

Produce conjugated gate

Returns:new dagger gate
Return type:Gate
static format_args(*args, representation='rational')

Convert args into list of strings.

graph_symbols = ['U3']

List of pseudo graph symbols

is_discrete = False

Flag for discrete or continuous

classmethod make_discrete(*args, class_name=None)
num_qubits = 1

The number of qubits the gate acts on

to_qasm()

Describes how the gate will be shown in OPENQASM format

static to_qiskit_name()

Convert to Qiskit gate name

u

Get gate unitary matrix

Returns:gate unitary matrix
Return type:np.array

Standard Rotation

Inheritance diagram of arline_quantum.gates.rx
class arline_quantum.gates.rx.Rx(*args)

Bases: arline_quantum.gates.gate.Gate

Name:
\(R_X\left(\theta\right)\) Gate

Description:

The \(R_X(\theta)\) gate is a single-qubit rotation through angle \(\theta\) (radians) around the x-axis

Matrix:

\[\begin{split}\begin{bmatrix} \cos(\theta/2) & -i \sin(\theta/2) \\ -i \sin(\theta/2) & \cos(\theta/2) \end{bmatrix}\end{split}\]
Parameters:theta (float) – angle in radians
angles(representation='rational')

Convert args into list of strings.

args

Get new args

Returns:gate args
Return type:list
static args_to_str(*args)

Describes how the gate paramaters will be shown.

calculate_u(args)

Calculate matrix

conjugate()

Produce conjugated gate

Returns:new dagger gate
Return type:Gate
static format_args(*args, representation='rational')

Convert args into list of strings.

graph_symbols = ['RX']

List of pseudo graph symbols

is_discrete = False

Flag for discrete or continuous

classmethod make_discrete(*args, class_name=None)
num_qubits = 1

The number of qubits the gate acts on

to_qasm()

Describes how the gate will be shown in OPENQASM format

static to_qiskit_name()

Convert to Qiskit gate name

u

Get gate unitary matrix

Returns:gate unitary matrix
Return type:np.array
Inheritance diagram of arline_quantum.gates.ry
class arline_quantum.gates.ry.Ry(*args)

Bases: arline_quantum.gates.gate.Gate

Name:
\(R_Y\left(\theta\right)\) Gate

Description:

The \(R_Y(\theta)\) gate is a single-qubit rotation through angle \(\theta\) (radians) around the y-axis

Matrix:

\[\begin{split}\begin{bmatrix} \cos(\theta/2) & -\sin(\theta/2) \\ \sin(\theta/2) & \cos(\theta/2) \end{bmatrix}\end{split}\]
Parameters:theta (float) – angle in radians
angles(representation='rational')

Convert args into list of strings.

args

Get new args

Returns:gate args
Return type:list
static args_to_str(*args)

Describes how the gate paramaters will be shown.

calculate_u(args)

Calculate matrix

conjugate()

Produce conjugated gate

Returns:new dagger gate
Return type:Gate
static format_args(*args, representation='rational')

Convert args into list of strings.

graph_symbols = ['RY']

List of pseudo graph symbols

is_discrete = False

Flag for discrete or continuous

is_qasm_composite = False
classmethod make_discrete(*args, class_name=None)
num_qubits = 1

The number of qubits the gate acts on

to_qasm()

Describes how the gate will be shown in OPENQASM format

static to_qiskit_name()

Convert to Qiskit gate name

u

Get gate unitary matrix

Returns:gate unitary matrix
Return type:np.array
Inheritance diagram of arline_quantum.gates.rz
class arline_quantum.gates.rz.Rz(*args)

Bases: arline_quantum.gates.gate.Gate

Name:
\(R_Z\left(\phi\right)\) Gate

Description:

The \(R_Z(\phi)\) gate is a single-qubit rotation through angle \(\phi\) (radians) around the z-axis

Matrix:

\[\begin{split}\begin{bmatrix} 1 & 0 \\ 0 & \exp\left(i \cdot \phi \right) \end{bmatrix}\end{split}\]
Parameters:phi (float) – angle in radians
angles(representation='rational')

Convert args into list of strings.

args

Get new args

Returns:gate args
Return type:list
static args_to_str(*args)

Describes how the gate paramaters will be shown.

calculate_u(args)

Calculate matrix

conjugate()

Produce conjugated gate

Returns:new dagger gate
Return type:Gate
static format_args(*args, representation='rational')

Convert args into list of strings.

graph_symbols = ['RZ']

List of pseudo graph symbols

is_discrete = False

Flag for discrete or continuous

classmethod make_discrete(*args, class_name=None)
num_qubits = 1

The number of qubits the gate acts on

to_qasm()

Describes how the gate will be shown in OPENQASM format

static to_qiskit_name()

Convert to Qiskit gate name

u

Get gate unitary matrix

Returns:gate unitary matrix
Return type:np.array
Inheritance diagram of arline_quantum.gates.r
class arline_quantum.gates.r.R(*args)

Bases: arline_quantum.gates.gate.Gate

Name:
\(R\left(\theta, \phi\right)\) Gate

Description:

\[R(\theta, 0) = R_X(\theta), R(\theta, \pi/2) = R_Y(\theta)\]

Matrix:

\[\begin{split}\begin{bmatrix} \cos(\theta/2) & -i \cdot e^{-i \phi} \cdot \sin(\theta/2)\\ -i \cdot e^{i \phi} \cdot \sin(\theta/2) & \cos(\theta/2) \end{bmatrix}\end{split}\]
Parameters:
  • theta (float) – angle in radians
  • phi (float) – angle in radians
angles(representation='rational')

Convert args into list of strings.

args

Get new args

Returns:gate args
Return type:list
static args_to_str(*args)

Describes how the gate paramaters will be shown.

calculate_u(args)

Calculate matrix

conjugate()

Produce conjugated gate

Returns:new dagger gate
Return type:Gate
static format_args(*args, representation='rational')

Convert args into list of strings.

graph_symbols = ['R']

List of pseudo graph symbols

is_discrete = False

Flag for discrete or continuous

classmethod make_discrete(*args, class_name=None)
num_qubits = 1

The number of qubits the gate acts on

to_qasm()

Describes how the gate will be shown in OPENQASM format

static to_qiskit_name()

Convert to Qiskit gate name

u

Get gate unitary matrix

Returns:gate unitary matrix
Return type:np.array

Clifford and T

Inheritance diagram of arline_quantum.gates.cnot
class arline_quantum.gates.cnot.Cnot(*args)

Bases: arline_quantum.gates.gate.Gate

Name:
\(CNOT\) Gate

Description:

Controlled discrete two-qubit gate

Other names:
\(CX\), Controlled \(X\)

Matrix:

This matrix representation corresponds to [target_qubit, control_qubit]
\[\begin{split}\begin{bmatrix} 1 & 0 & 0 & 0\\ 0 & 1 & 0 & 0\\ 0 & 0 & 0 & 1\\ 0 & 0 & 1 & 0 \end{bmatrix}\end{split}\]
Inverse:
\(CNOT^\dagger = CNOT\)
angles(representation='rational')

Convert args into list of strings.

args

Get new args

Returns:gate args
Return type:list
static args_to_str(*args)

Describes how the gate paramaters will be shown.

calculate_u(args)

Calculate matrix

conjugate()

Produce conjugated gate

Returns:new dagger gate
Return type:Gate
static format_args(*args, representation='rational')

Convert args into list of strings.

graph_symbols = ['.', 'X']

List of pseudo graph symbols

is_discrete = True

Flag for discrete or continuous

classmethod make_discrete(*args, class_name=None)
num_qubits = 2

The number of qubits the gate acts on

to_qasm()

Describes how the gate will be shown in OPENQASM format

static to_qiskit_name()

Convert to Qiskit gate name

u

Get gate unitary matrix

Returns:gate unitary matrix
Return type:np.array
Inheritance diagram of arline_quantum.gates.s
class arline_quantum.gates.s.S(*args)

Bases: arline_quantum.gates.gate.Gate

Name:
\(S\) Gate

Description:

Other names:
Phase, \(pi/4\)

Matrix:

\[\begin{split}\begin{bmatrix} 1 & 0\\ 0 & i \end{bmatrix}\end{split}\]
angles(representation='rational')

Convert args into list of strings.

args

Get new args

Returns:gate args
Return type:list
static args_to_str(*args)

Describes how the gate paramaters will be shown.

calculate_u(args)

Calculate matrix

conjugate()

Produce conjugated gate

Returns:new dagger gate
Return type:Gate
static format_args(*args, representation='rational')

Convert args into list of strings.

graph_symbols = ['S']

List of pseudo graph symbols

is_discrete = True

Flag for discrete or continuous

classmethod make_discrete(*args, class_name=None)
num_qubits = 1

The number of qubits the gate acts on

to_qasm()

Describes how the gate will be shown in OPENQASM format.

static to_qiskit_name()

Convert to Qiskit gate name.

u

Get gate unitary matrix

Returns:gate unitary matrix
Return type:np.array
class arline_quantum.gates.s.Sd(*args)

Bases: arline_quantum.gates.s.S

\(S^\dagger\) gate

angles(representation='rational')

Convert args into list of strings.

args

Get new args

Returns:gate args
Return type:list
static args_to_str(*args)

Describes how the gate paramaters will be shown.

calculate_u(args)

Calculate matrix

conjugate()

Produce conjugated gate

Returns:new dagger gate
Return type:Gate
static format_args(*args, representation='rational')

Convert args into list of strings.

graph_symbols = ['Sd']

List of pseudo graph symbols

is_discrete = True
classmethod make_discrete(*args, class_name=None)
num_qubits = 1
to_qasm()

Describes how the gate will be shown in OPENQASM format

static to_qiskit_name()

Convert to Qiskit gate name

u

Get gate unitary matrix

Returns:gate unitary matrix
Return type:np.array
Inheritance diagram of arline_quantum.gates.h
class arline_quantum.gates.h.H(*args)

Bases: arline_quantum.gates.gate.Gate

Name:
\(H\) Gate

Description:

Other names:
Hadamard

Matrix:

\[\begin{split}1/ \sqrt(2) \cdot \begin{bmatrix} 1 & 1\\ 1 & -1 \end{bmatrix}\end{split}\]
Inverse:
\(H^\dagger = H\)
angles(representation='rational')

Convert args into list of strings.

args

Get new args

Returns:gate args
Return type:list
static args_to_str(*args)

Describes how the gate paramaters will be shown.

calculate_u(args)

Calculate matrix

conjugate()

Produce conjugated gate

Returns:new dagger gate
Return type:Gate
static format_args(*args, representation='rational')

Convert args into list of strings.

graph_symbols = ['H']

List of pseudo graph symbols

is_discrete = True

Flag for discrete or continuous

classmethod make_discrete(*args, class_name=None)
num_qubits = 1

The number of qubits the gate acts on

to_qasm()

Describes how the gate will be shown in OPENQASM format

static to_qiskit_name()

Convert to Qiskit gate name

u

Get gate unitary matrix

Returns:gate unitary matrix
Return type:np.array
Inheritance diagram of arline_quantum.gates.t
class arline_quantum.gates.t.T(*args)

Bases: arline_quantum.gates.gate.Gate

Name:
\(T\) Gate

Description:

The \(T\) gate is related to the \(S\) gate by the relationship \(S = T^2\)

Matrix:

\[\begin{split}\begin{bmatrix} 1 & 0\\ 0 & \exp\left(\frac{i \pi}{4}\right) \end{bmatrix}\end{split}\]
angles(representation='rational')

Convert args into list of strings.

args

Get new args

Returns:gate args
Return type:list
static args_to_str(*args)

Describes how the gate paramaters will be shown.

calculate_u(args)

Calculate matrix

conjugate()

Produce conjugated gate

Returns:new dagger gate
Return type:Gate
static format_args(*args, representation='rational')

Convert args into list of strings.

graph_symbols = ['T']

List of pseudo graph symbols

is_discrete = True

Flag for discrete or continuous

classmethod make_discrete(*args, class_name=None)
num_qubits = 1

The number of qubits the gate acts on

to_qasm()

Describes how the gate will be shown in OPENQASM format.

static to_qiskit_name()

Convert to Qiskit gate name.

u

Get gate unitary matrix

Returns:gate unitary matrix
Return type:np.array
class arline_quantum.gates.t.Td(*args)

Bases: arline_quantum.gates.t.T

\(T^\dagger\) gate

angles(representation='rational')

Convert args into list of strings.

args

Get new args

Returns:gate args
Return type:list
static args_to_str(*args)

Describes how the gate paramaters will be shown.

calculate_u(args)

Calculate matrix

conjugate()

Produce conjugated gate

Returns:new dagger gate
Return type:Gate
static format_args(*args, representation='rational')

Convert args into list of strings.

graph_symbols = ['Td']

List of pseudo graph symbols

is_discrete = True
classmethod make_discrete(*args, class_name=None)
num_qubits = 1
to_qasm()

Describes how the gate will be shown in OPENQASM format

static to_qiskit_name()

Convert to Qiskit gate name

u

Get gate unitary matrix

Returns:gate unitary matrix
Return type:np.array

Control Gates

Inheritance diagram of arline_quantum.gates.cy
class arline_quantum.gates.cy.Cy(*args)

Bases: arline_quantum.gates.gate.Gate

Name:
\(CY\) Gate

Description:

Controlled discrete two-qubit gate

Other names:
Controlled \(Y\)

Matrix:

This matrix representation corresponds to [target_qubit, control_qubit]

\[\begin{split}\begin{bmatrix} 1 & 0 & 0 & 0\\ 0 & 1 & 0 & 0\\ 0 & 0 & 0 & -i\\ 0 & 0 & i & 0 \end{bmatrix}\end{split}\]
Inverse:
\(CY^\dagger = CY\)
angles(representation='rational')

Convert args into list of strings.

args

Get new args

Returns:gate args
Return type:list
static args_to_str(*args)

Describes how the gate paramaters will be shown.

calculate_u(args)

Calculate matrix

conjugate()

Produce conjugated gate

Returns:new dagger gate
Return type:Gate
static format_args(*args, representation='rational')

Convert args into list of strings.

graph_symbols = ['.', 'Y']

List of pseudo graph symbols

is_discrete = True

Flag for discrete or continuous

classmethod make_discrete(*args, class_name=None)
num_qubits = 2

The number of qubits the gate acts on

to_qasm()

Describes how the gate will be shown in OPENQASM format

static to_qiskit_name()

Convert to Qiskit gate name

u

Get gate unitary matrix

Returns:gate unitary matrix
Return type:np.array
Inheritance diagram of arline_quantum.gates.cz
class arline_quantum.gates.cz.Cz(*args)

Bases: arline_quantum.gates.gate.Gate

Name:
\(CZ\) Gate

Description:

Controlled discrete two-qubit gate

Other names:
Controlled \(Z\)

Matrix:

his matrix representation corresponds to [target_qubit, control_qubit]

\[\begin{split}\begin{bmatrix} 1 & 0 & 0 & 0\\ 0 & 1 & 0 & 0\\ 0 & 0 & 1 & 0\\ 0 & 0 & 0 & -1 \end{bmatrix}\end{split}\]
Inverse:
\(CZ^\dagger = CZ\)
angles(representation='rational')

Convert args into list of strings.

args

Get new args

Returns:gate args
Return type:list
static args_to_str(*args)

Describes how the gate paramaters will be shown.

calculate_u(args)

Calculate matrix

conjugate()

Produce conjugated gate

Returns:new dagger gate
Return type:Gate
static format_args(*args, representation='rational')

Convert args into list of strings.

graph_symbols = ['.', 'Z']

List of pseudo graph symbols

is_discrete = True

Flag for discrete or continuous

classmethod make_discrete(*args, class_name=None)
num_qubits = 2

The number of qubits the gate acts on

to_qasm()

Describes how the gate will be shown in OPENQASM format

static to_qiskit_name()

Convert to Qiskit gate name

u

Get gate unitary matrix

Returns:gate unitary matrix
Return type:np.array
Inheritance diagram of arline_quantum.gates.ch
class arline_quantum.gates.ch.Ch(*args)

Bases: arline_quantum.gates.gate.Gate

Name:
\(CH\) Gate

Description:

Controlled discrete two-qubit gate

Other names:
Controlled \(H\)

Matrix:

This matrix representation corresponds to [target_qubit, control_qubit]
\[\begin{split}\begin{bmatrix} 1 & 0 & 0 & 0\\ 0 & 1 & 0 & 0\\ 0 & 0 & 1/ \sqrt(2) & 1/ \sqrt(2)\\ 0 & 0 & 1/ \sqrt(2) & -1/ \sqrt(2) \end{bmatrix}\end{split}\]
Inverse:
\(СH^\dagger = СH\)
angles(representation='rational')

Convert args into list of strings.

args

Get new args

Returns:gate args
Return type:list
static args_to_str(*args)

Describes how the gate paramaters will be shown.

calculate_u(args)

Calculate matrix

conjugate()

Produce conjugated gate

Returns:new dagger gate
Return type:Gate
static format_args(*args, representation='rational')

Convert args into list of strings.

graph_symbols = ['.', 'H']

List of pseudo graph symbols

is_discrete = True

Flag for discrete or continuous

classmethod make_discrete(*args, class_name=None)
num_qubits = 2

The number of qubits the gate acts on

to_qasm()

Describes how the gate will be shown in OPENQASM format

static to_qiskit_name()

Convert to Qiskit gate name

u

Get gate unitary matrix

Returns:gate unitary matrix
Return type:np.array
Inheritance diagram of arline_quantum.gates.cu1
class arline_quantum.gates.cu1.Cu1(*args)

Bases: arline_quantum.gates.gate.Gate

Name:
\(CU_{1}\left(\lambda\right)\) Gate

Description:

The \(CU_{1}\left(\lambda\right)\) gate is a controlled \(U_1\) rotation with 1 angle \(\lambda\) (radians)

Other names:
Controlled \(U_1\) gate

Matrix:

This matrix representation corresponds to [target_qubit, control_qubit]

\[\begin{split}\begin{bmatrix} 1 & 0 & 0 & 0\\ 0 & 1 & 0 & 0\\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & \exp(i\lambda) \end{bmatrix}\end{split}\]
Parameters:lambda (float) – angle in radians
angles(representation='rational')

Convert args into list of strings.

args

Get new args

Returns:gate args
Return type:list
static args_to_str(*args)

Describes how the gate paramaters will be shown.

calculate_u(args)

Calculate matrix

conjugate()

Produce conjugated gate

Returns:new dagger gate
Return type:Gate
static format_args(*args, representation='rational')

Convert args into list of strings.

graph_symbols = ['.', 'U1']

List of pseudo graph symbols

is_discrete = False

Flag for discrete or continuous

classmethod make_discrete(*args, class_name=None)
num_qubits = 2

The number of qubits the gate acts on

to_qasm()

Describes how the gate will be shown in OPENQASM format

static to_qiskit_name()

Convert to Qiskit gate name

u

Get gate unitary matrix

Returns:gate unitary matrix
Return type:np.array
Inheritance diagram of arline_quantum.gates.cu3
class arline_quantum.gates.cu3.Cu3(*args)

Bases: arline_quantum.gates.gate.Gate

Name:
\(CU_{3}\left(\theta, \phi, \lambda\right)\) Gate

Description:

Controlled continuous two-qubit gate

The \(CU_{3}\left(\theta, \phi, \lambda\right)\) gate is a controlled \(U_3\) rotation with 3 Euler angles \(\theta, \phi, \lambda\) (radians)

Other names:
Controlled \(U_3\) gate

Matrix:

This matrix representation corresponds to [target_qubit, control_qubit]

\[\begin{split}\begin{bmatrix} 1 & 0 & 0 & 0\\ 0 & 1 & 0 & 0\\ 0 & 0 & \cos(\theta/2) & - \exp(i \lambda) \sin(\theta/2) \\ 0 & 0 & \exp(i \phi) \sin(\theta/2) & \exp(i(\phi+\lambda)) \cos(\theta/2) \end{bmatrix}\end{split}\]
Parameters:
  • theta (float) – angle in radians
  • phi (float) – angle in radians
  • lambda (float) – angle in radians
angles(representation='rational')

Convert args into list of strings.

args

Get new args

Returns:gate args
Return type:list
static args_to_str(*args)

Describes how the gate paramaters will be shown.

calculate_u(args)

Calculate matrix

conjugate()

Produce conjugated gate

Returns:new dagger gate
Return type:Gate
static format_args(*args, representation='rational')

Convert args into list of strings.

graph_symbols = ['.', 'U3']

List of pseudo graph symbols

is_discrete = False

Flag for discrete or continuous

classmethod make_discrete(*args, class_name=None)
num_qubits = 2

The number of qubits the gate acts on

to_qasm()

Describes how the gate will be shown in OPENQASM format

static to_qiskit_name()

Convert to Qiskit gate name

u

Get gate unitary matrix

Returns:gate unitary matrix
Return type:np.array
Inheritance diagram of arline_quantum.gates.crx
class arline_quantum.gates.crx.Crx(*args)

Bases: arline_quantum.gates.gate.Gate

Name:
\(CR_X\left(\theta\right)\) Gate

Description:

Controlled continuous two-qubit gate

The \(CR_X(\theta)\) gate is a controlled \(R_X\) rotation with angle \(\theta\) (radians)

Other names:
Controlled \(R_X\)

Matrix:

This matrix representation corresponds to [target_qubit, control_qubit]
\[\begin{split}\begin{bmatrix} 1 & 0 & 0 & 0\\ 0 & 1 & 0 & 0\\ 0 & 0 & \cos(\theta/2) & -i \sin(\theta/2) \\ 0 & 0 & -i \sin(\theta/2) & \cos(\theta/2) \end{bmatrix}\end{split}\]
Parameters:theta (float) – angle in radians
angles(representation='rational')

Convert args into list of strings.

args

Get new args

Returns:gate args
Return type:list
static args_to_str(*args)

Describes how the gate paramaters will be shown.

calculate_u(args)

Calculate matrix

conjugate()

Produce conjugated gate

Returns:new dagger gate
Return type:Gate
static format_args(*args, representation='rational')

Convert args into list of strings.

graph_symbols = ['.', 'RX']

List of pseudo graph symbols

is_discrete = False

Flag for discrete or continuous

classmethod make_discrete(*args, class_name=None)
num_qubits = 2

The number of qubits the gate acts on

to_qasm()

Describes how the gate will be shown in OPENQASM format

static to_qiskit_name()

Convert to Qiskit gate name

u

Get gate unitary matrix

Returns:gate unitary matrix
Return type:np.array
Inheritance diagram of arline_quantum.gates.cry
class arline_quantum.gates.cry.Cry(*args)

Bases: arline_quantum.gates.gate.Gate

Name:
\(CR_Y\left(\theta\right)\) Gate

Description:

Controlled continuous two-qubit gate

The \(CR_Y(\theta)\) gate is a controlled \(R_Y\) rotation with angle \(\theta\) (radians)

Other names:
Controlled \(R_Y\) gate

Matrix:

This matrix representation corresponds to [target_qubit, control_qubit]
\[\begin{split}\begin{bmatrix} 1 & 0 & 0 & 0\\ 0 & 1 & 0 & 0\\ 0 & 0 & \cos(\theta/2) & -\sin(\theta/2) \\ 0 & 0 & \sin(\theta/2) & \cos(\theta/2) \end{bmatrix}\end{split}\]
Parameters:theta (float) – angle in radians
angles(representation='rational')

Convert args into list of strings.

args

Get new args

Returns:gate args
Return type:list
static args_to_str(*args)

Describes how the gate paramaters will be shown.

calculate_u(args)

Calculate matrix

conjugate()

Produce conjugated gate

Returns:new dagger gate
Return type:Gate
static format_args(*args, representation='rational')

Convert args into list of strings.

graph_symbols = ['.', 'RY']

List of pseudo graph symbols

is_discrete = False

Flag for discrete or continuous

classmethod make_discrete(*args, class_name=None)
num_qubits = 2

The number of qubits the gate acts on

to_qasm()

Describes how the gate will be shown in OPENQASM format

static to_qiskit_name()

Convert to Qiskit gate name

u

Get gate unitary matrix

Returns:gate unitary matrix
Return type:np.array
Inheritance diagram of arline_quantum.gates.crz
class arline_quantum.gates.crz.Crz(*args)

Bases: arline_quantum.gates.gate.Gate

Name:
\(CR_Z\left(\phi\right)\) Gate

Description:

Controlled continuous two-qubit gate The \(CR_Z(\theta)\) gate is a controlled \(R_Z\) rotation with angle \(\phi\) (radians)

Other names:
Controlled \(R_Y\) gate

Matrix:

This matrix representation corresponds to [target_qubit, control_qubit]
\[\begin{split}\begin{bmatrix} 1 & 0 & 0 & 0\\ 0 & 1 & 0 & 0\\ 0 & 0 & \exp\left(\frac{-i \cdot \phi}{2}\right) & 0 \\ 0 & 0 & 0 & \exp\left(\frac{i \cdot \phi}{2}\right) \end{bmatrix}\end{split}\]
Parameters:theta (float) – angle in radians
angles(representation='rational')

Convert args into list of strings.

args

Get new args

Returns:gate args
Return type:list
static args_to_str(*args)

Describes how the gate paramaters will be shown.

calculate_u(args)

Calculate matrix

conjugate()

Produce conjugated gate

Returns:new dagger gate
Return type:Gate
static format_args(*args, representation='rational')

Convert args into list of strings.

graph_symbols = ['.', 'RZ']

List of pseudo graph symbols

is_discrete = False

Flag for discrete or continuous

classmethod make_discrete(*args, class_name=None)
num_qubits = 2

The number of qubits the gate acts on

to_qasm()

Describes how the gate will be shown in OPENQASM format

static to_qiskit_name()

Convert to Qiskit gate name

u

Get gate unitary matrix

Returns:gate unitary matrix
Return type:np.array

Three-Qubit Gates

Inheritance diagram of arline_quantum.gates.ccnot
class arline_quantum.gates.ccnot.Ccnot(*args)

Bases: arline_quantum.gates.gate.Gate

Name:
\(CCNOT\) Gate

Description:

Controlled discrete three-qubit gate

Other names:
Toffoli, Controlled-Controlled \(NOT\), \(CCX\)

Matrix:

\[\begin{split}\begin{bmatrix} 1& 0& 0& 0& 0& 0& 0& 0\\ 0& 1& 0& 0& 0& 0& 0& 0\\ 0& 0& 1& 0& 0& 0& 0& 0\\ 0& 0& 0& 1& 0& 0& 0& 0\\ 0& 0& 0& 0& 1& 0& 0& 0\\ 0& 0& 0& 0& 0& 1& 0& 0\\ 0& 0& 0& 0& 0& 0& 0& 1\\ 0& 0& 0& 0& 0& 0& 1& 0 \end{bmatrix}\end{split}\]
Inverse:
\(CCNOT^\dagger = CCNOT\)
angles(representation='rational')

Convert args into list of strings.

args

Get new args

Returns:gate args
Return type:list
static args_to_str(*args)

Describes how the gate paramaters will be shown.

calculate_u(args)

Calculate matrix

conjugate()

Produce conjugated gate

Returns:new dagger gate
Return type:Gate
static format_args(*args, representation='rational')

Convert args into list of strings.

graph_symbols = ['.', '.', 'X']

List of pseudo graph symbols

is_discrete = True

Flag for discrete or continuous

classmethod make_discrete(*args, class_name=None)
num_qubits = 3

The number of qubits the gate acts on

to_qasm()

Describes how the gate will be shown in OPENQASM format

static to_qiskit_name()

Convert to Qiskit gate name

u

Get gate unitary matrix

Returns:gate unitary matrix
Return type:np.array
Inheritance diagram of arline_quantum.gates.cswap
class arline_quantum.gates.cswap.Cswap(*args)

Bases: arline_quantum.gates.gate.Gate

Name:
\(CSWAP\) Gate

Description:

Other names:
Fredkin gate

Matrix:

\[\begin{split}\begin{bmatrix} 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\ 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0\\ 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0\\ 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0\\ 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0\\ 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0\\ 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0\\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 \end{bmatrix}\end{split}\]
Inverse:
\(CSWAP^\dagger = CSWAP\)
angles(representation='rational')

Convert args into list of strings.

args

Get new args

Returns:gate args
Return type:list
static args_to_str(*args)

Describes how the gate paramaters will be shown.

calculate_u(args)

Calculate matrix

conjugate()

Produce conjugated gate

Returns:new dagger gate
Return type:Gate
static format_args(*args, representation='rational')

Convert args into list of strings.

graph_symbols = ['.', 'X', 'X']

List of pseudo graph symbols

is_discrete = True

Flag for discrete or continuous

classmethod make_discrete(*args, class_name=None)
num_qubits = 3

The number of qubits the gate acts on

to_qasm(*args)

Describes how the gate will be shown in OPENQASM format

static to_qiskit_name()

Convert to Qiskit gate name

u

Get gate unitary matrix

Returns:gate unitary matrix
Return type:np.array

Pauli Gates

Inheritance diagram of arline_quantum.gates.x
class arline_quantum.gates.x.X(*args)

Bases: arline_quantum.gates.gate.Gate

Name:
\(X\) Gate

Description:

Other names:
Pauli \(X\), \(NOT\), Bit Flip, Sigma \(X\)

Matrix:

\[\begin{split}\begin{bmatrix} 0 & 1\\ 1 & 0 \end{bmatrix}\end{split}\]
Inverse:
\(X^\dagger = X\)
angles(representation='rational')

Convert args into list of strings.

args

Get new args

Returns:gate args
Return type:list
static args_to_str(*args)

Describes how the gate paramaters will be shown.

calculate_u(args)

Calculate matrix

conjugate()

Produce conjugated gate

Returns:new dagger gate
Return type:Gate
static format_args(*args, representation='rational')

Convert args into list of strings.

graph_symbols = ['X']

List of pseudo graph symbols

is_discrete = True

Flag for discrete or continuous

classmethod make_discrete(*args, class_name=None)
num_qubits = 1

The number of qubits the gate acts on

to_qasm()

Describes how the gate will be shown in OPENQASM format

static to_qiskit_name()

Convert to Qiskit gate name

u

Get gate unitary matrix

Returns:gate unitary matrix
Return type:np.array
Inheritance diagram of arline_quantum.gates.y
class arline_quantum.gates.y.Y(*args)

Bases: arline_quantum.gates.gate.Gate

Name:
\(Y\) gate

Description:

Other names:
Pauli \(Y\), Sigma \(Y\)

Matrix:

\[\begin{split}\begin{bmatrix} 0 & -i\\ i & 0 \end{bmatrix}\end{split}\]
Inverse:
\(Y^\dagger = Y\)
angles(representation='rational')

Convert args into list of strings.

args

Get new args

Returns:gate args
Return type:list
static args_to_str(*args)

Describes how the gate paramaters will be shown.

calculate_u(args)

Calculate matrix

conjugate()

Produce conjugated gate

Returns:new dagger gate
Return type:Gate
static format_args(*args, representation='rational')

Convert args into list of strings.

graph_symbols = ['Y']

List of pseudo graph symbols

is_discrete = True

Flag for discrete or continuous

classmethod make_discrete(*args, class_name=None)
num_qubits = 1

The number of qubits the gate acts on

to_qasm()

Describes how the gate will be shown in OPENQASM format

static to_qiskit_name()

Convert to Qiskit gate name

u

Get gate unitary matrix

Returns:gate unitary matrix
Return type:np.array
Inheritance diagram of arline_quantum.gates.z

Ising Gates

Inheritance diagram of arline_quantum.gates.xx
class arline_quantum.gates.xx.Xx(*args)

Bases: arline_quantum.gates.gate.Gate

Name:
\(XX\left(phi\right)\) gate

Description:

Matrix:

\[\begin{split}\frac{1}{\sqrt{2}} \cdot \begin{bmatrix} 1 & 0 & 0 & -i e^{i \phi}\\ 0 & 1 & -i & 0\\ 0 & -i & 1 & 0\\ -i e^{i \phi} & 0 & 0 & 1 \end{bmatrix}\end{split}\]
Parameters:phi (float) – angle in radians
angles(representation='rational')

Convert args into list of strings.

args

Get new args

Returns:gate args
Return type:list
static args_to_str(*args)

Describes how the gate paramaters will be shown.

calculate_u(args)

Calculate matrix

conjugate()

Produce conjugated gate

Returns:new dagger gate
Return type:Gate
static format_args(*args, representation='rational')

Convert args into list of strings.

graph_symbols = ['IX', 'IX']

List of pseudo graph symbols

is_discrete = False

Flag for discrete or continuous

classmethod make_discrete(*args, class_name=None)
num_qubits = 2

The number of qubits the gate acts on

to_qasm()

Describes how the gate will be shown in OPENQASM format

static to_qiskit_name()

Convert to Qiskit gate name

u

Get gate unitary matrix

Returns:gate unitary matrix
Return type:np.array
Inheritance diagram of arline_quantum.gates.yy
class arline_quantum.gates.yy.Yy(*args)

Bases: arline_quantum.gates.gate.Gate

Name:
\(YY\left(\phi\right)\) gate

Description:

Matrix:

\[\begin{split}\begin{bmatrix} \cos(\phi) & 0 & 0 & i \sin(\phi)\\ 0 & \cos(\phi) & -i \sin(\phi) & 0\\ 0 & -i \sin(\phi) & \cos(\phi) & 0\\ i \sin(\phi)& 0 & 0 & \cos(\phi) \end{bmatrix}\end{split}\]
Parameters:phi (float) – angle in radians
angles(representation='rational')

Convert args into list of strings.

args

Get new args

Returns:gate args
Return type:list
static args_to_str(*args)

Describes how the gate paramaters will be shown.

calculate_u(args)

Calculate matrix

conjugate()

Produce conjugated gate

Returns:new dagger gate
Return type:Gate
static format_args(*args, representation='rational')

Convert args into list of strings.

graph_symbols = ['IY', 'IY']

List of pseudo graph symbols

is_discrete = False

Flag for discrete or continuous

classmethod make_discrete(*args, class_name=None)
num_qubits = 2

The number of qubits the gate acts on

to_qasm()

Describes how the gate will be shown in OPENQASM format

static to_qiskit_name()

Convert to Qiskit gate name

u

Get gate unitary matrix

Returns:gate unitary matrix
Return type:np.array
Inheritance diagram of arline_quantum.gates.zz
class arline_quantum.gates.zz.Zz(*args)

Bases: arline_quantum.gates.gate.Gate

Name:
\(ZZ\left(\phi\right)\) Gate

Description:

Matrix:

\[\begin{split}\begin{bmatrix} \exp\left(\frac{i \phi}{2} \right) & 0 & 0 & 0\\ 0 & \exp\left(\frac{-i \phi}{2} \right) & 0 & 0\\ 0 & 0 & \exp\left(\frac{-i \phi}{2} \right) & 0\\ 0 & 0 & 0 & \exp\left(\frac{i \phi}{2} \right) \end{bmatrix}\end{split}\]
Parameters:phi (float) – angle in radians
angles(representation='rational')

Convert args into list of strings.

args

Get new args

Returns:gate args
Return type:list
static args_to_str(*args)

Describes how the gate paramaters will be shown.

calculate_u(args)

Calculate matrix

conjugate()

Produce conjugated gate

Returns:new dagger gate
Return type:Gate
static format_args(*args, representation='rational')

Convert args into list of strings.

graph_symbols = ['IZ', 'IZ']

List of pseudo graph symbols

is_discrete = False

Flag for discrete or continuous

classmethod make_discrete(*args, class_name=None)
num_qubits = 2

The number of qubits the gate acts on

to_qasm()

Describes how the gate will be shown in OPENQASM format

static to_qiskit_name()

Convert to Qiskit gate name

u

Get gate unitary matrix

Returns:gate unitary matrix
Return type:np.array

Other Gates

Inheritance diagram of arline_quantum.gates.swap
class arline_quantum.gates.swap.Swap(*args)

Bases: arline_quantum.gates.gate.Gate

Name:
\(SWAP\) Gate

Description:

Expressed in basis states, the \(SWAP\) gate swaps the state of the two qubits involved in the operation

Matrix:

\[\begin{split}\begin{bmatrix} 1 & 0 & 0 & 0\\ 0 & 0 & 1 & 0\\ 0 & 1 & 0 & 0\\ 0 & 0 & 0 & 1 \end{bmatrix}\end{split}\]
Inverse:
\(SWAPˆ\dagger = SWAP\)
angles(representation='rational')

Convert args into list of strings.

args

Get new args

Returns:gate args
Return type:list
static args_to_str(*args)

Describes how the gate paramaters will be shown.

calculate_u(args)

Calculate matrix

conjugate()

Produce conjugated gate

Returns:new dagger gate
Return type:Gate
static format_args(*args, representation='rational')

Convert args into list of strings.

graph_symbols = ['X', 'X']

List of pseudo graph symbols

is_discrete = True

Flag for discrete or continuous

classmethod make_discrete(*args, class_name=None)
num_qubits = 2

The number of qubits the gate acts on

to_qasm(*args)

Describes how the gate will be shown in OPENQASM format

static to_qiskit_name()

Convert to Qiskit gate name

u

Get gate unitary matrix

Returns:gate unitary matrix
Return type:np.array