def getCPMGAxisDesc(pulseSpacing, numPulses, calRepeats): return [ # NOTE: numPulses is not a numpy array, so cannot multiply by a float # But thankfully, np.array(np.array) = np.array so this is always a good move here. delay_descriptor(pulseSpacing * np.array(numPulses)), cal_descriptor(('qubit', ), calRepeats) ]
def getHahnAxisDesc(pulseSpacings, calRepeats): return [ delay_descriptor(2 * pulseSpacings), cal_descriptor(('qubit', ), calRepeats) ]
def getCRtAxisDesc(lengths): return [ delay_descriptor(np.concatenate((np.repeat(lengths,3), np.repeat(lengths,3)))), cal_descriptor(('targetQ',), 2) ]
def getECLAxisDesc(lengths, calRepeats): return [ delay_descriptor(np.concatenate((lengths, lengths))), # Hard code there are 2 qubits cal_descriptor(('controlQ', 'targetQ'), calRepeats) ]
def rAD(pulseSpacings, calRepeats): return [ delay_descriptor(pulseSpacings), cal_descriptor(('qubit',), calRepeats) ]
def irAD(delays, calRepeats): return [ delay_descriptor(delays), cal_descriptor(('qubit',), calRepeats) ]
def getRWidthAD(widths): return [delay_descriptor(widths)]