IQPansatz

Contents

IQPansatz#

class discopy.quantum.ansatze.IQPansatz(n_qubits, params)[source]#

Bases:

Build an IQP ansatz on n qubits, if n = 1 returns an Euler decomposition.

>>> pprint = lambda c: print(str(c.foliation()).replace(' >>', '\n  >>'))
>>> pprint(IQPansatz(3, [[0.1, 0.2], [0.3, 0.4]]))
H @ H @ H
  >> CRz(0.1) @ qubit
  >> H @ CRz(0.2)
  >> qubit @ H @ H
  >> CRz(0.3) @ qubit
  >> qubit @ CRz(0.4)
>>> print(IQPansatz(1, [0.3, 0.8, 0.4]))
Rx(0.3) >> Rz(0.8) >> Rx(0.4)
Return type:

Circuit