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.
- classiq/__init__.py +8 -3
- classiq/_internals/api_wrapper.py +2 -2
- classiq/_internals/authentication/auth0.py +1 -1
- classiq/_internals/authentication/device.py +5 -1
- classiq/_internals/authentication/token_manager.py +5 -4
- classiq/_internals/client.py +5 -8
- classiq/_internals/config.py +1 -2
- classiq/_internals/host_checker.py +34 -13
- classiq/_internals/jobs.py +3 -3
- classiq/analyzer/analyzer.py +1 -1
- classiq/analyzer/analyzer_utilities.py +1 -1
- classiq/analyzer/rb.py +1 -1
- classiq/applications/chemistry/chemistry_model_constructor.py +13 -7
- classiq/applications/combinatorial_helpers/allowed_constraints.py +4 -1
- classiq/applications/combinatorial_helpers/arithmetic/isolation.py +1 -1
- classiq/applications/combinatorial_helpers/encoding_mapping.py +1 -1
- classiq/applications/combinatorial_helpers/encoding_utils.py +2 -1
- classiq/applications/combinatorial_helpers/optimization_model.py +1 -1
- classiq/applications/combinatorial_helpers/pauli_helpers/pauli_utils.py +1 -1
- classiq/applications/combinatorial_helpers/pyomo_utils.py +1 -2
- classiq/applications/combinatorial_helpers/transformations/encoding.py +1 -1
- classiq/applications/combinatorial_helpers/transformations/fixed_variables.py +5 -4
- classiq/applications/combinatorial_helpers/transformations/ising_converter.py +1 -1
- classiq/applications/combinatorial_helpers/transformations/sign_seperation.py +1 -1
- classiq/applications/combinatorial_optimization/combinatorial_optimization_model_constructor.py +1 -1
- classiq/applications/finance/finance_model_constructor.py +4 -3
- classiq/applications/grover/grover_model_constructor.py +7 -5
- classiq/applications/hamiltonian/__init__.py +0 -0
- classiq/applications/hamiltonian/pauli_decomposition.py +113 -0
- classiq/applications/qnn/circuit_utils.py +1 -1
- classiq/applications/qnn/datasets/dataset_base_classes.py +2 -1
- classiq/applications/qnn/datasets/dataset_not.py +2 -1
- classiq/applications/qnn/qlayer.py +3 -2
- classiq/applications/qnn/torch_utils.py +2 -1
- classiq/applications/qsvm/qsvm_model_constructor.py +1 -1
- classiq/execution/execution_session.py +1 -1
- classiq/execution/jobs.py +5 -2
- classiq/interface/_version.py +1 -1
- classiq/interface/analyzer/cytoscape_graph.py +1 -2
- classiq/interface/analyzer/result.py +2 -3
- classiq/interface/ast_node.py +1 -18
- classiq/interface/backend/backend_preferences.py +11 -18
- classiq/interface/backend/ionq/ionq_quantum_program.py +1 -1
- classiq/interface/backend/pydantic_backend.py +0 -5
- classiq/interface/backend/quantum_backend_providers.py +4 -3
- classiq/interface/chemistry/fermionic_operator.py +1 -2
- classiq/interface/chemistry/ground_state_problem.py +2 -3
- classiq/interface/chemistry/molecule.py +1 -2
- classiq/interface/chemistry/operator.py +8 -10
- classiq/interface/combinatorial_optimization/encoding_types.py +1 -1
- classiq/interface/combinatorial_optimization/mht_qaoa_input.py +1 -1
- classiq/interface/combinatorial_optimization/solver_types.py +1 -1
- classiq/interface/debug_info/__init__.py +0 -0
- classiq/interface/debug_info/debug_info.py +32 -0
- classiq/{exceptions.py → interface/exceptions.py} +4 -0
- classiq/interface/executor/aws_execution_cost.py +2 -2
- classiq/interface/executor/execution_preferences.py +2 -47
- classiq/interface/executor/execution_result.py +1 -2
- classiq/interface/executor/optimizer_preferences.py +2 -3
- classiq/interface/executor/quantum_code.py +1 -2
- classiq/interface/executor/quantum_instruction_set.py +2 -2
- classiq/interface/executor/register_initialization.py +1 -2
- classiq/interface/executor/result.py +29 -14
- classiq/interface/finance/function_input.py +6 -11
- classiq/interface/generator/amplitude_loading.py +2 -3
- classiq/interface/generator/ansatz_library.py +1 -1
- classiq/interface/generator/application_apis/arithmetic_declarations.py +8 -5
- classiq/interface/generator/application_apis/chemistry_declarations.py +78 -60
- classiq/interface/generator/application_apis/combinatorial_optimization_declarations.py +19 -10
- classiq/interface/generator/application_apis/entangler_declarations.py +11 -6
- classiq/interface/generator/application_apis/finance_declarations.py +37 -44
- classiq/interface/generator/application_apis/qsvm_declarations.py +21 -15
- classiq/interface/generator/arith/arithmetic.py +10 -8
- classiq/interface/generator/arith/arithmetic_arg_type_validator.py +1 -2
- classiq/interface/generator/arith/arithmetic_expression_abc.py +22 -3
- classiq/interface/generator/arith/arithmetic_expression_parser.py +3 -4
- classiq/interface/generator/arith/arithmetic_expression_validator.py +1 -2
- classiq/interface/generator/arith/arithmetic_param_getters.py +1 -2
- classiq/interface/generator/arith/arithmetic_result_builder.py +15 -11
- classiq/interface/generator/arith/ast_node_rewrite.py +1 -1
- classiq/interface/generator/arith/binary_ops.py +7 -7
- classiq/interface/generator/arith/endianness.py +1 -1
- classiq/interface/generator/arith/extremum_operations.py +44 -21
- classiq/interface/generator/arith/logical_ops.py +1 -2
- classiq/interface/generator/arith/register_user_input.py +1 -2
- classiq/interface/generator/arith/unary_ops.py +1 -2
- classiq/interface/generator/arith/uncomputation_methods.py +1 -1
- classiq/interface/generator/chemistry_function_params.py +1 -2
- classiq/interface/generator/circuit_code/circuit_code.py +1 -2
- classiq/interface/generator/circuit_code/types_and_constants.py +1 -2
- classiq/interface/generator/commuting_pauli_exponentiation.py +1 -2
- classiq/interface/generator/constant.py +1 -1
- classiq/interface/generator/control_state.py +1 -2
- classiq/interface/generator/custom_ansatz.py +1 -2
- classiq/interface/generator/expressions/atomic_expression_functions.py +1 -0
- classiq/interface/generator/expressions/enums/finance_functions.py +4 -5
- classiq/interface/generator/expressions/evaluated_expression.py +1 -2
- classiq/interface/generator/expressions/expression.py +1 -2
- classiq/interface/generator/expressions/expression_constants.py +3 -1
- classiq/interface/generator/expressions/non_symbolic_expr.py +1 -1
- classiq/interface/generator/expressions/qmod_qarray_proxy.py +53 -70
- classiq/interface/generator/expressions/qmod_qscalar_proxy.py +2 -7
- classiq/interface/generator/expressions/qmod_qstruct_proxy.py +35 -0
- classiq/interface/generator/expressions/qmod_sized_proxy.py +1 -1
- classiq/interface/generator/expressions/sympy_supported_expressions.py +2 -1
- classiq/interface/generator/function_params.py +2 -3
- classiq/interface/generator/functions/builtins/core_library/__init__.py +4 -2
- classiq/interface/generator/functions/builtins/core_library/atomic_quantum_functions.py +41 -41
- classiq/interface/generator/functions/builtins/core_library/exponentiation_functions.py +52 -42
- classiq/interface/generator/functions/builtins/open_lib_functions.py +1095 -3347
- classiq/interface/generator/functions/builtins/quantum_operators.py +9 -22
- classiq/interface/generator/functions/classical_function_declaration.py +14 -6
- classiq/interface/generator/functions/classical_type.py +7 -114
- classiq/interface/generator/functions/concrete_types.py +55 -0
- classiq/interface/generator/functions/function_declaration.py +10 -10
- classiq/interface/generator/functions/port_declaration.py +1 -2
- classiq/interface/generator/functions/type_name.py +80 -0
- classiq/interface/generator/generated_circuit_data.py +3 -3
- classiq/interface/generator/grover_diffuser.py +1 -2
- classiq/interface/generator/grover_operator.py +1 -2
- classiq/interface/generator/hamiltonian_evolution/exponentiation.py +1 -2
- classiq/interface/generator/hamiltonian_evolution/suzuki_trotter.py +1 -2
- classiq/interface/generator/hardware/hardware_data.py +1 -2
- classiq/interface/generator/hardware_efficient_ansatz.py +2 -3
- classiq/interface/generator/hartree_fock.py +1 -2
- classiq/interface/generator/linear_pauli_rotations.py +1 -2
- classiq/interface/generator/mcmt_method.py +1 -1
- classiq/interface/generator/mcu.py +1 -2
- classiq/interface/generator/mcx.py +1 -2
- classiq/interface/generator/model/constraints.py +2 -3
- classiq/interface/generator/model/model.py +12 -2
- classiq/interface/generator/model/preferences/preferences.py +7 -3
- classiq/interface/generator/model/quantum_register.py +1 -2
- classiq/interface/generator/oracles/arithmetic_oracle.py +1 -2
- classiq/interface/generator/oracles/custom_oracle.py +1 -2
- classiq/interface/generator/oracles/oracle_abc.py +1 -2
- classiq/interface/generator/partitioned_register.py +1 -2
- classiq/interface/generator/piecewise_linear_amplitude_loading.py +1 -2
- classiq/interface/generator/preferences/optimization.py +1 -2
- classiq/interface/generator/qpe.py +1 -2
- classiq/interface/generator/qsvm.py +2 -3
- classiq/interface/generator/quantum_function_call.py +4 -2
- classiq/interface/generator/quantum_program.py +6 -7
- classiq/interface/generator/range_types.py +1 -1
- classiq/interface/generator/register_role.py +8 -2
- classiq/interface/generator/slice_parsing_utils.py +1 -2
- classiq/interface/generator/standard_gates/controlled_standard_gates.py +1 -2
- classiq/interface/generator/state_preparation/metrics.py +2 -3
- classiq/interface/generator/state_preparation/state_preparation.py +1 -2
- classiq/interface/generator/synthesis_metadata/synthesis_execution_data.py +1 -3
- classiq/interface/generator/transpiler_basis_gates.py +1 -1
- classiq/interface/generator/types/builtin_enum_declarations.py +38 -45
- classiq/interface/generator/types/builtin_struct_declarations/pauli_struct_declarations.py +1 -2
- classiq/interface/generator/types/enum_declaration.py +1 -2
- classiq/interface/generator/types/qstruct_declaration.py +17 -0
- classiq/interface/generator/types/struct_declaration.py +2 -3
- classiq/interface/generator/ucc.py +1 -2
- classiq/interface/generator/unitary_gate.py +1 -2
- classiq/interface/generator/validations/flow_graph.py +1 -2
- classiq/interface/generator/validations/validator_functions.py +1 -2
- classiq/interface/hardware.py +1 -1
- classiq/interface/helpers/validation_helpers.py +2 -19
- classiq/interface/ide/visual_model.py +10 -4
- classiq/interface/interface_version.py +1 -0
- classiq/interface/jobs.py +2 -3
- classiq/interface/model/bind_operation.py +26 -7
- classiq/interface/model/classical_parameter_declaration.py +8 -5
- classiq/interface/model/control.py +5 -5
- classiq/interface/model/handle_binding.py +185 -12
- classiq/interface/model/inplace_binary_operation.py +17 -6
- classiq/interface/model/model.py +29 -7
- classiq/interface/model/native_function_definition.py +8 -4
- classiq/interface/model/parameter.py +13 -0
- classiq/interface/model/port_declaration.py +21 -4
- classiq/interface/model/quantum_expressions/amplitude_loading_operation.py +22 -8
- classiq/interface/model/quantum_expressions/arithmetic_operation.py +30 -6
- classiq/interface/model/quantum_expressions/quantum_expression.py +4 -9
- classiq/interface/model/quantum_function_call.py +136 -194
- classiq/interface/model/quantum_function_declaration.py +147 -165
- classiq/interface/model/quantum_lambda_function.py +23 -6
- classiq/interface/model/quantum_statement.py +34 -8
- classiq/interface/model/quantum_type.py +41 -11
- classiq/interface/model/quantum_variable_declaration.py +1 -1
- classiq/interface/model/statement_block.py +2 -0
- classiq/interface/model/validation_handle.py +8 -2
- classiq/interface/server/global_versions.py +4 -4
- classiq/interface/server/routes.py +2 -0
- classiq/interface/source_reference.py +59 -0
- classiq/qmod/__init__.py +2 -3
- classiq/qmod/builtins/classical_execution_primitives.py +1 -1
- classiq/qmod/builtins/functions.py +39 -11
- classiq/qmod/builtins/operations.py +172 -41
- classiq/qmod/classical_function.py +1 -1
- classiq/qmod/declaration_inferrer.py +102 -57
- classiq/qmod/expression_query.py +1 -1
- classiq/qmod/model_state_container.py +2 -0
- classiq/qmod/native/pretty_printer.py +71 -53
- classiq/qmod/pretty_print/pretty_printer.py +98 -52
- classiq/qmod/qfunc.py +11 -5
- classiq/qmod/qmod_constant.py +1 -1
- classiq/qmod/qmod_parameter.py +27 -4
- classiq/qmod/qmod_variable.py +405 -174
- classiq/qmod/quantum_callable.py +3 -3
- classiq/qmod/quantum_expandable.py +128 -68
- classiq/qmod/quantum_function.py +24 -5
- classiq/qmod/semantics/annotation.py +13 -15
- classiq/qmod/semantics/error_manager.py +36 -10
- classiq/qmod/semantics/static_semantics_visitor.py +164 -76
- classiq/qmod/semantics/validation/func_call_validation.py +43 -97
- classiq/qmod/semantics/validation/handle_validation.py +85 -0
- classiq/qmod/semantics/validation/types_validation.py +108 -1
- classiq/qmod/symbolic.py +2 -1
- classiq/qmod/type_attribute_remover.py +32 -0
- classiq/qmod/utilities.py +26 -5
- classiq/{interface/ide/show.py → show.py} +1 -1
- {classiq-0.43.3.dist-info → classiq-0.45.0.dist-info}/METADATA +3 -3
- {classiq-0.43.3.dist-info → classiq-0.45.0.dist-info}/RECORD +219 -207
- classiq/qmod/qmod_struct.py +0 -13
- /classiq/{_internals → interface}/enum_utils.py +0 -0
- {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
|
-
|
15
|
+
NamedParamsQuantumFunctionDeclaration,
|
16
16
|
)
|
17
17
|
|
18
18
|
DEFAULT_TARGET_NAME = "target"
|
19
19
|
|
20
|
-
H_FUNCTION =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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
|
-
|
19
|
+
NamedParamsQuantumFunctionDeclaration,
|
17
20
|
)
|
18
21
|
|
19
|
-
SINGLE_PAULI_EXPONENT_FUNCTION =
|
22
|
+
SINGLE_PAULI_EXPONENT_FUNCTION = NamedParamsQuantumFunctionDeclaration(
|
20
23
|
name="single_pauli_exponent",
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
"
|
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 =
|
39
|
+
SUZUKI_TROTTER_FUNCTION = NamedParamsQuantumFunctionDeclaration(
|
36
40
|
name="suzuki_trotter",
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
"
|
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 =
|
60
|
+
QDRIFT_FUNCTION = NamedParamsQuantumFunctionDeclaration(
|
55
61
|
name="qdrift",
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
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 =
|
80
|
+
EXPONENTIATION_WITH_DEPTH_CONSTRAINT = NamedParamsQuantumFunctionDeclaration(
|
73
81
|
name="exponentiation_with_depth_constraint",
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
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__ = [
|