def generate_boolean(): prog = Program() qbits = prog.qalloc(3) cbits = prog.calloc(3) prog.apply(X, qbits[1]) prog.measure(qbits[0], cbits[0]) prog.measure(qbits[1], cbits[1]) prog.logic(cbits[2], cbits[1] & ~cbits[0]) prog.cc_apply(cbits[2], X, qbits[2]) prog.apply(X, qbits[0]) return prog.to_circ()
def make_simple_logic(): prog = Program() qbits = prog.qalloc(2) cbits = prog.calloc(5) prog.apply(X, qbits[0]) prog.measure(qbits[0], cbits[0]) prog.measure(qbits[1], cbits[1]) prog.logic(cbits[2], cbits[1] | cbits[0]) prog.logic(cbits[3], cbits[2] & cbits[1]) prog.logic(cbits[4], cbits[0] ^ cbits[1]) return prog.to_circ()