Skip to content

Commit

Permalink
Fix deprecated Numpy logic in NormalizeRZAngles
Browse files Browse the repository at this point in the history
This new pass added in Qiskitgh-10634 uses some deprecated Numpy properties
and has some slightly fragile exception-based logic when the required
properties can be directly tested.  This code issues warnings with Numpy
1.25+, which is currently not used by CI due to Qiskitgh-10305.
  • Loading branch information
jakelishman committed Oct 16, 2023
1 parent fc74ab9 commit 11e9341
Showing 1 changed file with 10 additions and 19 deletions.
29 changes: 10 additions & 19 deletions qiskit/transpiler/passes/optimization/normalize_rx_angle.py
Original file line number Diff line number Diff line change
Expand Up @@ -76,25 +76,16 @@ def quantize_angles(self, qubit, original_angle):
float: Quantized angle.
"""

# check if there is already a calibration for a simliar angle
try:
angles = self.already_generated[qubit] # 1d ndarray of already generated angles
similar_angle = angles[
np.isclose(angles, original_angle, atol=self.resolution_in_radian / 2)
]
quantized_angle = (
float(similar_angle[0]) if len(similar_angle) > 1 else float(similar_angle)
)
except KeyError:
quantized_angle = original_angle
self.already_generated[qubit] = np.array([quantized_angle])
except TypeError:
quantized_angle = original_angle
self.already_generated[qubit] = np.append(
self.already_generated[qubit], quantized_angle
)

return quantized_angle
if (angles := self.already_generated.get(qubit)) is None:
self.already_generated[qubit] = np.array([original_angle])
return original_angle
similar_angles = angles[
np.isclose(angles, original_angle, atol=self.resolution_in_radian / 2)
]
if similar_angles.size == 0:
self.already_generated[qubit] = np.append(angles, original_angle)
return original_angle
return float(angles[0])

def run(self, dag):
"""Run the NormalizeRXAngle pass on ``dag``.
Expand Down

0 comments on commit 11e9341

Please sign in to comment.