classiq 0.36.1__py3-none-any.whl → 0.37.1__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 +1 -0
- classiq/_internals/api_wrapper.py +24 -6
- classiq/_internals/authentication/device.py +6 -3
- classiq/_internals/authentication/token_manager.py +21 -5
- classiq/_internals/client.py +7 -2
- classiq/_internals/config.py +12 -0
- classiq/_internals/host_checker.py +1 -1
- classiq/_internals/jobs.py +3 -1
- classiq/_internals/type_validation.py +3 -6
- classiq/analyzer/analyzer.py +1 -0
- classiq/analyzer/rb.py +3 -5
- classiq/applications_model_constructors/chemistry_model_constructor.py +0 -1
- classiq/applications_model_constructors/grover_model_constructor.py +27 -18
- classiq/execution/jobs.py +13 -4
- classiq/executor.py +3 -2
- classiq/interface/_version.py +1 -1
- classiq/interface/analyzer/analysis_params.py +0 -6
- classiq/interface/analyzer/result.py +0 -4
- classiq/interface/backend/backend_preferences.py +2 -2
- classiq/interface/backend/quantum_backend_providers.py +1 -1
- classiq/interface/execution/resource_estimator.py +7 -0
- classiq/interface/execution/result.py +5 -0
- classiq/interface/generator/ansatz_library.py +3 -3
- classiq/interface/generator/arith/binary_ops.py +1 -3
- classiq/interface/generator/expressions/atomic_expression_functions.py +2 -0
- classiq/interface/generator/expressions/qmod_qnum_proxy.py +22 -0
- classiq/interface/generator/expressions/qmod_sized_proxy.py +2 -12
- classiq/interface/generator/functions/core_lib_declarations/quantum_functions/std_lib_functions.py +140 -14
- classiq/interface/generator/functions/core_lib_declarations/quantum_operators.py +3 -20
- classiq/interface/generator/functions/native_function_definition.py +3 -3
- classiq/interface/generator/model/constraints.py +3 -3
- classiq/interface/generator/model/preferences/preferences.py +10 -8
- classiq/interface/generator/noise_properties.py +5 -5
- classiq/interface/generator/qpe.py +5 -5
- classiq/interface/generator/quantum_function_call.py +5 -3
- classiq/interface/generator/visitor.py +1 -2
- classiq/interface/hardware.py +1 -1
- classiq/interface/model/native_function_definition.py +2 -24
- classiq/interface/model/quantum_expressions/amplitude_loading_operation.py +2 -2
- classiq/interface/model/quantum_expressions/arithmetic_operation.py +2 -2
- classiq/interface/model/quantum_expressions/control_state.py +38 -0
- classiq/interface/model/quantum_expressions/quantum_expression.py +12 -9
- classiq/interface/model/quantum_function_call.py +3 -0
- classiq/interface/model/quantum_function_declaration.py +3 -3
- classiq/interface/model/quantum_if_operation.py +95 -0
- classiq/interface/model/validations/handles_validator.py +7 -15
- classiq/interface/server/routes.py +10 -6
- classiq/model/function_handler.pyi +84 -84
- classiq/model/model.py +1 -0
- classiq/qmod/__init__.py +4 -1
- classiq/qmod/builtins/__init__.py +13 -1
- classiq/qmod/builtins/classical_execution_primitives.py +109 -0
- classiq/qmod/builtins/classical_functions.py +68 -0
- classiq/qmod/builtins/functions.py +47 -21
- classiq/qmod/builtins/operations.py +15 -29
- classiq/qmod/classical_function.py +40 -0
- classiq/qmod/declaration_inferrer.py +5 -2
- classiq/qmod/qmod_variable.py +15 -3
- classiq/qmod/quantum_callable.py +24 -3
- classiq/qmod/quantum_expandable.py +99 -17
- classiq/qmod/quantum_function.py +12 -2
- classiq/qmod/symbolic.py +109 -107
- classiq/qmod/symbolic_expr.py +1 -4
- classiq/qmod/symbolic_type.py +8 -0
- classiq/quantum_functions/decorators.py +2 -4
- classiq/quantum_functions/function_library.py +1 -0
- {classiq-0.36.1.dist-info → classiq-0.37.1.dist-info}/METADATA +1 -1
- {classiq-0.36.1.dist-info → classiq-0.37.1.dist-info}/RECORD +69 -61
- classiq/interface/model/local_variable_declaration.py +0 -7
- {classiq-0.36.1.dist-info → classiq-0.37.1.dist-info}/WHEEL +0 -0
classiq/qmod/symbolic.py
CHANGED
@@ -1,7 +1,9 @@
|
|
1
1
|
import sys
|
2
2
|
from typing import Tuple
|
3
3
|
|
4
|
-
from classiq.qmod.
|
4
|
+
from classiq.qmod.qmod_parameter import QParamScalar
|
5
|
+
from classiq.qmod.symbolic_expr import SymbolicExpr
|
6
|
+
from classiq.qmod.symbolic_type import SymbolicTypes
|
5
7
|
|
6
8
|
pi = SymbolicExpr("pi")
|
7
9
|
E = SymbolicExpr("E")
|
@@ -11,217 +13,217 @@ EulerGamma = SymbolicExpr("EulerGamma")
|
|
11
13
|
Catalan = SymbolicExpr("Catalan")
|
12
14
|
|
13
15
|
|
14
|
-
def
|
16
|
+
def symbolic_function(*args: SymbolicTypes) -> QParamScalar:
|
15
17
|
str_args = [str(x) for x in args]
|
16
|
-
return
|
18
|
+
return QParamScalar(f"{sys._getframe(1).f_code.co_name}({','.join(str_args)})")
|
17
19
|
|
18
20
|
|
19
|
-
def sin(x: SymbolicTypes) ->
|
20
|
-
return
|
21
|
+
def sin(x: SymbolicTypes) -> QParamScalar:
|
22
|
+
return symbolic_function(x)
|
21
23
|
|
22
24
|
|
23
|
-
def cos(x: SymbolicTypes) ->
|
24
|
-
return
|
25
|
+
def cos(x: SymbolicTypes) -> QParamScalar:
|
26
|
+
return symbolic_function(x)
|
25
27
|
|
26
28
|
|
27
|
-
def tan(x: SymbolicTypes) ->
|
28
|
-
return
|
29
|
+
def tan(x: SymbolicTypes) -> QParamScalar:
|
30
|
+
return symbolic_function(x)
|
29
31
|
|
30
32
|
|
31
|
-
def cot(x: SymbolicTypes) ->
|
32
|
-
return
|
33
|
+
def cot(x: SymbolicTypes) -> QParamScalar:
|
34
|
+
return symbolic_function(x)
|
33
35
|
|
34
36
|
|
35
|
-
def sec(x: SymbolicTypes) ->
|
36
|
-
return
|
37
|
+
def sec(x: SymbolicTypes) -> QParamScalar:
|
38
|
+
return symbolic_function(x)
|
37
39
|
|
38
40
|
|
39
|
-
def csc(x: SymbolicTypes) ->
|
40
|
-
return
|
41
|
+
def csc(x: SymbolicTypes) -> QParamScalar:
|
42
|
+
return symbolic_function(x)
|
41
43
|
|
42
44
|
|
43
|
-
def asin(x: SymbolicTypes) ->
|
44
|
-
return
|
45
|
+
def asin(x: SymbolicTypes) -> QParamScalar:
|
46
|
+
return symbolic_function(x)
|
45
47
|
|
46
48
|
|
47
|
-
def acos(x: SymbolicTypes) ->
|
48
|
-
return
|
49
|
+
def acos(x: SymbolicTypes) -> QParamScalar:
|
50
|
+
return symbolic_function(x)
|
49
51
|
|
50
52
|
|
51
|
-
def atan(x: SymbolicTypes) ->
|
52
|
-
return
|
53
|
+
def atan(x: SymbolicTypes) -> QParamScalar:
|
54
|
+
return symbolic_function(x)
|
53
55
|
|
54
56
|
|
55
|
-
def acot(x: SymbolicTypes) ->
|
56
|
-
return
|
57
|
+
def acot(x: SymbolicTypes) -> QParamScalar:
|
58
|
+
return symbolic_function(x)
|
57
59
|
|
58
60
|
|
59
|
-
def asec(x: SymbolicTypes) ->
|
60
|
-
return
|
61
|
+
def asec(x: SymbolicTypes) -> QParamScalar:
|
62
|
+
return symbolic_function(x)
|
61
63
|
|
62
64
|
|
63
|
-
def acsc(x: SymbolicTypes) ->
|
64
|
-
return
|
65
|
+
def acsc(x: SymbolicTypes) -> QParamScalar:
|
66
|
+
return symbolic_function(x)
|
65
67
|
|
66
68
|
|
67
|
-
def sinh(x: SymbolicTypes) ->
|
68
|
-
return
|
69
|
+
def sinh(x: SymbolicTypes) -> QParamScalar:
|
70
|
+
return symbolic_function(x)
|
69
71
|
|
70
72
|
|
71
|
-
def cosh(x: SymbolicTypes) ->
|
72
|
-
return
|
73
|
+
def cosh(x: SymbolicTypes) -> QParamScalar:
|
74
|
+
return symbolic_function(x)
|
73
75
|
|
74
76
|
|
75
|
-
def tanh(x: SymbolicTypes) ->
|
76
|
-
return
|
77
|
+
def tanh(x: SymbolicTypes) -> QParamScalar:
|
78
|
+
return symbolic_function(x)
|
77
79
|
|
78
80
|
|
79
|
-
def coth(x: SymbolicTypes) ->
|
80
|
-
return
|
81
|
+
def coth(x: SymbolicTypes) -> QParamScalar:
|
82
|
+
return symbolic_function(x)
|
81
83
|
|
82
84
|
|
83
|
-
def sech(x: SymbolicTypes) ->
|
84
|
-
return
|
85
|
+
def sech(x: SymbolicTypes) -> QParamScalar:
|
86
|
+
return symbolic_function(x)
|
85
87
|
|
86
88
|
|
87
|
-
def csch(x: SymbolicTypes) ->
|
88
|
-
return
|
89
|
+
def csch(x: SymbolicTypes) -> QParamScalar:
|
90
|
+
return symbolic_function(x)
|
89
91
|
|
90
92
|
|
91
|
-
def asinh(x: SymbolicTypes) ->
|
92
|
-
return
|
93
|
+
def asinh(x: SymbolicTypes) -> QParamScalar:
|
94
|
+
return symbolic_function(x)
|
93
95
|
|
94
96
|
|
95
|
-
def acosh(x: SymbolicTypes) ->
|
96
|
-
return
|
97
|
+
def acosh(x: SymbolicTypes) -> QParamScalar:
|
98
|
+
return symbolic_function(x)
|
97
99
|
|
98
100
|
|
99
|
-
def atanh(x: SymbolicTypes) ->
|
100
|
-
return
|
101
|
+
def atanh(x: SymbolicTypes) -> QParamScalar:
|
102
|
+
return symbolic_function(x)
|
101
103
|
|
102
104
|
|
103
|
-
def acoth(x: SymbolicTypes) ->
|
104
|
-
return
|
105
|
+
def acoth(x: SymbolicTypes) -> QParamScalar:
|
106
|
+
return symbolic_function(x)
|
105
107
|
|
106
108
|
|
107
|
-
def asech(x: SymbolicTypes) ->
|
108
|
-
return
|
109
|
+
def asech(x: SymbolicTypes) -> QParamScalar:
|
110
|
+
return symbolic_function(x)
|
109
111
|
|
110
112
|
|
111
|
-
def exp(x: SymbolicTypes) ->
|
112
|
-
return
|
113
|
+
def exp(x: SymbolicTypes) -> QParamScalar:
|
114
|
+
return symbolic_function(x)
|
113
115
|
|
114
116
|
|
115
|
-
def log(x: SymbolicTypes, base: SymbolicTypes = E) ->
|
116
|
-
return
|
117
|
+
def log(x: SymbolicTypes, base: SymbolicTypes = E) -> QParamScalar:
|
118
|
+
return symbolic_function(x, base)
|
117
119
|
|
118
120
|
|
119
|
-
def ln(x: SymbolicTypes) ->
|
120
|
-
return
|
121
|
+
def ln(x: SymbolicTypes) -> QParamScalar:
|
122
|
+
return symbolic_function(x)
|
121
123
|
|
122
124
|
|
123
|
-
def sqrt(x: SymbolicTypes) ->
|
124
|
-
return
|
125
|
+
def sqrt(x: SymbolicTypes) -> QParamScalar:
|
126
|
+
return symbolic_function(x)
|
125
127
|
|
126
128
|
|
127
|
-
def abs(x: SymbolicTypes) ->
|
128
|
-
return
|
129
|
+
def abs(x: SymbolicTypes) -> QParamScalar:
|
130
|
+
return symbolic_function(x)
|
129
131
|
|
130
132
|
|
131
|
-
def floor(x: SymbolicTypes) ->
|
132
|
-
return
|
133
|
+
def floor(x: SymbolicTypes) -> QParamScalar:
|
134
|
+
return symbolic_function(x)
|
133
135
|
|
134
136
|
|
135
|
-
def ceiling(x: SymbolicTypes) ->
|
136
|
-
return
|
137
|
+
def ceiling(x: SymbolicTypes) -> QParamScalar:
|
138
|
+
return symbolic_function(x)
|
137
139
|
|
138
140
|
|
139
|
-
def erf(x: SymbolicTypes) ->
|
140
|
-
return
|
141
|
+
def erf(x: SymbolicTypes) -> QParamScalar:
|
142
|
+
return symbolic_function(x)
|
141
143
|
|
142
144
|
|
143
|
-
def erfc(x: SymbolicTypes) ->
|
144
|
-
return
|
145
|
+
def erfc(x: SymbolicTypes) -> QParamScalar:
|
146
|
+
return symbolic_function(x)
|
145
147
|
|
146
148
|
|
147
|
-
def gamma(x: SymbolicTypes) ->
|
148
|
-
return
|
149
|
+
def gamma(x: SymbolicTypes) -> QParamScalar:
|
150
|
+
return symbolic_function(x)
|
149
151
|
|
150
152
|
|
151
|
-
def beta(x: SymbolicTypes) ->
|
152
|
-
return
|
153
|
+
def beta(x: SymbolicTypes) -> QParamScalar:
|
154
|
+
return symbolic_function(x)
|
153
155
|
|
154
156
|
|
155
|
-
def besselj(x: SymbolicTypes) ->
|
156
|
-
return
|
157
|
+
def besselj(x: SymbolicTypes) -> QParamScalar:
|
158
|
+
return symbolic_function(x)
|
157
159
|
|
158
160
|
|
159
|
-
def bessely(x: SymbolicTypes) ->
|
160
|
-
return
|
161
|
+
def bessely(x: SymbolicTypes) -> QParamScalar:
|
162
|
+
return symbolic_function(x)
|
161
163
|
|
162
164
|
|
163
|
-
def besseli(x: SymbolicTypes) ->
|
164
|
-
return
|
165
|
+
def besseli(x: SymbolicTypes) -> QParamScalar:
|
166
|
+
return symbolic_function(x)
|
165
167
|
|
166
168
|
|
167
|
-
def besselk(x: SymbolicTypes) ->
|
168
|
-
return
|
169
|
+
def besselk(x: SymbolicTypes) -> QParamScalar:
|
170
|
+
return symbolic_function(x)
|
169
171
|
|
170
172
|
|
171
|
-
def dirichlet_eta(x: SymbolicTypes) ->
|
172
|
-
return
|
173
|
+
def dirichlet_eta(x: SymbolicTypes) -> QParamScalar:
|
174
|
+
return symbolic_function(x)
|
173
175
|
|
174
176
|
|
175
|
-
def polygamma(x: SymbolicTypes) ->
|
176
|
-
return
|
177
|
+
def polygamma(x: SymbolicTypes) -> QParamScalar:
|
178
|
+
return symbolic_function(x)
|
177
179
|
|
178
180
|
|
179
|
-
def loggamma(x: SymbolicTypes) ->
|
180
|
-
return
|
181
|
+
def loggamma(x: SymbolicTypes) -> QParamScalar:
|
182
|
+
return symbolic_function(x)
|
181
183
|
|
182
184
|
|
183
|
-
def factorial(x: SymbolicTypes) ->
|
184
|
-
return
|
185
|
+
def factorial(x: SymbolicTypes) -> QParamScalar:
|
186
|
+
return symbolic_function(x)
|
185
187
|
|
186
188
|
|
187
|
-
def binomial(x: SymbolicTypes) ->
|
188
|
-
return
|
189
|
+
def binomial(x: SymbolicTypes) -> QParamScalar:
|
190
|
+
return symbolic_function(x)
|
189
191
|
|
190
192
|
|
191
|
-
def subfactorial(x: SymbolicTypes) ->
|
192
|
-
return
|
193
|
+
def subfactorial(x: SymbolicTypes) -> QParamScalar:
|
194
|
+
return symbolic_function(x)
|
193
195
|
|
194
196
|
|
195
|
-
def primorial(x: SymbolicTypes) ->
|
196
|
-
return
|
197
|
+
def primorial(x: SymbolicTypes) -> QParamScalar:
|
198
|
+
return symbolic_function(x)
|
197
199
|
|
198
200
|
|
199
|
-
def bell(x: SymbolicTypes) ->
|
200
|
-
return
|
201
|
+
def bell(x: SymbolicTypes) -> QParamScalar:
|
202
|
+
return symbolic_function(x)
|
201
203
|
|
202
204
|
|
203
|
-
def bernoulli(x: SymbolicTypes) ->
|
204
|
-
return
|
205
|
+
def bernoulli(x: SymbolicTypes) -> QParamScalar:
|
206
|
+
return symbolic_function(x)
|
205
207
|
|
206
208
|
|
207
|
-
def euler(x: SymbolicTypes) ->
|
208
|
-
return
|
209
|
+
def euler(x: SymbolicTypes) -> QParamScalar:
|
210
|
+
return symbolic_function(x)
|
209
211
|
|
210
212
|
|
211
|
-
def catalan(x: SymbolicTypes) ->
|
212
|
-
return
|
213
|
+
def catalan(x: SymbolicTypes) -> QParamScalar:
|
214
|
+
return symbolic_function(x)
|
213
215
|
|
214
216
|
|
215
|
-
def Piecewise(*args: Tuple[SymbolicTypes, SymbolicTypes]) ->
|
216
|
-
return
|
217
|
+
def Piecewise(*args: Tuple[SymbolicTypes, SymbolicTypes]) -> QParamScalar: # noqa: N802
|
218
|
+
return symbolic_function(*args)
|
217
219
|
|
218
220
|
|
219
|
-
def max(x: SymbolicTypes, y: SymbolicTypes) ->
|
220
|
-
return
|
221
|
+
def max(x: SymbolicTypes, y: SymbolicTypes) -> QParamScalar:
|
222
|
+
return symbolic_function(x, y)
|
221
223
|
|
222
224
|
|
223
|
-
def min(x: SymbolicTypes, y: SymbolicTypes) ->
|
224
|
-
return
|
225
|
+
def min(x: SymbolicTypes, y: SymbolicTypes) -> QParamScalar:
|
226
|
+
return symbolic_function(x, y)
|
225
227
|
|
226
228
|
|
227
229
|
def logical_and(x: SymbolicTypes, y: SymbolicTypes) -> SymbolicExpr:
|
classiq/qmod/symbolic_expr.py
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
from __future__ import annotations
|
2
2
|
|
3
|
-
from typing import Any
|
3
|
+
from typing import Any
|
4
4
|
|
5
5
|
|
6
6
|
class Symbolic:
|
@@ -147,6 +147,3 @@ class SymbolicEquality(SymbolicExpr):
|
|
147
147
|
super().__init__(expr)
|
148
148
|
self.lhs = lhs
|
149
149
|
self.rhs = rhs
|
150
|
-
|
151
|
-
|
152
|
-
SymbolicTypes = Union[SymbolicExpr, int, float, bool, Tuple["SymbolicTypes", ...]]
|
@@ -4,13 +4,11 @@ from classiq.quantum_functions.quantum_function import QuantumFunction
|
|
4
4
|
|
5
5
|
|
6
6
|
@overload
|
7
|
-
def quantum_function(func: None = None, name: Optional[str] = None) -> Callable:
|
8
|
-
...
|
7
|
+
def quantum_function(func: None = None, name: Optional[str] = None) -> Callable: ...
|
9
8
|
|
10
9
|
|
11
10
|
@overload
|
12
|
-
def quantum_function(func: Callable, name: Optional[str] = None) -> QuantumFunction:
|
13
|
-
...
|
11
|
+
def quantum_function(func: Callable, name: Optional[str] = None) -> QuantumFunction: ...
|
14
12
|
|
15
13
|
|
16
14
|
def quantum_function(
|