diff --git a/CHANGELOG.md b/CHANGELOG.md index c02f84ea2..0248f9e05 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,7 @@ Changelog - Allow `np.ndarray` when writing QAM memory. Disallow non-integer and non-float types. - Fix typo where `qc.compiler.calibration_program` should be `qc.compiler.get_calibration_program()`. +- Fixed typo where `scale` was being used as the `phase` in generation of several waveforms. [v3.0.0](https://github.com/rigetti/pyquil/releases/tag/v3.0.0) ------------------------------------------------------------------------------------ diff --git a/pyquil/quiltwaveforms.py b/pyquil/quiltwaveforms.py index 6e12e1fa1..d21832b37 100644 --- a/pyquil/quiltwaveforms.py +++ b/pyquil/quiltwaveforms.py @@ -141,7 +141,7 @@ def samples(self, rate: float) -> np.ndarray: ts = np.arange(self.num_samples(rate), dtype=np.complex128) / rate sigma = 0.5 * self.fwhm / np.sqrt(2.0 * np.log(2.0)) iqs = np.exp(-0.5 * (ts - self.t0) ** 2 / sigma ** 2) - return _update_envelope(iqs, rate, scale=self.scale, phase=self.scale, detuning=self.detuning) + return _update_envelope(iqs, rate, scale=self.scale, phase=self.phase, detuning=self.detuning) @waveform("drag_gaussian") @@ -193,7 +193,7 @@ def samples(self, rate: float) -> np.ndarray: env = np.exp(-0.5 * (ts - self.t0) ** 2 / sigma ** 2) env_der = (self.alpha * (1.0 / (2 * np.pi * self.anh * sigma ** 2))) * (ts - self.t0) * env iqs = env + 1.0j * env_der - return _update_envelope(iqs, rate, scale=self.scale, phase=self.scale, detuning=self.detuning) + return _update_envelope(iqs, rate, scale=self.scale, phase=self.phase, detuning=self.detuning) @waveform("hrm_gaussian") @@ -263,7 +263,7 @@ def samples(self, rate: float) -> np.ndarray: * (self.second_order_hrm_coeff * (exponent_of_t - 1) - 1) ) iqs = env + 1.0j * env_der - return _update_envelope(iqs, rate, scale=self.scale, phase=self.scale, detuning=self.detuning) + return _update_envelope(iqs, rate, scale=self.scale, phase=self.phase, detuning=self.detuning) @waveform("erf_square") @@ -313,7 +313,7 @@ def samples(self, rate: float) -> np.ndarray: zeros_left = np.zeros(int(np.ceil(self.pad_left * rate)), dtype=np.complex128) zeros_right = np.zeros(int(np.ceil(self.pad_right * rate)), dtype=np.complex128) iqs = np.concatenate((zeros_left, vals, zeros_right)) - return _update_envelope(iqs, rate, scale=self.scale, phase=self.scale, detuning=self.detuning) + return _update_envelope(iqs, rate, scale=self.scale, phase=self.phase, detuning=self.detuning) @waveform("boxcar_kernel") @@ -340,4 +340,4 @@ def __str__(self) -> str: def samples(self, rate: float) -> np.ndarray: n = self.num_samples(rate) iqs = np.full(n, 1.0 / n, dtype=np.complex128) - return _update_envelope(iqs, rate, scale=self.scale, phase=self.scale, detuning=self.detuning) + return _update_envelope(iqs, rate, scale=self.scale, phase=self.phase, detuning=self.detuning)