Skip to content

Commit 7d9bc3b

Browse files
committed
fix merge
1 parent ea9119f commit 7d9bc3b

File tree

3 files changed

+20
-17
lines changed

3 files changed

+20
-17
lines changed

src/braket/parametric/free_parameter_expression.py

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,6 @@ def __init__(self, expression: Union[FreeParameterExpression, Number, sympy.Expr
4141
4242
Args:
4343
expression (Union[FreeParameterExpression, Number, Expr, str]): The expression to use.
44-
_type (Optional[ClassicalType]): The OpenQASM3 type associated with the expression.
45-
Subtypes of openqasm3.ast.ClassicalType are used to specify how to express the
46-
expression in the OpenQASM3 IR. Any type other than DurationType is considered
47-
as FloatType.
4844
4945
Raises:
5046
NotImplementedError: Raised if the expression is not of type
@@ -61,7 +57,6 @@ def __init__(self, expression: Union[FreeParameterExpression, Number, sympy.Expr
6157
ast.Pow: self.__pow__,
6258
ast.USub: self.__neg__,
6359
}
64-
self._type = _type if _type is not None else FloatType()
6560
if isinstance(expression, FreeParameterExpression):
6661
self._expression = expression.expression
6762
elif isinstance(expression, (Number, sympy.Expr)):
@@ -70,7 +65,6 @@ def __init__(self, expression: Union[FreeParameterExpression, Number, sympy.Expr
7065
self._expression = self._parse_string_expression(expression).expression
7166
else:
7267
raise NotImplementedError
73-
self._validate_type()
7468

7569
@property
7670
def expression(self) -> Union[Number, sympy.Expr]:
@@ -109,13 +103,6 @@ def subs(
109103
else:
110104
return FreeParameterExpression(subbed_expr)
111105

112-
def _validate_type(self) -> None:
113-
if not isinstance(self._type, (FloatType, DurationType)):
114-
raise TypeError(
115-
"FreeParameterExpression must be of type openqasm3.ast.FloatType "
116-
"or openqasm3.ast.DurationType"
117-
)
118-
119106
def _parse_string_expression(self, expression: str) -> FreeParameterExpression:
120107
return self._eval_operation(ast.parse(expression, mode="eval").body)
121108

src/braket/pulse/ast/free_parameters.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ def visit_Identifier(
4040
using the given parameter values.
4141
4242
Args:
43-
identifier (_FreeParameterExpressionIdentifier): The identifier.
43+
identifier (Identifier): The identifier.
4444
4545
Returns:
4646
Union[Identifier, FloatLiteral]: The transformed identifier.

src/braket/pulse/waveforms.py

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,16 @@
2020

2121
import numpy as np
2222
import openpulse.ast as ast
23-
from oqpy import WaveformVar, bool_, complex128, declare_waveform_generator, duration, float64
24-
from oqpy.base import OQPyExpression
23+
from oqpy import (
24+
WaveformVar,
25+
bool_,
26+
complex128,
27+
convert_float_to_duration,
28+
declare_waveform_generator,
29+
duration,
30+
float64,
31+
)
32+
from oqpy.base import OQPyExpression, to_ast
2533

2634
from braket.parametric.free_parameter import FreeParameter
2735
from braket.parametric.free_parameter_expression import (
@@ -69,8 +77,16 @@ def _modify_oqpy_waveform_var(
6977
self, key: str, value: Any, type_: ast.ClassicalType = float64
7078
) -> None:
7179
if self._pulse_sequence is not None:
80+
self._pulse_sequence._register_free_parameters(value)
7281
self._pulse_sequence._program.undeclared_vars[self.id].init_expression.args[key] = (
73-
self._pulse_sequence._format_parameter_ast(value, type_)
82+
to_ast(
83+
self._pulse_sequence._program,
84+
(
85+
convert_float_to_duration(value)
86+
if isinstance(type_, ast.DurationType)
87+
else value
88+
),
89+
)
7490
)
7591

7692
@abstractmethod

0 commit comments

Comments
 (0)