IQPansatz#
- class discopy.quantum.circuit.IQPansatz(n_qubits, params)[source]#
Bases:
CircuitBuild an IQP ansatz on n qubits, if n = 1 returns an Euler decomposition
>>> pprint = lambda c: print(str(c).replace(' >>', '\n >>')) >>> pprint(IQPansatz(3, [[0.1, 0.2], [0.3, 0.4]])) H @ Id(2) >> Id(1) @ H @ Id(1) >> Id(2) @ H >> CRz(0.1) @ Id(1) >> Id(1) @ CRz(0.2) >> H @ Id(2) >> Id(1) @ H @ Id(1) >> Id(2) @ H >> CRz(0.3) @ Id(1) >> Id(1) @ CRz(0.4) >>> print(IQPansatz(1, [0.3, 0.8, 0.4])) Rx(0.3) >> Rz(0.8) >> Rx(0.4)