mindquantum.core.circuit.decompose_single_term_time_evolution
- 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
term (tuple, QubitOperator) – the hamiltonian term of just the evolution qubit operator.
para (Union[dict, numbers.Number]) – the parameters of evolution operator.
- Returns
Circuit, a quantum circuit.
- Raises
ValueError – If term has more than one pauli string.
TypeError – If term is not map.
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) ┠─── ┗━━━━━━━━━┛ ┗━━━┛ ┗━━━━━━━━━┛ ┗━━━┛ ┗━━━━━━━━━━┛