from QuantumComputer import * qasm=""" #Toffoli - q0+q1=q2 +q3=q4; #initialize Q4 to |1> just to demonstrate it position on |psi> print; x q[4]; #first step: q0+q1=q2; id q[2]; h q[2]; cx q[1], q[2]; tdg q[2]; cx q[0], q[2]; t q[2]; cx q[1], q[2]; tdg q[2]; cx q[0], q[2]; t q[1]; t q[2]; h q[2]; #ibm flip; cx q[1], q[2]; h q[1]; h q[2]; cx q[1], q[2]; h q[1]; h q[2]; cx q[1], q[2]; cx q[0], q[2]; t q[2]; tdg q[0]; cx q[0], q[2]; #my flip; cx q[1], q[2]; h q[1]; h q[2]; cx q[1], q[2]; h q[1]; h q[2]; cx q[1], q[2]; #next step: q2+q3=4; id q[4]; h q[4]; cx q[3], q[4]; tdg q[4]; cx q[2], q[4]; t q[4]; cx q[3], q[4]; tdg q[4]; cx q[2], q[4]; t q[3]; t q[4]; h q[4]; #ibm flip; cx q[3], q[4]; h q[3]; h q[4]; cx q[3], q[4]; h q[3]; h q[4]; cx q[3], q[4]; cx q[2], q[4]; t q[4]; tdg q[2]; cx q[2], q[4]; #my flip; cx q[3], q[4]; h q[3]; h q[4]; cx q[3], q[4]; h q[3]; h q[4]; cx q[3], q[4]; measure q[0]; measure q[1]; measure q[2]; measure q[3]; measure q[4]; """ qc=QuantumComputer() qc.reset() qc.execute(qasm) print () print ("========== QUANTUM REGISTER Toffoli ==========") for n in range (0,5): arg="q" + str(n) print ("QUBIT",str(n)) Probability.pretty_print_probabilities (qc.qubits.get_quantum_register_containing(arg).get_state()) qasm=""" h q[2]; h q[3]; z q[2]; cx q[3], q[2]; h q[3]; #measure q[3]; """ qc=QuantumComputer() qc.reset() qc.execute(qasm) print () print ("========== Q3 Phase ==========") Probability.pretty_print_probabilities (qc.qubits.get_quantum_register_containing("q3").get_state())