fix!: correctly compute duration for erfsquare
waveform templates
#406
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
ScheduledBasicBlock::get_waveform_duration_seconds
previously assumed that the duration of all built-in waveforms is equal to their duration parameter. This isn't true forerfsquare
, though; theduration
parameter just specifies the duration of the active pulse, and thepadleft
andpadright
parameters specify silent padding on either side which contribute to the total duration.This PR updates the computation of the duration to include the padding. This is a breaking change, because now scheduling a program with an
erfsquare
waveform requires that theerfsquare
waveform have these extra parameters and that they be constants. Indeed, some of our very own tests were broken by this.There is also some inconsistency in names, which this PR papers over by accepting both:
erfsquare
, but our test cases call iterf_square
padleft
andpadright
, but ourErfSquare
type calls thempad_left
andpad_right
.As implemented, any mix of the underscoreless and underscoreful names can be used.
Closes #405.