classiq 0.43.3__py3-none-any.whl → 0.44.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 +7 -1
- classiq/_internals/client.py +4 -7
- classiq/_internals/host_checker.py +34 -12
- classiq/_internals/jobs.py +2 -2
- classiq/applications/chemistry/chemistry_model_constructor.py +12 -6
- classiq/applications/combinatorial_helpers/allowed_constraints.py +4 -1
- classiq/applications/combinatorial_optimization/combinatorial_optimization_model_constructor.py +1 -1
- classiq/applications/finance/finance_model_constructor.py +3 -2
- 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/qlayer.py +1 -1
- classiq/exceptions.py +4 -0
- classiq/interface/_version.py +1 -1
- classiq/interface/ast_node.py +1 -18
- classiq/interface/backend/backend_preferences.py +10 -16
- 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 +3 -2
- classiq/interface/chemistry/operator.py +5 -1
- classiq/interface/debug_info/__init__.py +0 -0
- classiq/interface/debug_info/debug_info.py +32 -0
- classiq/interface/executor/execution_preferences.py +1 -45
- classiq/interface/executor/result.py +25 -12
- 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 +36 -22
- classiq/interface/generator/application_apis/qsvm_declarations.py +21 -15
- classiq/interface/generator/arith/arithmetic_expression_abc.py +21 -1
- classiq/interface/generator/arith/binary_ops.py +5 -4
- classiq/interface/generator/arith/extremum_operations.py +43 -19
- classiq/interface/generator/constant.py +1 -1
- classiq/interface/generator/expressions/atomic_expression_functions.py +1 -0
- classiq/interface/generator/expressions/expression_constants.py +3 -1
- classiq/interface/generator/expressions/qmod_qarray_proxy.py +52 -66
- classiq/interface/generator/expressions/qmod_qstruct_proxy.py +35 -0
- classiq/interface/generator/expressions/sympy_supported_expressions.py +2 -1
- 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 -76
- classiq/interface/generator/functions/concrete_types.py +55 -0
- classiq/interface/generator/functions/function_declaration.py +10 -10
- classiq/interface/generator/functions/type_name.py +104 -0
- classiq/interface/generator/generated_circuit_data.py +3 -3
- classiq/interface/generator/model/model.py +11 -0
- classiq/interface/generator/model/preferences/preferences.py +5 -0
- classiq/interface/generator/quantum_function_call.py +3 -0
- classiq/interface/generator/quantum_program.py +2 -2
- classiq/interface/generator/register_role.py +7 -1
- classiq/interface/generator/synthesis_metadata/synthesis_execution_data.py +1 -3
- classiq/interface/generator/types/builtin_struct_declarations/pauli_struct_declarations.py +1 -2
- classiq/interface/generator/types/qstruct_declaration.py +17 -0
- classiq/interface/generator/types/struct_declaration.py +1 -1
- classiq/interface/helpers/validation_helpers.py +1 -17
- classiq/interface/ide/visual_model.py +9 -2
- classiq/interface/interface_version.py +1 -0
- classiq/interface/model/bind_operation.py +25 -5
- 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 +16 -4
- classiq/interface/model/model.py +28 -5
- classiq/interface/model/native_function_definition.py +8 -4
- classiq/interface/model/parameter.py +14 -0
- classiq/interface/model/port_declaration.py +20 -2
- classiq/interface/model/quantum_expressions/amplitude_loading_operation.py +21 -6
- 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 +135 -192
- classiq/interface/model/quantum_function_declaration.py +147 -165
- classiq/interface/model/quantum_lambda_function.py +24 -6
- classiq/interface/model/quantum_statement.py +34 -8
- classiq/interface/model/quantum_type.py +61 -10
- classiq/interface/model/quantum_variable_declaration.py +1 -1
- classiq/interface/model/statement_block.py +2 -0
- classiq/interface/model/validation_handle.py +7 -0
- 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/functions.py +39 -11
- classiq/qmod/builtins/operations.py +171 -40
- classiq/qmod/declaration_inferrer.py +99 -56
- 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_parameter.py +1 -2
- classiq/qmod/qmod_variable.py +364 -172
- classiq/qmod/quantum_callable.py +3 -3
- classiq/qmod/quantum_expandable.py +119 -65
- classiq/qmod/quantum_function.py +15 -3
- classiq/qmod/semantics/annotation.py +12 -13
- classiq/qmod/semantics/error_manager.py +36 -10
- classiq/qmod/semantics/static_semantics_visitor.py +163 -75
- classiq/qmod/semantics/validation/func_call_validation.py +42 -96
- classiq/qmod/semantics/validation/handle_validation.py +85 -0
- classiq/qmod/semantics/validation/types_validation.py +108 -1
- classiq/qmod/type_attribute_remover.py +32 -0
- classiq/qmod/utilities.py +26 -5
- {classiq-0.43.3.dist-info → classiq-0.44.0.dist-info}/METADATA +3 -3
- {classiq-0.43.3.dist-info → classiq-0.44.0.dist-info}/RECORD +111 -99
- classiq/qmod/qmod_struct.py +0 -13
- /classiq/{interface/ide/show.py → show.py} +0 -0
- {classiq-0.43.3.dist-info → classiq-0.44.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__ = [
|