classiq 0.43.3__py3-none-any.whl → 0.45.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (220) hide show
  1. classiq/__init__.py +8 -3
  2. classiq/_internals/api_wrapper.py +2 -2
  3. classiq/_internals/authentication/auth0.py +1 -1
  4. classiq/_internals/authentication/device.py +5 -1
  5. classiq/_internals/authentication/token_manager.py +5 -4
  6. classiq/_internals/client.py +5 -8
  7. classiq/_internals/config.py +1 -2
  8. classiq/_internals/host_checker.py +34 -13
  9. classiq/_internals/jobs.py +3 -3
  10. classiq/analyzer/analyzer.py +1 -1
  11. classiq/analyzer/analyzer_utilities.py +1 -1
  12. classiq/analyzer/rb.py +1 -1
  13. classiq/applications/chemistry/chemistry_model_constructor.py +13 -7
  14. classiq/applications/combinatorial_helpers/allowed_constraints.py +4 -1
  15. classiq/applications/combinatorial_helpers/arithmetic/isolation.py +1 -1
  16. classiq/applications/combinatorial_helpers/encoding_mapping.py +1 -1
  17. classiq/applications/combinatorial_helpers/encoding_utils.py +2 -1
  18. classiq/applications/combinatorial_helpers/optimization_model.py +1 -1
  19. classiq/applications/combinatorial_helpers/pauli_helpers/pauli_utils.py +1 -1
  20. classiq/applications/combinatorial_helpers/pyomo_utils.py +1 -2
  21. classiq/applications/combinatorial_helpers/transformations/encoding.py +1 -1
  22. classiq/applications/combinatorial_helpers/transformations/fixed_variables.py +5 -4
  23. classiq/applications/combinatorial_helpers/transformations/ising_converter.py +1 -1
  24. classiq/applications/combinatorial_helpers/transformations/sign_seperation.py +1 -1
  25. classiq/applications/combinatorial_optimization/combinatorial_optimization_model_constructor.py +1 -1
  26. classiq/applications/finance/finance_model_constructor.py +4 -3
  27. classiq/applications/grover/grover_model_constructor.py +7 -5
  28. classiq/applications/hamiltonian/__init__.py +0 -0
  29. classiq/applications/hamiltonian/pauli_decomposition.py +113 -0
  30. classiq/applications/qnn/circuit_utils.py +1 -1
  31. classiq/applications/qnn/datasets/dataset_base_classes.py +2 -1
  32. classiq/applications/qnn/datasets/dataset_not.py +2 -1
  33. classiq/applications/qnn/qlayer.py +3 -2
  34. classiq/applications/qnn/torch_utils.py +2 -1
  35. classiq/applications/qsvm/qsvm_model_constructor.py +1 -1
  36. classiq/execution/execution_session.py +1 -1
  37. classiq/execution/jobs.py +5 -2
  38. classiq/interface/_version.py +1 -1
  39. classiq/interface/analyzer/cytoscape_graph.py +1 -2
  40. classiq/interface/analyzer/result.py +2 -3
  41. classiq/interface/ast_node.py +1 -18
  42. classiq/interface/backend/backend_preferences.py +11 -18
  43. classiq/interface/backend/ionq/ionq_quantum_program.py +1 -1
  44. classiq/interface/backend/pydantic_backend.py +0 -5
  45. classiq/interface/backend/quantum_backend_providers.py +4 -3
  46. classiq/interface/chemistry/fermionic_operator.py +1 -2
  47. classiq/interface/chemistry/ground_state_problem.py +2 -3
  48. classiq/interface/chemistry/molecule.py +1 -2
  49. classiq/interface/chemistry/operator.py +8 -10
  50. classiq/interface/combinatorial_optimization/encoding_types.py +1 -1
  51. classiq/interface/combinatorial_optimization/mht_qaoa_input.py +1 -1
  52. classiq/interface/combinatorial_optimization/solver_types.py +1 -1
  53. classiq/interface/debug_info/__init__.py +0 -0
  54. classiq/interface/debug_info/debug_info.py +32 -0
  55. classiq/{exceptions.py → interface/exceptions.py} +4 -0
  56. classiq/interface/executor/aws_execution_cost.py +2 -2
  57. classiq/interface/executor/execution_preferences.py +2 -47
  58. classiq/interface/executor/execution_result.py +1 -2
  59. classiq/interface/executor/optimizer_preferences.py +2 -3
  60. classiq/interface/executor/quantum_code.py +1 -2
  61. classiq/interface/executor/quantum_instruction_set.py +2 -2
  62. classiq/interface/executor/register_initialization.py +1 -2
  63. classiq/interface/executor/result.py +29 -14
  64. classiq/interface/finance/function_input.py +6 -11
  65. classiq/interface/generator/amplitude_loading.py +2 -3
  66. classiq/interface/generator/ansatz_library.py +1 -1
  67. classiq/interface/generator/application_apis/arithmetic_declarations.py +8 -5
  68. classiq/interface/generator/application_apis/chemistry_declarations.py +78 -60
  69. classiq/interface/generator/application_apis/combinatorial_optimization_declarations.py +19 -10
  70. classiq/interface/generator/application_apis/entangler_declarations.py +11 -6
  71. classiq/interface/generator/application_apis/finance_declarations.py +37 -44
  72. classiq/interface/generator/application_apis/qsvm_declarations.py +21 -15
  73. classiq/interface/generator/arith/arithmetic.py +10 -8
  74. classiq/interface/generator/arith/arithmetic_arg_type_validator.py +1 -2
  75. classiq/interface/generator/arith/arithmetic_expression_abc.py +22 -3
  76. classiq/interface/generator/arith/arithmetic_expression_parser.py +3 -4
  77. classiq/interface/generator/arith/arithmetic_expression_validator.py +1 -2
  78. classiq/interface/generator/arith/arithmetic_param_getters.py +1 -2
  79. classiq/interface/generator/arith/arithmetic_result_builder.py +15 -11
  80. classiq/interface/generator/arith/ast_node_rewrite.py +1 -1
  81. classiq/interface/generator/arith/binary_ops.py +7 -7
  82. classiq/interface/generator/arith/endianness.py +1 -1
  83. classiq/interface/generator/arith/extremum_operations.py +44 -21
  84. classiq/interface/generator/arith/logical_ops.py +1 -2
  85. classiq/interface/generator/arith/register_user_input.py +1 -2
  86. classiq/interface/generator/arith/unary_ops.py +1 -2
  87. classiq/interface/generator/arith/uncomputation_methods.py +1 -1
  88. classiq/interface/generator/chemistry_function_params.py +1 -2
  89. classiq/interface/generator/circuit_code/circuit_code.py +1 -2
  90. classiq/interface/generator/circuit_code/types_and_constants.py +1 -2
  91. classiq/interface/generator/commuting_pauli_exponentiation.py +1 -2
  92. classiq/interface/generator/constant.py +1 -1
  93. classiq/interface/generator/control_state.py +1 -2
  94. classiq/interface/generator/custom_ansatz.py +1 -2
  95. classiq/interface/generator/expressions/atomic_expression_functions.py +1 -0
  96. classiq/interface/generator/expressions/enums/finance_functions.py +4 -5
  97. classiq/interface/generator/expressions/evaluated_expression.py +1 -2
  98. classiq/interface/generator/expressions/expression.py +1 -2
  99. classiq/interface/generator/expressions/expression_constants.py +3 -1
  100. classiq/interface/generator/expressions/non_symbolic_expr.py +1 -1
  101. classiq/interface/generator/expressions/qmod_qarray_proxy.py +53 -70
  102. classiq/interface/generator/expressions/qmod_qscalar_proxy.py +2 -7
  103. classiq/interface/generator/expressions/qmod_qstruct_proxy.py +35 -0
  104. classiq/interface/generator/expressions/qmod_sized_proxy.py +1 -1
  105. classiq/interface/generator/expressions/sympy_supported_expressions.py +2 -1
  106. classiq/interface/generator/function_params.py +2 -3
  107. classiq/interface/generator/functions/builtins/core_library/__init__.py +4 -2
  108. classiq/interface/generator/functions/builtins/core_library/atomic_quantum_functions.py +41 -41
  109. classiq/interface/generator/functions/builtins/core_library/exponentiation_functions.py +52 -42
  110. classiq/interface/generator/functions/builtins/open_lib_functions.py +1095 -3347
  111. classiq/interface/generator/functions/builtins/quantum_operators.py +9 -22
  112. classiq/interface/generator/functions/classical_function_declaration.py +14 -6
  113. classiq/interface/generator/functions/classical_type.py +7 -114
  114. classiq/interface/generator/functions/concrete_types.py +55 -0
  115. classiq/interface/generator/functions/function_declaration.py +10 -10
  116. classiq/interface/generator/functions/port_declaration.py +1 -2
  117. classiq/interface/generator/functions/type_name.py +80 -0
  118. classiq/interface/generator/generated_circuit_data.py +3 -3
  119. classiq/interface/generator/grover_diffuser.py +1 -2
  120. classiq/interface/generator/grover_operator.py +1 -2
  121. classiq/interface/generator/hamiltonian_evolution/exponentiation.py +1 -2
  122. classiq/interface/generator/hamiltonian_evolution/suzuki_trotter.py +1 -2
  123. classiq/interface/generator/hardware/hardware_data.py +1 -2
  124. classiq/interface/generator/hardware_efficient_ansatz.py +2 -3
  125. classiq/interface/generator/hartree_fock.py +1 -2
  126. classiq/interface/generator/linear_pauli_rotations.py +1 -2
  127. classiq/interface/generator/mcmt_method.py +1 -1
  128. classiq/interface/generator/mcu.py +1 -2
  129. classiq/interface/generator/mcx.py +1 -2
  130. classiq/interface/generator/model/constraints.py +2 -3
  131. classiq/interface/generator/model/model.py +12 -2
  132. classiq/interface/generator/model/preferences/preferences.py +7 -3
  133. classiq/interface/generator/model/quantum_register.py +1 -2
  134. classiq/interface/generator/oracles/arithmetic_oracle.py +1 -2
  135. classiq/interface/generator/oracles/custom_oracle.py +1 -2
  136. classiq/interface/generator/oracles/oracle_abc.py +1 -2
  137. classiq/interface/generator/partitioned_register.py +1 -2
  138. classiq/interface/generator/piecewise_linear_amplitude_loading.py +1 -2
  139. classiq/interface/generator/preferences/optimization.py +1 -2
  140. classiq/interface/generator/qpe.py +1 -2
  141. classiq/interface/generator/qsvm.py +2 -3
  142. classiq/interface/generator/quantum_function_call.py +4 -2
  143. classiq/interface/generator/quantum_program.py +6 -7
  144. classiq/interface/generator/range_types.py +1 -1
  145. classiq/interface/generator/register_role.py +8 -2
  146. classiq/interface/generator/slice_parsing_utils.py +1 -2
  147. classiq/interface/generator/standard_gates/controlled_standard_gates.py +1 -2
  148. classiq/interface/generator/state_preparation/metrics.py +2 -3
  149. classiq/interface/generator/state_preparation/state_preparation.py +1 -2
  150. classiq/interface/generator/synthesis_metadata/synthesis_execution_data.py +1 -3
  151. classiq/interface/generator/transpiler_basis_gates.py +1 -1
  152. classiq/interface/generator/types/builtin_enum_declarations.py +38 -45
  153. classiq/interface/generator/types/builtin_struct_declarations/pauli_struct_declarations.py +1 -2
  154. classiq/interface/generator/types/enum_declaration.py +1 -2
  155. classiq/interface/generator/types/qstruct_declaration.py +17 -0
  156. classiq/interface/generator/types/struct_declaration.py +2 -3
  157. classiq/interface/generator/ucc.py +1 -2
  158. classiq/interface/generator/unitary_gate.py +1 -2
  159. classiq/interface/generator/validations/flow_graph.py +1 -2
  160. classiq/interface/generator/validations/validator_functions.py +1 -2
  161. classiq/interface/hardware.py +1 -1
  162. classiq/interface/helpers/validation_helpers.py +2 -19
  163. classiq/interface/ide/visual_model.py +10 -4
  164. classiq/interface/interface_version.py +1 -0
  165. classiq/interface/jobs.py +2 -3
  166. classiq/interface/model/bind_operation.py +26 -7
  167. classiq/interface/model/classical_parameter_declaration.py +8 -5
  168. classiq/interface/model/control.py +5 -5
  169. classiq/interface/model/handle_binding.py +185 -12
  170. classiq/interface/model/inplace_binary_operation.py +17 -6
  171. classiq/interface/model/model.py +29 -7
  172. classiq/interface/model/native_function_definition.py +8 -4
  173. classiq/interface/model/parameter.py +13 -0
  174. classiq/interface/model/port_declaration.py +21 -4
  175. classiq/interface/model/quantum_expressions/amplitude_loading_operation.py +22 -8
  176. classiq/interface/model/quantum_expressions/arithmetic_operation.py +30 -6
  177. classiq/interface/model/quantum_expressions/quantum_expression.py +4 -9
  178. classiq/interface/model/quantum_function_call.py +136 -194
  179. classiq/interface/model/quantum_function_declaration.py +147 -165
  180. classiq/interface/model/quantum_lambda_function.py +23 -6
  181. classiq/interface/model/quantum_statement.py +34 -8
  182. classiq/interface/model/quantum_type.py +41 -11
  183. classiq/interface/model/quantum_variable_declaration.py +1 -1
  184. classiq/interface/model/statement_block.py +2 -0
  185. classiq/interface/model/validation_handle.py +8 -2
  186. classiq/interface/server/global_versions.py +4 -4
  187. classiq/interface/server/routes.py +2 -0
  188. classiq/interface/source_reference.py +59 -0
  189. classiq/qmod/__init__.py +2 -3
  190. classiq/qmod/builtins/classical_execution_primitives.py +1 -1
  191. classiq/qmod/builtins/functions.py +39 -11
  192. classiq/qmod/builtins/operations.py +172 -41
  193. classiq/qmod/classical_function.py +1 -1
  194. classiq/qmod/declaration_inferrer.py +102 -57
  195. classiq/qmod/expression_query.py +1 -1
  196. classiq/qmod/model_state_container.py +2 -0
  197. classiq/qmod/native/pretty_printer.py +71 -53
  198. classiq/qmod/pretty_print/pretty_printer.py +98 -52
  199. classiq/qmod/qfunc.py +11 -5
  200. classiq/qmod/qmod_constant.py +1 -1
  201. classiq/qmod/qmod_parameter.py +27 -4
  202. classiq/qmod/qmod_variable.py +405 -174
  203. classiq/qmod/quantum_callable.py +3 -3
  204. classiq/qmod/quantum_expandable.py +128 -68
  205. classiq/qmod/quantum_function.py +24 -5
  206. classiq/qmod/semantics/annotation.py +13 -15
  207. classiq/qmod/semantics/error_manager.py +36 -10
  208. classiq/qmod/semantics/static_semantics_visitor.py +164 -76
  209. classiq/qmod/semantics/validation/func_call_validation.py +43 -97
  210. classiq/qmod/semantics/validation/handle_validation.py +85 -0
  211. classiq/qmod/semantics/validation/types_validation.py +108 -1
  212. classiq/qmod/symbolic.py +2 -1
  213. classiq/qmod/type_attribute_remover.py +32 -0
  214. classiq/qmod/utilities.py +26 -5
  215. classiq/{interface/ide/show.py → show.py} +1 -1
  216. {classiq-0.43.3.dist-info → classiq-0.45.0.dist-info}/METADATA +3 -3
  217. {classiq-0.43.3.dist-info → classiq-0.45.0.dist-info}/RECORD +219 -207
  218. classiq/qmod/qmod_struct.py +0 -13
  219. /classiq/{_internals → interface}/enum_utils.py +0 -0
  220. {classiq-0.43.3.dist-info → classiq-0.45.0.dist-info}/WHEEL +0 -0
@@ -12,12 +12,12 @@ from classiq.interface.model.classical_parameter_declaration import (
12
12
  )
13
13
  from classiq.interface.model.port_declaration import PortDeclaration
14
14
  from classiq.interface.model.quantum_function_declaration import (
15
- QuantumFunctionDeclaration,
15
+ NamedParamsQuantumFunctionDeclaration,
16
16
  )
17
17
 
18
18
  DEFAULT_TARGET_NAME = "target"
19
19
 
20
- H_FUNCTION = QuantumFunctionDeclaration(
20
+ H_FUNCTION = NamedParamsQuantumFunctionDeclaration(
21
21
  name="H",
22
22
  positional_arg_declarations=[
23
23
  PortDeclaration(
@@ -29,7 +29,7 @@ H_FUNCTION = QuantumFunctionDeclaration(
29
29
  )
30
30
 
31
31
 
32
- X_FUNCTION = QuantumFunctionDeclaration(
32
+ X_FUNCTION = NamedParamsQuantumFunctionDeclaration(
33
33
  name="X",
34
34
  positional_arg_declarations=[
35
35
  PortDeclaration(
@@ -41,7 +41,7 @@ X_FUNCTION = QuantumFunctionDeclaration(
41
41
  )
42
42
 
43
43
 
44
- Y_FUNCTION = QuantumFunctionDeclaration(
44
+ Y_FUNCTION = NamedParamsQuantumFunctionDeclaration(
45
45
  name="Y",
46
46
  positional_arg_declarations=[
47
47
  PortDeclaration(
@@ -52,7 +52,7 @@ Y_FUNCTION = QuantumFunctionDeclaration(
52
52
  ],
53
53
  )
54
54
 
55
- Z_FUNCTION = QuantumFunctionDeclaration(
55
+ Z_FUNCTION = NamedParamsQuantumFunctionDeclaration(
56
56
  name="Z",
57
57
  positional_arg_declarations=[
58
58
  PortDeclaration(
@@ -64,7 +64,7 @@ Z_FUNCTION = QuantumFunctionDeclaration(
64
64
  )
65
65
 
66
66
 
67
- I_FUNCTION = QuantumFunctionDeclaration(
67
+ I_FUNCTION = NamedParamsQuantumFunctionDeclaration(
68
68
  name="I",
69
69
  positional_arg_declarations=[
70
70
  PortDeclaration(
@@ -76,7 +76,7 @@ I_FUNCTION = QuantumFunctionDeclaration(
76
76
  )
77
77
 
78
78
 
79
- S_FUNCTION = QuantumFunctionDeclaration(
79
+ S_FUNCTION = NamedParamsQuantumFunctionDeclaration(
80
80
  name="S",
81
81
  positional_arg_declarations=[
82
82
  PortDeclaration(
@@ -88,7 +88,7 @@ S_FUNCTION = QuantumFunctionDeclaration(
88
88
  )
89
89
 
90
90
 
91
- T_FUNCTION = QuantumFunctionDeclaration(
91
+ T_FUNCTION = NamedParamsQuantumFunctionDeclaration(
92
92
  name="T",
93
93
  positional_arg_declarations=[
94
94
  PortDeclaration(
@@ -100,7 +100,7 @@ T_FUNCTION = QuantumFunctionDeclaration(
100
100
  )
101
101
 
102
102
 
103
- SDG_FUNCTION = QuantumFunctionDeclaration(
103
+ SDG_FUNCTION = NamedParamsQuantumFunctionDeclaration(
104
104
  name="SDG",
105
105
  positional_arg_declarations=[
106
106
  PortDeclaration(
@@ -112,7 +112,7 @@ SDG_FUNCTION = QuantumFunctionDeclaration(
112
112
  )
113
113
 
114
114
 
115
- TDG_FUNCTION = QuantumFunctionDeclaration(
115
+ TDG_FUNCTION = NamedParamsQuantumFunctionDeclaration(
116
116
  name="TDG",
117
117
  positional_arg_declarations=[
118
118
  PortDeclaration(
@@ -124,7 +124,7 @@ TDG_FUNCTION = QuantumFunctionDeclaration(
124
124
  )
125
125
 
126
126
 
127
- PHASE_FUNCTION = QuantumFunctionDeclaration(
127
+ PHASE_FUNCTION = NamedParamsQuantumFunctionDeclaration(
128
128
  name="PHASE",
129
129
  positional_arg_declarations=[
130
130
  ClassicalParameterDeclaration(
@@ -140,7 +140,7 @@ PHASE_FUNCTION = QuantumFunctionDeclaration(
140
140
  )
141
141
 
142
142
 
143
- RX_FUNCTION = QuantumFunctionDeclaration(
143
+ RX_FUNCTION = NamedParamsQuantumFunctionDeclaration(
144
144
  name="RX",
145
145
  positional_arg_declarations=[
146
146
  ClassicalParameterDeclaration(
@@ -156,7 +156,7 @@ RX_FUNCTION = QuantumFunctionDeclaration(
156
156
  )
157
157
 
158
158
 
159
- RY_FUNCTION = QuantumFunctionDeclaration(
159
+ RY_FUNCTION = NamedParamsQuantumFunctionDeclaration(
160
160
  name="RY",
161
161
  positional_arg_declarations=[
162
162
  ClassicalParameterDeclaration(
@@ -172,7 +172,7 @@ RY_FUNCTION = QuantumFunctionDeclaration(
172
172
  )
173
173
 
174
174
 
175
- RZ_FUNCTION = QuantumFunctionDeclaration(
175
+ RZ_FUNCTION = NamedParamsQuantumFunctionDeclaration(
176
176
  name="RZ",
177
177
  positional_arg_declarations=[
178
178
  ClassicalParameterDeclaration(
@@ -187,7 +187,7 @@ RZ_FUNCTION = QuantumFunctionDeclaration(
187
187
  ],
188
188
  )
189
189
 
190
- R_FUNCTION = QuantumFunctionDeclaration(
190
+ R_FUNCTION = NamedParamsQuantumFunctionDeclaration(
191
191
  name="R",
192
192
  positional_arg_declarations=[
193
193
  ClassicalParameterDeclaration(
@@ -207,7 +207,7 @@ R_FUNCTION = QuantumFunctionDeclaration(
207
207
  )
208
208
 
209
209
 
210
- RXX_FUNCTION = QuantumFunctionDeclaration(
210
+ RXX_FUNCTION = NamedParamsQuantumFunctionDeclaration(
211
211
  name="RXX",
212
212
  positional_arg_declarations=[
213
213
  ClassicalParameterDeclaration(
@@ -223,7 +223,7 @@ RXX_FUNCTION = QuantumFunctionDeclaration(
223
223
  )
224
224
 
225
225
 
226
- RYY_FUNCTION = QuantumFunctionDeclaration(
226
+ RYY_FUNCTION = NamedParamsQuantumFunctionDeclaration(
227
227
  name="RYY",
228
228
  positional_arg_declarations=[
229
229
  ClassicalParameterDeclaration(
@@ -239,7 +239,7 @@ RYY_FUNCTION = QuantumFunctionDeclaration(
239
239
  )
240
240
 
241
241
 
242
- RZZ_FUNCTION = QuantumFunctionDeclaration(
242
+ RZZ_FUNCTION = NamedParamsQuantumFunctionDeclaration(
243
243
  name="RZZ",
244
244
  positional_arg_declarations=[
245
245
  ClassicalParameterDeclaration(
@@ -255,7 +255,7 @@ RZZ_FUNCTION = QuantumFunctionDeclaration(
255
255
  )
256
256
 
257
257
 
258
- CH_FUNCTION = QuantumFunctionDeclaration(
258
+ CH_FUNCTION = NamedParamsQuantumFunctionDeclaration(
259
259
  name="CH",
260
260
  positional_arg_declarations=[
261
261
  PortDeclaration(
@@ -272,7 +272,7 @@ CH_FUNCTION = QuantumFunctionDeclaration(
272
272
  )
273
273
 
274
274
 
275
- CX_FUNCTION = QuantumFunctionDeclaration(
275
+ CX_FUNCTION = NamedParamsQuantumFunctionDeclaration(
276
276
  name="CX",
277
277
  positional_arg_declarations=[
278
278
  PortDeclaration(
@@ -289,7 +289,7 @@ CX_FUNCTION = QuantumFunctionDeclaration(
289
289
  )
290
290
 
291
291
 
292
- CY_FUNCTION = QuantumFunctionDeclaration(
292
+ CY_FUNCTION = NamedParamsQuantumFunctionDeclaration(
293
293
  name="CY",
294
294
  positional_arg_declarations=[
295
295
  PortDeclaration(
@@ -306,7 +306,7 @@ CY_FUNCTION = QuantumFunctionDeclaration(
306
306
  )
307
307
 
308
308
 
309
- CZ_FUNCTION = QuantumFunctionDeclaration(
309
+ CZ_FUNCTION = NamedParamsQuantumFunctionDeclaration(
310
310
  name="CZ",
311
311
  positional_arg_declarations=[
312
312
  PortDeclaration(
@@ -323,7 +323,7 @@ CZ_FUNCTION = QuantumFunctionDeclaration(
323
323
  )
324
324
 
325
325
 
326
- CRX_FUNCTION = QuantumFunctionDeclaration(
326
+ CRX_FUNCTION = NamedParamsQuantumFunctionDeclaration(
327
327
  name="CRX",
328
328
  positional_arg_declarations=[
329
329
  ClassicalParameterDeclaration(
@@ -344,7 +344,7 @@ CRX_FUNCTION = QuantumFunctionDeclaration(
344
344
  )
345
345
 
346
346
 
347
- CRY_FUNCTION = QuantumFunctionDeclaration(
347
+ CRY_FUNCTION = NamedParamsQuantumFunctionDeclaration(
348
348
  name="CRY",
349
349
  positional_arg_declarations=[
350
350
  ClassicalParameterDeclaration(
@@ -365,7 +365,7 @@ CRY_FUNCTION = QuantumFunctionDeclaration(
365
365
  )
366
366
 
367
367
 
368
- CRZ_FUNCTION = QuantumFunctionDeclaration(
368
+ CRZ_FUNCTION = NamedParamsQuantumFunctionDeclaration(
369
369
  name="CRZ",
370
370
  positional_arg_declarations=[
371
371
  ClassicalParameterDeclaration(
@@ -386,7 +386,7 @@ CRZ_FUNCTION = QuantumFunctionDeclaration(
386
386
  )
387
387
 
388
388
 
389
- CPHASE_FUNCTION = QuantumFunctionDeclaration(
389
+ CPHASE_FUNCTION = NamedParamsQuantumFunctionDeclaration(
390
390
  name="CPHASE",
391
391
  positional_arg_declarations=[
392
392
  ClassicalParameterDeclaration(
@@ -407,7 +407,7 @@ CPHASE_FUNCTION = QuantumFunctionDeclaration(
407
407
  )
408
408
 
409
409
 
410
- SWAP_FUNCTION = QuantumFunctionDeclaration(
410
+ SWAP_FUNCTION = NamedParamsQuantumFunctionDeclaration(
411
411
  name="SWAP",
412
412
  positional_arg_declarations=[
413
413
  PortDeclaration(
@@ -424,7 +424,7 @@ SWAP_FUNCTION = QuantumFunctionDeclaration(
424
424
  )
425
425
 
426
426
 
427
- IDENTITY_FUNCTION = QuantumFunctionDeclaration(
427
+ IDENTITY_FUNCTION = NamedParamsQuantumFunctionDeclaration(
428
428
  name="IDENTITY",
429
429
  positional_arg_declarations=[
430
430
  PortDeclaration(
@@ -434,7 +434,7 @@ IDENTITY_FUNCTION = QuantumFunctionDeclaration(
434
434
  ],
435
435
  )
436
436
 
437
- UNITARY_FUNCTION = QuantumFunctionDeclaration(
437
+ UNITARY_FUNCTION = NamedParamsQuantumFunctionDeclaration(
438
438
  name="unitary",
439
439
  positional_arg_declarations=[
440
440
  ClassicalParameterDeclaration(
@@ -452,7 +452,7 @@ UNITARY_FUNCTION = QuantumFunctionDeclaration(
452
452
  )
453
453
 
454
454
 
455
- PREPARE_STATE_FUNCTION = QuantumFunctionDeclaration(
455
+ PREPARE_STATE_FUNCTION = NamedParamsQuantumFunctionDeclaration(
456
456
  name="prepare_state",
457
457
  positional_arg_declarations=[
458
458
  ClassicalParameterDeclaration(
@@ -468,7 +468,7 @@ PREPARE_STATE_FUNCTION = QuantumFunctionDeclaration(
468
468
  ],
469
469
  )
470
470
 
471
- PREPARE_AMPLITUDES_FUNCTION = QuantumFunctionDeclaration(
471
+ PREPARE_AMPLITUDES_FUNCTION = NamedParamsQuantumFunctionDeclaration(
472
472
  name="prepare_amplitudes",
473
473
  positional_arg_declarations=[
474
474
  ClassicalParameterDeclaration(
@@ -487,7 +487,7 @@ PREPARE_AMPLITUDES_FUNCTION = QuantumFunctionDeclaration(
487
487
  ],
488
488
  )
489
489
 
490
- ADD_FUNCTION = QuantumFunctionDeclaration(
490
+ ADD_FUNCTION = NamedParamsQuantumFunctionDeclaration(
491
491
  name="add",
492
492
  positional_arg_declarations=[
493
493
  PortDeclaration(
@@ -509,7 +509,7 @@ ADD_FUNCTION = QuantumFunctionDeclaration(
509
509
  )
510
510
 
511
511
 
512
- MODULAR_ADD_FUNCTION = QuantumFunctionDeclaration(
512
+ MODULAR_ADD_FUNCTION = NamedParamsQuantumFunctionDeclaration(
513
513
  name="modular_add",
514
514
  positional_arg_declarations=[
515
515
  PortDeclaration(
@@ -524,7 +524,7 @@ MODULAR_ADD_FUNCTION = QuantumFunctionDeclaration(
524
524
  )
525
525
 
526
526
 
527
- INTEGER_XOR_FUNCTION = QuantumFunctionDeclaration(
527
+ INTEGER_XOR_FUNCTION = NamedParamsQuantumFunctionDeclaration(
528
528
  name="integer_xor",
529
529
  positional_arg_declarations=[
530
530
  PortDeclaration(
@@ -539,7 +539,7 @@ INTEGER_XOR_FUNCTION = QuantumFunctionDeclaration(
539
539
  )
540
540
 
541
541
 
542
- U_FUNCTION = QuantumFunctionDeclaration(
542
+ U_FUNCTION = NamedParamsQuantumFunctionDeclaration(
543
543
  name="U",
544
544
  positional_arg_declarations=[
545
545
  ClassicalParameterDeclaration(
@@ -567,7 +567,7 @@ U_FUNCTION = QuantumFunctionDeclaration(
567
567
  )
568
568
 
569
569
 
570
- CCX_FUNCTION = QuantumFunctionDeclaration(
570
+ CCX_FUNCTION = NamedParamsQuantumFunctionDeclaration(
571
571
  name="CCX",
572
572
  positional_arg_declarations=[
573
573
  PortDeclaration(
@@ -584,7 +584,7 @@ CCX_FUNCTION = QuantumFunctionDeclaration(
584
584
  )
585
585
 
586
586
 
587
- ALLOCATE_FUNCTION = QuantumFunctionDeclaration(
587
+ ALLOCATE_FUNCTION = NamedParamsQuantumFunctionDeclaration(
588
588
  name="allocate",
589
589
  positional_arg_declarations=[
590
590
  ClassicalParameterDeclaration(
@@ -600,7 +600,7 @@ ALLOCATE_FUNCTION = QuantumFunctionDeclaration(
600
600
  )
601
601
 
602
602
 
603
- FREE_FUNCTION = QuantumFunctionDeclaration(
603
+ FREE_FUNCTION = NamedParamsQuantumFunctionDeclaration(
604
604
  name="free",
605
605
  positional_arg_declarations=[
606
606
  PortDeclaration(
@@ -611,7 +611,7 @@ FREE_FUNCTION = QuantumFunctionDeclaration(
611
611
  )
612
612
 
613
613
 
614
- RANDOMIZED_BENCHMARKING = QuantumFunctionDeclaration(
614
+ RANDOMIZED_BENCHMARKING = NamedParamsQuantumFunctionDeclaration(
615
615
  name="randomized_benchmarking",
616
616
  positional_arg_declarations=[
617
617
  ClassicalParameterDeclaration(
@@ -626,7 +626,7 @@ RANDOMIZED_BENCHMARKING = QuantumFunctionDeclaration(
626
626
  )
627
627
 
628
628
 
629
- INPLACE_PREPARE_STATE = QuantumFunctionDeclaration(
629
+ INPLACE_PREPARE_STATE = NamedParamsQuantumFunctionDeclaration(
630
630
  name="inplace_prepare_state",
631
631
  positional_arg_declarations=[
632
632
  ClassicalParameterDeclaration(
@@ -646,7 +646,7 @@ INPLACE_PREPARE_STATE = QuantumFunctionDeclaration(
646
646
  )
647
647
 
648
648
 
649
- INPLACE_PREPARE_AMPLITUDES = QuantumFunctionDeclaration(
649
+ INPLACE_PREPARE_AMPLITUDES = NamedParamsQuantumFunctionDeclaration(
650
650
  name="inplace_prepare_amplitudes",
651
651
  positional_arg_declarations=[
652
652
  ClassicalParameterDeclaration(
@@ -1,90 +1,100 @@
1
1
  from classiq.interface.generator.expressions.expression import Expression
2
2
  from classiq.interface.generator.functions.classical_type import (
3
3
  ClassicalList,
4
- Enum,
5
4
  Integer,
6
5
  Real,
7
6
  )
8
7
  from classiq.interface.generator.functions.port_declaration import (
9
8
  PortDeclarationDirection,
10
9
  )
10
+ from classiq.interface.generator.functions.type_name import Enum
11
11
  from classiq.interface.generator.types.builtin_struct_declarations.pauli_struct_declarations import (
12
12
  Hamiltonian,
13
13
  )
14
+ from classiq.interface.model.classical_parameter_declaration import (
15
+ ClassicalParameterDeclaration,
16
+ )
14
17
  from classiq.interface.model.port_declaration import PortDeclaration
15
18
  from classiq.interface.model.quantum_function_declaration import (
16
- QuantumFunctionDeclaration,
19
+ NamedParamsQuantumFunctionDeclaration,
17
20
  )
18
21
 
19
- SINGLE_PAULI_EXPONENT_FUNCTION = QuantumFunctionDeclaration(
22
+ SINGLE_PAULI_EXPONENT_FUNCTION = NamedParamsQuantumFunctionDeclaration(
20
23
  name="single_pauli_exponent",
21
- param_decls={
22
- "pauli_string": ClassicalList(element_type=Enum(name="Pauli")),
23
- "coefficient": Real(),
24
- },
25
- port_declarations={
26
- "qbv": PortDeclaration(
24
+ positional_arg_declarations=[
25
+ ClassicalParameterDeclaration(
26
+ name="pauli_string",
27
+ classical_type=ClassicalList(element_type=Enum(name="Pauli")),
28
+ ),
29
+ ClassicalParameterDeclaration(name="coefficient", classical_type=Real()),
30
+ PortDeclaration(
27
31
  name="qbv",
28
32
  direction=PortDeclarationDirection.Inout,
29
33
  size=Expression(expr="get_field(pauli_string, 'len')"),
30
- )
31
- },
34
+ ),
35
+ ],
32
36
  )
33
37
 
34
38
 
35
- SUZUKI_TROTTER_FUNCTION = QuantumFunctionDeclaration(
39
+ SUZUKI_TROTTER_FUNCTION = NamedParamsQuantumFunctionDeclaration(
36
40
  name="suzuki_trotter",
37
- param_decls={
38
- "pauli_operator": Hamiltonian(),
39
- "evolution_coefficient": Real(),
40
- "order": Integer(),
41
- "repetitions": Integer(),
42
- },
43
- port_declarations={
44
- "qbv": PortDeclaration(
41
+ positional_arg_declarations=[
42
+ ClassicalParameterDeclaration(
43
+ name="pauli_operator", classical_type=Hamiltonian()
44
+ ),
45
+ ClassicalParameterDeclaration(
46
+ name="evolution_coefficient", classical_type=Real()
47
+ ),
48
+ ClassicalParameterDeclaration(name="order", classical_type=Integer()),
49
+ ClassicalParameterDeclaration(name="repetitions", classical_type=Integer()),
50
+ PortDeclaration(
45
51
  name="qbv",
46
52
  direction=PortDeclarationDirection.Inout,
47
53
  size=Expression(
48
54
  expr="get_field(get_field(pauli_operator[0], 'pauli'), 'len')"
49
55
  ),
50
- )
51
- },
56
+ ),
57
+ ],
52
58
  )
53
59
 
54
- QDRIFT_FUNCTION = QuantumFunctionDeclaration(
60
+ QDRIFT_FUNCTION = NamedParamsQuantumFunctionDeclaration(
55
61
  name="qdrift",
56
- param_decls={
57
- "pauli_operator": Hamiltonian(),
58
- "evolution_coefficient": Real(),
59
- "num_qdrift": Integer(),
60
- },
61
- port_declarations={
62
- "qbv": PortDeclaration(
62
+ positional_arg_declarations=[
63
+ ClassicalParameterDeclaration(
64
+ name="pauli_operator", classical_type=Hamiltonian()
65
+ ),
66
+ ClassicalParameterDeclaration(
67
+ name="evolution_coefficient", classical_type=Real()
68
+ ),
69
+ ClassicalParameterDeclaration(name="num_qdrift", classical_type=Integer()),
70
+ PortDeclaration(
63
71
  name="qbv",
64
72
  direction=PortDeclarationDirection.Inout,
65
73
  size=Expression(
66
74
  expr="get_field(get_field(pauli_operator[0], 'pauli'), 'len')"
67
75
  ),
68
- )
69
- },
76
+ ),
77
+ ],
70
78
  )
71
79
 
72
- EXPONENTIATION_WITH_DEPTH_CONSTRAINT = QuantumFunctionDeclaration(
80
+ EXPONENTIATION_WITH_DEPTH_CONSTRAINT = NamedParamsQuantumFunctionDeclaration(
73
81
  name="exponentiation_with_depth_constraint",
74
- param_decls={
75
- "pauli_operator": Hamiltonian(),
76
- "evolution_coefficient": Real(),
77
- "max_depth": Integer(),
78
- },
79
- port_declarations={
80
- "qbv": PortDeclaration(
82
+ positional_arg_declarations=[
83
+ ClassicalParameterDeclaration(
84
+ name="pauli_operator", classical_type=Hamiltonian()
85
+ ),
86
+ ClassicalParameterDeclaration(
87
+ name="evolution_coefficient", classical_type=Real()
88
+ ),
89
+ ClassicalParameterDeclaration(name="max_depth", classical_type=Integer()),
90
+ PortDeclaration(
81
91
  name="qbv",
82
92
  direction=PortDeclarationDirection.Inout,
83
93
  size=Expression(
84
94
  expr="get_field(get_field(pauli_operator[0], 'pauli'), 'len')"
85
95
  ),
86
- )
87
- },
96
+ ),
97
+ ],
88
98
  )
89
99
 
90
100
  __all__ = [