Plot the final datapoint correctly based on the waveform, instead of copying the previous one
Explanation of changes
In all plots the final datapoint is now (duration, waveform(duration)
instead of (duration, waveform(duration - 1/samplingrate)
.
This fixes for example the ramp
being flat during the last sample. Now it looks like a proper triangle reaching amp
.
That does mean the implementations of waveform(t: np.ndarray)
should not depend on the length of t or specific (other) values in t. ramp
staircase
and chirp
have been adjusted accordingly. ramp(np.array([10, 2, 4, 1, 7]), ...)
will work just fine now for example.
drag
should probably also be adjusted (only the mu = t[0] - duration/2
part should just be mu = duration/2
, as all t[0]
has to be 0 anyway in the current/old implementations). ramp(np.array([10, 2, 4, 1, 7]), ...)
will not work fine and never has.
I didn't adjust that as drag
is probably the most used waveform, afraid touching it would break things.
Motivation of changes
The final datapoint is actually duration - epsilon
, as the pulse is surrounded by 0s. We could change that final 0 to be plotted at duration + epsilon
instead of duration
. Does not matter too much
Merge checklist
See also merge request guidelines
-
Merge request has been reviewed (in-depth by a knowledgeable contributor), and is approved by a project maintainer. -
New code is covered by unit tests (or N/A). -
New code is documented and docstrings use numpydoc format (or N/A). -
New functionality: considered making private instead of extending public API (or N/A). -
Public API changed: added @deprecated
and entry in deprecated code suggestions (or N/A). -
Newly added/adjusted documentation and docstrings render properly (or N/A). -
Pipeline fix or dependency update: post in #software-for-developers
channel to mergemain
back in or update local packages (or N/A). -
Tested on hardware (or N/A). -
CHANGELOG.md
for breaking changes andAUTHORS.md
have been updated (or N/A). -
Update Hardware backends documentation if backend interface change or N/A -
Check whether performance is significantly affected by looking at the Performance metrics results. -
Windows tests in CI pipeline pass (manually triggered by maintainers before merging). - Maintainers do not hit Auto-merge, we need to actively check as manual tests do not block pipeline
For reference, the issues workflow is described in the contribution guidelines.