mindquantum.core.gates.RotPauliString

View Source On Gitee
class mindquantum.core.gates.RotPauliString(pauli_string: str, pr)[source]

Arbitrary pauli string rotation.

\[U(\theta)=e^{-i\theta P/2}, P=\otimes_i\sigma_i, \text{where } \sigma \in \{X, Y, Z\}\]
Parameters
  • pauli_string (str) – The pauli string. Each element should be in ['i', 'x', 'y', 'z', 'I', 'X', 'Y', 'Z'].

  • pr (Union[int, float, str, dict, ParameterResolver]) – the parameters of parameterized gate.

Examples

>>> import numpy as np
>>> from mindquantum.core.gates import RotPauliString
>>> from mindquantum.core.operators import TimeEvolution, QubitOperator
>>> from mindquantum.core.circuit import Circuit
>>> g = RotPauliString('XYZ', 1.0).on([0, 1, 2])
>>> circ1 = Circuit() + g
>>> circ2 = TimeEvolution(QubitOperator('X0 Y1 Z2'), 0.5).circuit
>>> np.allclose(circ1.matrix(), circ2.matrix())
True
diff_matrix(pr=None, about_what=None)[source]

Differential form of this parameterized gate.

Parameters
  • pr (Union[ParameterResolver, dict]) – The parameter value for parameterized gate. Default: None.

  • about_what (str) – calculate the gradient w.r.t which parameter.

Returns

numpy.ndarray, the differential form matrix.

get_cpp_obj()[source]

Construct cpp obj.

matrix(pr=None, full=False)[source]

Get the matrix of this parameterized gate.

Parameters
  • pr (Union[ParameterResolver, dict]) – The parameter value for parameterized gate. Default: None.

  • full (bool) – Whether to get the full matrix of this gate (the gate should be acted on some qubits). Default: False.

Returns

numpy.ndarray, the matrix of this gate.