After compiling a sequence using the PulsePrimitive.CNOT, triggers and gate markers added at the compiling step modify the CNOT function on the same qubits permanently
Example, before compiling:
CNOT(q1,q4):
CompoundGate([echoCR_first_half(CR1), X(q1), echoCR_second_half(CR1), X(q1), Z90m(q1, frameChange=1.5707963267948966)+Id(q1, amp=0, phase=0, frameChange=0)*X90m(q4)])
After compiling,
CNOT(q1,q4):
CompoundGate([echoCR_first_half(CR1), X(q1), echoCR_second_half(CR1), X(q1), Z90m(q1, frameChange=1.5707963267948966)+Id(q1, amp=0, phase=0, frameChange=0)*X90m(q4)*BLANK(q4-gate, amp=1, phase=0, frameChange=0, length=1e-07)*Id(CR1, length=1e-07)*Id(slave_trig, length=1e-07)])
This can be prevented by removing the @_memoize decorator from both CNOT and the specific implementation CNOT_CR.
This happens in both master and https://github.com/BBN-Q/QGL/tree/feature/CNOT-imp.
After compiling a sequence using the
PulsePrimitive.CNOT, triggers and gate markers added at the compiling step modify the CNOT function on the same qubits permanentlyExample, before compiling:
CNOT(q1,q4):After compiling,
CNOT(q1,q4):This can be prevented by removing the
@_memoizedecorator from bothCNOTand the specific implementationCNOT_CR.This happens in both
masterand https://github.com/BBN-Q/QGL/tree/feature/CNOT-imp.