qiskit
qiskit copied to clipboard
Add symbolic Gaussian Square Echo to Qiskit Pulse `symbolic_pulses` library
Summary
Adding the implementation of a symbolic Gaussian Square Echo pulse
Details and comments
This is a first implementation of a symbolic version of Gaussian square echo pulse. Tests and documentation to be added. I have left the definition of the gap between echo pulses as it was but we may want to look at it more closely. Usually, the two echo pulses are separated by the duration of a single qubit gate which allows to echo the control qubit.
Thank you for opening a new pull request.
Before your PR can be merged it will first need to pass continuous integration tests and be reviewed. Sometimes the review process can be slow, so please be patient.
While you're waiting, please feel free to review other open PRs. While only a subset of people are authorized to approve pull requests for merging, everyone is encouraged to review open pull requests. Doing reviews helps reduce the burden on the core team and helps make the project's code better for everyone.
One or more of the the following people are requested to review this:
- @Qiskit/terra-core
I'm glad to see we have other pulse shapes in Qiskit. If this is going to be backend-supported, you may also want to update
qobj converter,
https://github.com/Qiskit/qiskit-terra/blob/f2befd10b1aba6d9369daf4465cffdf75c7da576/qiskit/qobj/converters/pulse_instruction.py#L36-L46
and qpy loader
https://github.com/Qiskit/qiskit-terra/blob/f2befd10b1aba6d9369daf4465cffdf75c7da576/qiskit/qpy/binary_io/schedules.py#L94-L106
I think I have made the changes to those modules to support the GaussianSquareEcho pulse. I have a question though. I see that all the pulses have a corresponding equivalent in the continuous
and discrete
modules. Should I implement a gaussian square echo pulse there as well?
Implementation of waveform counterpart, i.e. continuous
and discrete
, is not mandatory, because we can get the same array with SymbolicPulse.get_waveform
method (but nothing stops you to implement).
Picking this up again since this PR was merged recently. As it is now, GaussianSquareEcho
only contains the Gaussian square pulses without the single qubit gates for the echo. There is a delay between the Gaussian Square pulses with positive and negative amplitudes where the second single qubit gate for the echo would fit. I wonder if we should include these single qubit gates or not. If not, how would we add the single qubit gate needed for the echo in the delay between the Gaussian squares?