paddle_quantum.gate.single_qubit_gate

The source file of the classes for single-qubit gates.

class paddle_quantum.gate.single_qubit_gate.H(qubits_idx=None, num_qubits=None, depth=1)

Bases: Gate

A collection of single-qubit Hadamard gates.

The matrix form of such a gate is:

H=12[1111]
Parameters:
  • qubits_idx (Iterable | int | str | None) – Indices of the qubits on which the gates are applied. Defaults to 'full'.

  • num_qubits (int | None) – Total number of qubits. Defaults to None.

  • depth (int | None) – Number of layers. Defaults to 1.

class paddle_quantum.gate.single_qubit_gate.S(qubits_idx=None, num_qubits=None, depth=1)

Bases: Gate

A collection of single-qubit S gates.

The matrix form of such a gate is:

S=[100i]
Parameters:
  • qubits_idx (Iterable | int | str | None) – Indices of the qubits on which the gates are applied. Defaults to 'full'.

  • num_qubits (int | None) – Total number of qubits. Defaults to None.

  • depth (int | None) – Number of layers. Defaults to 1.

class paddle_quantum.gate.single_qubit_gate.Sdg(qubits_idx=None, num_qubits=None, depth=1)

Bases: Gate

A collection of single-qubit S dagger (S inverse) gates.

The matrix form of such a gate is:

S=[100i]
Parameters:
  • qubits_idx (Iterable | int | str | None) – Indices of the qubits on which the gates are applied. Defaults to 'full'.

  • num_qubits (int | None) – Total number of qubits. Defaults to None.

  • depth (int | None) – Number of layers. Defaults to 1.

class paddle_quantum.gate.single_qubit_gate.T(qubits_idx=None, num_qubits=None, depth=1)

Bases: Gate

A collection of single-qubit T gates.

The matrix form of such a gate is:

T=[100eiπ4]
Parameters:
  • qubits_idx (Iterable | int | str | None) – Indices of the qubits on which the gates are applied. Defaults to 'full'.

  • num_qubits (int | None) – Total number of qubits. Defaults to None.

  • depth (int | None) – Number of layers. Defaults to 1.

class paddle_quantum.gate.single_qubit_gate.Tdg(qubits_idx=None, num_qubits=None, depth=1)

Bases: Gate

A collection of single-qubit T dagger (T inverse) gates.

The matrix form of such a gate is:

T=[100eiπ4]
Parameters:
  • qubits_idx (Iterable | int | str | None) – Indices of the qubits on which the gates are applied. Defaults to 'full'.

  • num_qubits (int | None) – Total number of qubits. Defaults to None.

  • depth (int | None) – Number of layers. Defaults to 1.

class paddle_quantum.gate.single_qubit_gate.X(qubits_idx=None, num_qubits=None, depth=1)

Bases: Gate

A collection of single-qubit X gates.

The matrix form of such a gate is:

[0110]
Parameters:
  • qubits_idx (Iterable | int | str | None) – Indices of the qubits on which the gates are applied. Defaults to 'full'.

  • num_qubits (int | None) – Total number of qubits. Defaults to None.

  • depth (int | None) – Number of layers. Defaults to 1.

class paddle_quantum.gate.single_qubit_gate.Y(qubits_idx=None, num_qubits=None, depth=1)

Bases: Gate

A collection of single-qubit Y gates.

The matrix form of such a gate is:

[0ii0]
Parameters:
  • qubits_idx (Iterable | int | str | None) – Indices of the qubits on which the gates are applied. Defaults to 'full'.

  • num_qubits (int | None) – Total number of qubits. Defaults to None.

  • depth (int | None) – Number of layers. Defaults to 1.

class paddle_quantum.gate.single_qubit_gate.Z(qubits_idx=None, num_qubits=None, depth=1)

Bases: Gate

A collection of single-qubit Z gates.

The matrix form of such a gate is:

[1001]
Parameters:
  • qubits_idx (Iterable | int | str | None) – Indices of the qubits on which the gates are applied. Defaults to 'full'.

  • num_qubits (int | None) – Total number of qubits. Defaults to None.

  • depth (int | None) – Number of layers. Defaults to 1.

class paddle_quantum.gate.single_qubit_gate.P(qubits_idx=None, num_qubits=None, depth=1, param=None, param_sharing=False)

Bases: ParamGate

A collection of single-qubit P gates.

The matrix form of such a gate is:

[100eiθ]
Parameters:
  • qubits_idx (Iterable | int | str | None) – Indices of the qubits on which the gates are applied. Defaults to 'full'.

  • num_qubits (int | None) – Total number of qubits. Defaults to None.

  • depth (int | None) – Number of layers. Defaults to 1.

  • param (Tensor | float | None) – Parameters of the gates. Defaults to None.

  • param_sharing (bool | None) – Whether gates in the same layer share a parameter. Defaults to False.

Raises:

ValueError – The param must be paddle.Tensor or float.

class paddle_quantum.gate.single_qubit_gate.RX(qubits_idx=None, num_qubits=None, depth=1, param=None, param_sharing=False)

Bases: ParamGate

A collection of single-qubit rotation gates about the x-axis.

The matrix form of such a gate is:

[cosθ2isinθ2isinθ2cosθ2]
Parameters:
  • qubits_idx (Iterable | int | str | None) – Indices of the qubits on which the gates are applied. Defaults to 'full'.

  • num_qubits (int | None) – Total number of qubits. Defaults to None.

  • depth (int | None) – Number of layers. Defaults to 1.

  • param (Tensor | float | None) – Parameters of the gates. Defaults to None.

  • param_sharing (bool | None) – Whether gates in the same layer share a parameter. Defaults to False.

Raises:

ValueError – The param must be paddle.Tensor or float.

class paddle_quantum.gate.single_qubit_gate.RY(qubits_idx=None, num_qubits=None, depth=1, param=None, param_sharing=False)

Bases: ParamGate

A collection of single-qubit rotation gates about the y-axis.

The matrix form of such a gate is:

[cosθ2sinθ2sinθ2cosθ2]
Parameters:
  • qubits_idx (Iterable | int | str | None) – Indices of the qubits on which the gates are applied. Defaults to 'full'.

  • num_qubits (int | None) – Total number of qubits. Defaults to None.

  • depth (int | None) – Number of layers. Defaults to 1.

  • param (Tensor | float | None) – Parameters of the gates. Defaults to None.

  • param_sharing (bool | None) – Whether gates in the same layer share a parameter. Defaults to False.

Raises:

ValueError – The param must be paddle.Tensor or float.

class paddle_quantum.gate.single_qubit_gate.RZ(qubits_idx=None, num_qubits=None, depth=1, param=None, param_sharing=False)

Bases: ParamGate

A collection of single-qubit rotation gates about the z-axis.

The matrix form of such a gate is:

[eiθ200eiθ2]
Parameters:
  • qubits_idx (Iterable | int | str | None) – Indices of the qubits on which the gates are applied. Defaults to 'full'.

  • num_qubits (int | None) – Total number of qubits. Defaults to None.

  • depth (int | None) – Number of layers. Defaults to 1.

  • param (Tensor | float | None) – Parameters of the gates. Defaults to None.

  • param_sharing (bool | None) – Whether gates in the same layer share a parameter. Defaults to False.

Raises:

ValueError – The param must be paddle.Tensor or float.

class paddle_quantum.gate.single_qubit_gate.U3(qubits_idx=None, num_qubits=None, depth=1, param=None, param_sharing=False)

Bases: ParamGate

A collection of single-qubit rotation gates.

The matrix form of such a gate is:

U3(θ,ϕ,λ)=[cosθ2eiλsinθ2eiϕsinθ2ei(ϕ+λ)cosθ2]
Parameters:
  • qubits_idx (Iterable | int | str | None) – Indices of the qubits on which the gates are applied. Defaults to 'full'.

  • num_qubits (int | None) – Total number of qubits. Defaults to None.

  • depth (int | None) – Number of layers. Defaults to 1.

  • param (Tensor | Iterable[float] | None) – Parameters of the gates. Defaults to None.

  • param_sharing (bool | None) – Whether gates in the same layer share a parameter. Defaults to False.

Raises:

ValueError – The param must be paddle.Tensor or float.