mindquantum.core.circuit.decompose_single_term_time_evolution

View Source On Gitee
mindquantum.core.circuit.decompose_single_term_time_evolution(term, para)[source]

Decompose a time evolution gate into basic quantum gates.

This function only works for the hamiltonian with only single pauli word. For example, \(exp^{-it\text{ham}}\), \(\text{ham}\) can only be a single pauli word, such as \(\text{ham}=X_0 Y_1 Z_2\), and at this time, term will be ((0, ‘X’), (1, ‘Y’), (2, ‘Z’)). When the evolution time is expressed as \(t=ax+by\), para would be {‘x’:a, ‘y’:b}.

Parameters
Returns

Circuit, a quantum circuit.

Raises

Examples

>>> from mindquantum.core.operators import QubitOperator
>>> from mindquantum.core.circuit import decompose_single_term_time_evolution
>>> ham = QubitOperator('X0 Y1')
>>> circuit = decompose_single_term_time_evolution(ham, {'a':1})
>>> print(circuit)
      ┏━━━┓                               ┏━━━┓
q0: ──┨ H ┠─────────■─────────────────■───┨ H ┠──────────
      ┗━━━┛         ┃                 ┃   ┗━━━┛
      ┏━━━━━━━━━┓ ┏━┻━┓ ┏━━━━━━━━━┓ ┏━┻━┓ ┏━━━━━━━━━━┓
q1: ──┨ RX(π/2) ┠─┨╺╋╸┠─┨ RZ(2*a) ┠─┨╺╋╸┠─┨ RX(7π/2) ┠───
      ┗━━━━━━━━━┛ ┗━━━┛ ┗━━━━━━━━━┛ ┗━━━┛ ┗━━━━━━━━━━┛