@@ -217,15 +217,6 @@ def get_rules_from_module(module: ir.Module) -> str:
217217 return "\n " .join (str (funcOp ) for funcOp in funcOps ) if funcOps else ""
218218
219219
220- def prepare_dynamic_op_kwargs (dynamic_shape , wire_lens ) -> dict :
221- kwargs = {}
222- for wire_name , wire_len in wire_lens .items ():
223- kwargs [wire_name ] = jnp .array (range (wire_len ), dtype = int )
224- for arg_name , arg_shape in dynamic_shape .items ():
225- kwargs [arg_name ] = get_dummy_values_for_arg (arg_shape )
226- return kwargs
227-
228-
229220def inject_new_rules_into_module (module : ir .Module , decomp_rules : list [str ]):
230221 with ir .InsertionPoint (module .body ):
231222 for decomp_rule in decomp_rules :
@@ -284,6 +275,15 @@ def collect_resources_for_op(op_name, kwargs, is_custom_op=False):
284275 return name_to_resources , name_to_resource_ids , decomp_rules
285276
286277
278+ def prepare_dynamic_op_kwargs (dynamic_shape , wire_lens ) -> dict :
279+ kwargs = {}
280+ for wire_name , wire_len in wire_lens .items ():
281+ kwargs [wire_name ] = jnp .array (range (wire_len ), dtype = int )
282+ for arg_name , arg_shape in dynamic_shape .items ():
283+ kwargs [arg_name ] = get_dummy_values_for_arg (arg_shape )
284+ return kwargs
285+
286+
287287def compile_decomposition_rules (
288288 op_name ,
289289 op_id ,
@@ -298,13 +298,9 @@ def compile_decomposition_rules(
298298
299299 The decomposition rules will be decorated with appropriate resource and target_gate attributes.
300300 """
301- kwargs = {}
301+ kwargs = prepare_dynamic_op_kwargs ( dynamic_shape , wire_lens )
302302 extra_data = extra_data or {}
303303 device = qp .device ("null.qubit" , wires = sum (wire_lens .values ()))
304- for wire_name , wire_len in wire_lens .items ():
305- kwargs [wire_name ] = jnp .array (range (wire_len ), dtype = int )
306- for arg_name , arg_shape in dynamic_shape .items ():
307- kwargs [arg_name ] = get_dummy_values_for_arg (arg_shape )
308304
309305 _ , name_to_resource_ids , decomp_rules = collect_resources_for_op (
310306 op_name , kwargs | static_data | extra_data , is_custom_op
0 commit comments