classiq 0.50.0__py3-none-any.whl → 0.51.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 +4 -0
- classiq/interface/_version.py +1 -1
- classiq/interface/backend/backend_preferences.py +26 -0
- classiq/interface/backend/quantum_backend_providers.py +2 -0
- classiq/interface/generator/arith/arithmetic_expression_validator.py +9 -1
- classiq/interface/generator/arith/binary_ops.py +8 -6
- classiq/interface/generator/quantum_function_call.py +3 -0
- classiq/interface/hardware.py +1 -0
- classiq/interface/ide/visual_model.py +1 -1
- classiq/interface/model/quantum_function_call.py +0 -4
- classiq/interface/model/quantum_statement.py +4 -0
- classiq/model_expansions/quantum_operations/emitter.py +1 -1
- classiq/model_expansions/quantum_operations/quantum_assignment_operation.py +29 -3
- classiq/synthesis.py +21 -0
- {classiq-0.50.0.dist-info → classiq-0.51.0.dist-info}/METADATA +1 -1
- {classiq-0.50.0.dist-info → classiq-0.51.0.dist-info}/RECORD +17 -17
- {classiq-0.50.0.dist-info → classiq-0.51.0.dist-info}/WHEEL +0 -0
classiq/__init__.py
CHANGED
@@ -49,6 +49,8 @@ from classiq.executor import (
|
|
49
49
|
from classiq.qmod import * # noqa: F403
|
50
50
|
from classiq.qmod import __all__ as _qmod_all
|
51
51
|
from classiq.synthesis import (
|
52
|
+
quantum_program_from_qasm,
|
53
|
+
quantum_program_from_qasm_async,
|
52
54
|
set_constraints,
|
53
55
|
set_execution_preferences,
|
54
56
|
set_preferences,
|
@@ -105,6 +107,8 @@ __all__ = (
|
|
105
107
|
"show",
|
106
108
|
"hamiltonian_to_matrix",
|
107
109
|
"matrix_to_hamiltonian",
|
110
|
+
"quantum_program_from_qasm",
|
111
|
+
"quantum_program_from_qasm_async",
|
108
112
|
]
|
109
113
|
+ _md_all
|
110
114
|
+ _sub_modules
|
classiq/interface/_version.py
CHANGED
@@ -447,6 +447,30 @@ class IntelBackendPreferences(BackendPreferences):
|
|
447
447
|
)
|
448
448
|
|
449
449
|
|
450
|
+
class AQTBackendPreferences(BackendPreferences):
|
451
|
+
"""
|
452
|
+
NOTE: This is a work in progress and is subject to change.
|
453
|
+
|
454
|
+
Represents the backend preferences specific to AQT (Alpine Quantum Technologies).
|
455
|
+
|
456
|
+
Attributes:
|
457
|
+
api_key: The API key required to access AQT's quantum computing services.
|
458
|
+
workspace: The AQT workspace where the simulator/hardware is located.
|
459
|
+
"""
|
460
|
+
|
461
|
+
# TODO[pydantic]: Add a default value
|
462
|
+
backend_service_provider: ProviderTypeVendor.AQT
|
463
|
+
api_key: str = pydantic.Field(description="AQT API key")
|
464
|
+
workspace: str = pydantic.Field(description="AQT workspace")
|
465
|
+
|
466
|
+
# TODO[pydantic]: Remove this validator
|
467
|
+
@pydantic.root_validator(pre=True)
|
468
|
+
def _set_backend_service_provider(cls, values: Dict[str, Any]) -> Dict[str, Any]:
|
469
|
+
return values_with_discriminator(
|
470
|
+
values, "backend_service_provider", ProviderVendor.AQT
|
471
|
+
)
|
472
|
+
|
473
|
+
|
450
474
|
def is_exact_simulator(backend_preferences: BackendPreferences) -> bool:
|
451
475
|
return backend_preferences.backend_name in EXACT_SIMULATORS
|
452
476
|
|
@@ -477,6 +501,7 @@ BackendPreferencesTypes = Union[
|
|
477
501
|
AliceBobBackendPreferences,
|
478
502
|
OQCBackendPreferences,
|
479
503
|
IntelBackendPreferences,
|
504
|
+
AQTBackendPreferences,
|
480
505
|
]
|
481
506
|
|
482
507
|
__all__ = [
|
@@ -499,6 +524,7 @@ __all__ = [
|
|
499
524
|
"OQCBackendPreferences",
|
500
525
|
"OQCBackendNames",
|
501
526
|
"IntelBackendPreferences",
|
527
|
+
"AQTBackendPreferences",
|
502
528
|
]
|
503
529
|
|
504
530
|
|
@@ -19,6 +19,7 @@ class ProviderVendor(StrEnum):
|
|
19
19
|
ALICE_AND_BOB = "Alice & Bob"
|
20
20
|
OQC = "OQC"
|
21
21
|
INTEL = "Intel"
|
22
|
+
AQT = "AQT"
|
22
23
|
|
23
24
|
|
24
25
|
class ProviderTypeVendor:
|
@@ -31,6 +32,7 @@ class ProviderTypeVendor:
|
|
31
32
|
ALICE_BOB = Literal[ProviderVendor.ALICE_AND_BOB]
|
32
33
|
OQC = Literal[ProviderVendor.OQC]
|
33
34
|
INTEL = Literal[ProviderVendor.INTEL]
|
35
|
+
AQT = Literal[ProviderVendor.AQT]
|
34
36
|
|
35
37
|
|
36
38
|
class ClassiqSimulatorBackendNames(StrEnum):
|
@@ -57,6 +57,14 @@ SupportedNodesTypes = Union[
|
|
57
57
|
DEFAULT_SUPPORTED_NODE_TYPES = get_args(SupportedNodesTypes)
|
58
58
|
|
59
59
|
|
60
|
+
def _is_constant(expr: str) -> bool:
|
61
|
+
try:
|
62
|
+
float(expr)
|
63
|
+
return True
|
64
|
+
except ValueError:
|
65
|
+
return False
|
66
|
+
|
67
|
+
|
60
68
|
class ExpressionValidator(ast.NodeVisitor):
|
61
69
|
def __init__(
|
62
70
|
self,
|
@@ -89,7 +97,7 @@ class ExpressionValidator(ast.NodeVisitor):
|
|
89
97
|
@staticmethod
|
90
98
|
def _get_adjusted_expression(expression: str) -> str:
|
91
99
|
# This works around the simplification of the trivial expressions such as a + 0, 1 * a, etc.
|
92
|
-
if IDENITIFIER_REGEX.fullmatch(expression):
|
100
|
+
if IDENITIFIER_REGEX.fullmatch(expression) or _is_constant(expression):
|
93
101
|
return f"0 + {expression}"
|
94
102
|
return expression
|
95
103
|
|
@@ -19,7 +19,10 @@ from pydantic.generics import GenericModel
|
|
19
19
|
from classiq.interface.enum_utils import StrEnum
|
20
20
|
from classiq.interface.exceptions import ClassiqValueError
|
21
21
|
from classiq.interface.generator.arith import argument_utils, number_utils
|
22
|
-
from classiq.interface.generator.arith.argument_utils import
|
22
|
+
from classiq.interface.generator.arith.argument_utils import (
|
23
|
+
RegisterOrConst,
|
24
|
+
as_arithmetic_info,
|
25
|
+
)
|
23
26
|
from classiq.interface.generator.arith.arithmetic_operations import (
|
24
27
|
MODULO_WITH_FRACTION_PLACES_ERROR_MSG,
|
25
28
|
ArithmeticOperationParams,
|
@@ -59,11 +62,9 @@ class BinaryOpParams(
|
|
59
62
|
right_arg_name: ClassVar[str] = DEFAULT_RIGHT_ARG_NAME
|
60
63
|
|
61
64
|
@pydantic.root_validator(pre=True)
|
62
|
-
def
|
65
|
+
def _clone_repeated_arg(cls, values: Dict[str, Any]) -> Dict[str, Any]:
|
63
66
|
left_arg = values.get("left_arg")
|
64
67
|
right_arg = values.get("right_arg")
|
65
|
-
if isinstance(left_arg, Numeric) and isinstance(right_arg, Numeric):
|
66
|
-
raise ClassiqValueError("One argument must be a register")
|
67
68
|
if left_arg is right_arg and isinstance(left_arg, pydantic.BaseModel):
|
68
69
|
# In case both arguments refer to the same object, copy it.
|
69
70
|
# This prevents changes performed on one argument to affect the other.
|
@@ -288,8 +289,9 @@ class Adder(InplacableBinaryOpParams[RegisterOrConst, RegisterOrConst]):
|
|
288
289
|
|
289
290
|
def _get_output_size(self, ub: float, lb: float, fraction_places: int) -> int:
|
290
291
|
if isinstance(self.left_arg, float) and self.left_arg == 0.0:
|
291
|
-
|
292
|
-
|
292
|
+
if isinstance(self.right_arg, RegisterArithmeticInfo):
|
293
|
+
return self.right_arg.size
|
294
|
+
return as_arithmetic_info(self.right_arg).size
|
293
295
|
elif isinstance(self.right_arg, float) and self.right_arg == 0.0:
|
294
296
|
assert isinstance(self.left_arg, RegisterArithmeticInfo)
|
295
297
|
return self.left_arg.size
|
@@ -149,6 +149,9 @@ class SynthesisQuantumFunctionCall(BaseModel):
|
|
149
149
|
description="The name of the function instance. "
|
150
150
|
"If not set, determined automatically.",
|
151
151
|
)
|
152
|
+
model_source_id: Optional[UUID] = pydantic.Field(default=None)
|
153
|
+
arithmetic_id: Optional[str] = pydantic.Field(default=None)
|
154
|
+
inverse_op_id: Optional[UUID] = pydantic.Field(default=None)
|
152
155
|
|
153
156
|
uuid: UUID = pydantic.Field(default_factory=uuid4)
|
154
157
|
|
classiq/interface/hardware.py
CHANGED
@@ -11,7 +11,6 @@ class OperationLevel(StrEnum):
|
|
11
11
|
QMOD_FUNCTION_CALL = "QMOD_CALL"
|
12
12
|
QMOD_STATEMENT = "QMOD_STATEMENT"
|
13
13
|
ENGINE_FUNCTION_CALL = "ENGINE_CALL"
|
14
|
-
ATOMIC = "ATOMIC"
|
15
14
|
UNKNOWN = "UNKNOWN"
|
16
15
|
|
17
16
|
|
@@ -20,6 +19,7 @@ class OperationType(StrEnum):
|
|
20
19
|
ALLOCATE = "ALLOCATE"
|
21
20
|
FREE = "FREE"
|
22
21
|
BIND = "BIND"
|
22
|
+
ATOMIC = "ATOMIC"
|
23
23
|
|
24
24
|
|
25
25
|
class OperationData(pydantic.BaseModel):
|
@@ -9,7 +9,6 @@ from typing import (
|
|
9
9
|
Tuple,
|
10
10
|
Union,
|
11
11
|
)
|
12
|
-
from uuid import UUID, uuid4
|
13
12
|
|
14
13
|
import pydantic
|
15
14
|
|
@@ -49,9 +48,6 @@ class QuantumFunctionCall(QuantumOperation):
|
|
49
48
|
description="The function that is called"
|
50
49
|
)
|
51
50
|
positional_args: List[ArgValue] = pydantic.Field(default_factory=list)
|
52
|
-
uuid: UUID = pydantic.Field(
|
53
|
-
description="A unique identifier for this call", default_factory=uuid4
|
54
|
-
)
|
55
51
|
|
56
52
|
_func_decl: Optional[QuantumFunctionDeclaration] = pydantic.PrivateAttr(
|
57
53
|
default=None
|
@@ -1,5 +1,6 @@
|
|
1
1
|
from dataclasses import dataclass
|
2
2
|
from typing import Any, Callable, Dict, Mapping, Optional, Sequence
|
3
|
+
from uuid import UUID, uuid4
|
3
4
|
|
4
5
|
import pydantic
|
5
6
|
from pydantic import Extra, root_validator
|
@@ -30,6 +31,9 @@ class HandleMetadata:
|
|
30
31
|
|
31
32
|
|
32
33
|
class QuantumOperation(QuantumStatement):
|
34
|
+
uuid: UUID = pydantic.Field(
|
35
|
+
description="A unique identifier for this operation", default_factory=uuid4
|
36
|
+
)
|
33
37
|
_generative_blocks: Dict[str, Callable] = pydantic.PrivateAttr(default_factory=dict)
|
34
38
|
|
35
39
|
@property
|
@@ -161,7 +161,7 @@ class Emitter(Generic[QuantumStatementT]):
|
|
161
161
|
}
|
162
162
|
|
163
163
|
port_to_passed_variable_map = {
|
164
|
-
arg_decl.name: evaluated_arg.value.handle
|
164
|
+
arg_decl.name: str(evaluated_arg.value.handle)
|
165
165
|
for arg_decl, evaluated_arg in zip(new_positional_arg_decls, evaluated_args)
|
166
166
|
if isinstance(arg_decl, PortDeclaration)
|
167
167
|
}
|
@@ -35,7 +35,14 @@ from classiq.model_expansions.visitors.boolean_expression_transformers import (
|
|
35
35
|
BooleanExpressionOptimizer,
|
36
36
|
)
|
37
37
|
from classiq.qmod import builtins
|
38
|
-
from classiq.qmod.builtins.functions import X
|
38
|
+
from classiq.qmod.builtins.functions import X, allocate
|
39
|
+
|
40
|
+
|
41
|
+
def _is_zero(expr: str) -> bool:
|
42
|
+
try:
|
43
|
+
return float(expr) == 0.0
|
44
|
+
except ValueError:
|
45
|
+
return False
|
39
46
|
|
40
47
|
|
41
48
|
class QuantumAssignmentOperationEmitter(
|
@@ -43,6 +50,8 @@ class QuantumAssignmentOperationEmitter(
|
|
43
50
|
):
|
44
51
|
def emit(self, op: QuantumAssignmentOperation, /) -> None:
|
45
52
|
new_expression = self._evaluate_op_expression(op)
|
53
|
+
if self._skip_assignment(op, new_expression.expr):
|
54
|
+
return
|
46
55
|
arrays_with_subscript = self._get_symbols_to_split(new_expression)
|
47
56
|
if len(arrays_with_subscript) > 0:
|
48
57
|
self._emit_with_split(op, new_expression, arrays_with_subscript)
|
@@ -71,8 +80,12 @@ class QuantumAssignmentOperationEmitter(
|
|
71
80
|
def _emit_inplace_arithmetic_op(
|
72
81
|
self, op: ArithmeticOperation, expression: Expression, is_bool_opt: bool
|
73
82
|
) -> None:
|
74
|
-
|
75
|
-
|
83
|
+
target = self._interpreter.evaluate(op.result_var).as_type(QuantumSymbol)
|
84
|
+
if (
|
85
|
+
op.operation_kind != ArithmeticOperationKind.InplaceXor
|
86
|
+
or op.result_type.size_in_bits > 1
|
87
|
+
or not _is_res_boolean(op)
|
88
|
+
or target.quantum_type.size_in_bits > 1
|
76
89
|
):
|
77
90
|
_validate_naive_inplace_handles(op)
|
78
91
|
self._build_naive_inplace(op, expression)
|
@@ -156,6 +169,19 @@ class QuantumAssignmentOperationEmitter(
|
|
156
169
|
WithinApply(compute=[arith_expression], action=[inplace_store])
|
157
170
|
)
|
158
171
|
|
172
|
+
def _skip_assignment(self, op: QuantumAssignmentOperation, expr: str) -> bool:
|
173
|
+
if not isinstance(op, ArithmeticOperation) or not _is_zero(expr):
|
174
|
+
return False
|
175
|
+
if op.operation_kind != ArithmeticOperationKind.Assignment:
|
176
|
+
return True
|
177
|
+
allocate_call = QuantumFunctionCall(
|
178
|
+
function=allocate.func_decl.name,
|
179
|
+
positional_args=[Expression(expr="1"), op.result_var],
|
180
|
+
)
|
181
|
+
allocate_call.set_func_decl(allocate.func_decl)
|
182
|
+
self._interpreter.emit_statement(allocate_call)
|
183
|
+
return True
|
184
|
+
|
159
185
|
|
160
186
|
def _validate_naive_inplace_handles(qe: ArithmeticOperation) -> None:
|
161
187
|
if qe.result_var in qe.var_handles:
|
classiq/synthesis.py
CHANGED
@@ -2,6 +2,7 @@ from typing import Any, NewType, Optional
|
|
2
2
|
|
3
3
|
import pydantic
|
4
4
|
|
5
|
+
from classiq.interface.analyzer.result import QasmCode
|
5
6
|
from classiq.interface.exceptions import ClassiqValueError
|
6
7
|
from classiq.interface.executor.execution_preferences import ExecutionPreferences
|
7
8
|
from classiq.interface.generator.model.constraints import Constraints
|
@@ -37,6 +38,26 @@ def show(quantum_program: SerializedQuantumProgram) -> None:
|
|
37
38
|
circuit.show() # type: ignore[attr-defined]
|
38
39
|
|
39
40
|
|
41
|
+
async def quantum_program_from_qasm_async(qasm: str) -> SerializedQuantumProgram:
|
42
|
+
quantum_program = await ApiWrapper.get_generated_circuit_from_qasm(
|
43
|
+
QasmCode(code=qasm)
|
44
|
+
)
|
45
|
+
return SerializedQuantumProgram(quantum_program.json())
|
46
|
+
|
47
|
+
|
48
|
+
def quantum_program_from_qasm(qasm: str) -> SerializedQuantumProgram:
|
49
|
+
"""
|
50
|
+
generate a quantum program from a QASM file.
|
51
|
+
|
52
|
+
Args:
|
53
|
+
qasm: A QASM2/3 string.
|
54
|
+
|
55
|
+
Returns:
|
56
|
+
SerializedQuantumProgram: Quantum program serialized as a string. (See: QuantumProgram)
|
57
|
+
"""
|
58
|
+
return async_utils.run(quantum_program_from_qasm_async(qasm))
|
59
|
+
|
60
|
+
|
40
61
|
async def synthesize_async(
|
41
62
|
serialized_model: SerializedModel,
|
42
63
|
) -> SerializedQuantumProgram:
|
@@ -1,4 +1,4 @@
|
|
1
|
-
classiq/__init__.py,sha256=
|
1
|
+
classiq/__init__.py,sha256=J4FvaP0HW4-Q3B4ojhK-KHE3alSN3Qwu7EzXYm8Q2_Y,3438
|
2
2
|
classiq/_analyzer_extras/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
3
3
|
classiq/_analyzer_extras/_ipywidgets_async_extension.py,sha256=DF-G1Dhp51P6qlxTJT-kxPMJiYy9tyNoCvqbPQOeJd0,2163
|
4
4
|
classiq/_analyzer_extras/interactive_hardware.py,sha256=f7ad2HeFq1f-2dJtPpgOE_w2IFzm49W6P_c-MzqJ5qE,3257
|
@@ -93,7 +93,7 @@ classiq/execution/jobs.py,sha256=t7Wdegpi6lylthg23a98rSmoZ8xXNGfz--efHYw39JY,956
|
|
93
93
|
classiq/execution/qnn.py,sha256=qsOA2mD8Ne_4VwvyGPfuHVDTzyxVnDHwE2gfoaOMsf8,2339
|
94
94
|
classiq/executor.py,sha256=jKD5O_tJpL2NMTC_N0NEuPJEmKZIaqsTpQrgZ88sleg,2594
|
95
95
|
classiq/interface/__init__.py,sha256=cg7hD_XVu1_jJ1fgwmT0rMIoZHopNVeB8xtlmMx-E_A,83
|
96
|
-
classiq/interface/_version.py,sha256=
|
96
|
+
classiq/interface/_version.py,sha256=QdnvwzI3ZZ950pqsQeD-2OQudc7rtsA7r_qNK3vRu2c,197
|
97
97
|
classiq/interface/analyzer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
98
98
|
classiq/interface/analyzer/analysis_params.py,sha256=043hfS-I3Ec6tkcniKMQQUiRyEC7zlNhntTBpZQB8hw,3725
|
99
99
|
classiq/interface/analyzer/cytoscape_graph.py,sha256=_2GviubgrDMAbF57PTDMhS9W0mTCLYWdyu0HndDPh54,2116
|
@@ -102,11 +102,11 @@ classiq/interface/applications/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5
|
|
102
102
|
classiq/interface/applications/qsvm.py,sha256=7LElAz4QwTeia7MeAOy8WUHvuFUOUojs8j2wDOwPMao,3363
|
103
103
|
classiq/interface/ast_node.py,sha256=EE06R8KwRA-QkK44Ou9TmMxiaa8J60G9Z9qf9T76k_k,398
|
104
104
|
classiq/interface/backend/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
105
|
-
classiq/interface/backend/backend_preferences.py,sha256=
|
105
|
+
classiq/interface/backend/backend_preferences.py,sha256=bg_BKeu9jBN_zwMGtgLpmX486RnN57xG_hTE_VSkgKI,21610
|
106
106
|
classiq/interface/backend/ionq/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
107
107
|
classiq/interface/backend/ionq/ionq_quantum_program.py,sha256=2DRnrzeSDC34mIdpsafWFSm7ZnHhKYspJYGULHv0XgI,1584
|
108
108
|
classiq/interface/backend/pydantic_backend.py,sha256=aRf8kljUMiLBH2odswSCJ3hbex_1nOGTK3YmBC6EfmQ,1462
|
109
|
-
classiq/interface/backend/quantum_backend_providers.py,sha256=
|
109
|
+
classiq/interface/backend/quantum_backend_providers.py,sha256=E4Kf3F_4b-5KtLPZFqDSSI94aPL_vNMX3SfvecMBH3s,6517
|
110
110
|
classiq/interface/chemistry/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
111
111
|
classiq/interface/chemistry/ansatz_library.py,sha256=3ki3uaV77cUxUxUzDbn3mVhjvMoKejJ5bIR1kXpBT1k,360
|
112
112
|
classiq/interface/chemistry/elements.py,sha256=Yy8L80SBVgmuKQyW-GlZKzwTqnP1O9po-FGFmKMJLRA,1181
|
@@ -185,12 +185,12 @@ classiq/interface/generator/arith/arithmetic.py,sha256=DrlA41wZxJwur8Va7-MVHEpVI
|
|
185
185
|
classiq/interface/generator/arith/arithmetic_arg_type_validator.py,sha256=ut0iSKnrZK01pf59KjqQo5bJqygW8cnkl86zU9FdgZI,1189
|
186
186
|
classiq/interface/generator/arith/arithmetic_expression_abc.py,sha256=FjibKgQcIpj6Yw9BJm7ixzKQXCmFpTTPeNg4e6CJ2ig,6445
|
187
187
|
classiq/interface/generator/arith/arithmetic_expression_parser.py,sha256=8_aCF2XmZBDxlGVy26Y_6p1-PE8Bx2hjTXZk8YG2k8A,5368
|
188
|
-
classiq/interface/generator/arith/arithmetic_expression_validator.py,sha256=
|
188
|
+
classiq/interface/generator/arith/arithmetic_expression_validator.py,sha256=r6lKdppBdjhYS4YLGYOw9J9x_022hzYf0N_gAA4-qZg,6655
|
189
189
|
classiq/interface/generator/arith/arithmetic_operations.py,sha256=a5eEbnOT9-7HNioNhoeqre5p-3s17epartLQkcAu0WM,1717
|
190
190
|
classiq/interface/generator/arith/arithmetic_param_getters.py,sha256=W-QaPNSmFrtfZF6KSPsJfcQ8cXsdHxz3_r42cQd0Lso,13390
|
191
191
|
classiq/interface/generator/arith/arithmetic_result_builder.py,sha256=c7Oiy6Bp43jbbfHwo5i0S5c_Zuc6oNxRgdNx5lQ0c-c,4255
|
192
192
|
classiq/interface/generator/arith/ast_node_rewrite.py,sha256=GxWvW6HWHS-bQshPr-xgnOlkqRQ6PA1ea0fzMxDNZQY,2769
|
193
|
-
classiq/interface/generator/arith/binary_ops.py,sha256=
|
193
|
+
classiq/interface/generator/arith/binary_ops.py,sha256=RxpXoEDdkEsBnTUx2AgJvljitnC5xwE8tpL16lSneoU,30755
|
194
194
|
classiq/interface/generator/arith/endianness.py,sha256=buplQY6swjKczmnGbyNxu9JqvzZcNPyjQdOePd9pPCA,116
|
195
195
|
classiq/interface/generator/arith/extremum_operations.py,sha256=eBcFJf3RE8NdqfFDJoCoy5zdGVNMhr6lRwdozQQc5xo,5966
|
196
196
|
classiq/interface/generator/arith/logical_ops.py,sha256=9VGq4hlZ_N85LsTnfJaoB4DAFkcnxpafqXhzUzGbWQM,2579
|
@@ -287,7 +287,7 @@ classiq/interface/generator/preferences/optimization.py,sha256=7iEWWNFSxqi4XMb4J
|
|
287
287
|
classiq/interface/generator/qft.py,sha256=SDLcPWYxshDfPl-tAfhpRFb30NpPRRFpje5Jrrkb9Gs,1184
|
288
288
|
classiq/interface/generator/qpe.py,sha256=qc7k1C1joRSH-DL3ULIbHr7xRjQWOwszhyplSFWfcW4,6010
|
289
289
|
classiq/interface/generator/qsvm.py,sha256=iwLn-ACt1dilP60ddXBzLEKA0toJuHJCeAZ0-7VNnCQ,3000
|
290
|
-
classiq/interface/generator/quantum_function_call.py,sha256=
|
290
|
+
classiq/interface/generator/quantum_function_call.py,sha256=fFfQMNlrAbqYuhkOzDNVlBDxWqzrntL8EEesaq3gAVg,23480
|
291
291
|
classiq/interface/generator/quantum_program.py,sha256=ahtP8DqNe0Fe0KN5r7kfuQNamanFuufSv8GuzHiQsOk,6811
|
292
292
|
classiq/interface/generator/randomized_benchmarking.py,sha256=D6KI_1fMF5oBydaal2WLmTSit6xSMtz0yDAIZMMO89Q,635
|
293
293
|
classiq/interface/generator/range_types.py,sha256=5TWlKLQSEdhvfRkJEa6WyLWZJDICTW6fWUfi7V_h_jg,2061
|
@@ -330,7 +330,7 @@ classiq/interface/generator/validations/validator_functions.py,sha256=n-K4R903O2
|
|
330
330
|
classiq/interface/generator/visitor.py,sha256=4stDieh3p7JYuSL9bH_FqKrn0k0Nl8bMO72RQocZ8M8,2864
|
331
331
|
classiq/interface/grover/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
332
332
|
classiq/interface/grover/grover_modelling_params.py,sha256=eMXdjfuGlVq5qD3QyG-C8mAyIBAoxzkjF052M4b1i-k,390
|
333
|
-
classiq/interface/hardware.py,sha256=
|
333
|
+
classiq/interface/hardware.py,sha256=9qxWDoVE-234RXe2eROVZo4NOS5DgjDq5EB7byP94DU,2023
|
334
334
|
classiq/interface/helpers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
335
335
|
classiq/interface/helpers/classproperty.py,sha256=pt9A39GgEMzj2nbY5gjFp_CId_wom6lOQt_PADidT4Y,279
|
336
336
|
classiq/interface/helpers/custom_encoders.py,sha256=0-9DTHwQr-I_vP1Ie4Z9N4qfzDhFvGT4qsXP-EdDegs,107
|
@@ -342,7 +342,7 @@ classiq/interface/helpers/validation_helpers.py,sha256=oUD1jMdTSoAkV-HjbkvMovb8Z
|
|
342
342
|
classiq/interface/helpers/versioned_model.py,sha256=iHB0oO7pWKaE0l62SdfBbY3QwHSiSA0h9oUQQwRrvKI,295
|
343
343
|
classiq/interface/ide/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
344
344
|
classiq/interface/ide/ide_data.py,sha256=Z3keVfjxK8dpC64ZJ0PEoLWgtmOaxiv2CgBzkxbFVmY,2508
|
345
|
-
classiq/interface/ide/visual_model.py,sha256
|
345
|
+
classiq/interface/ide/visual_model.py,sha256=tXwkxyEmBDwiyw6uM6ecMDV0nVO2-3u83ABeRWBZN-g,2727
|
346
346
|
classiq/interface/interface_version.py,sha256=Q1aeahrMg6ePaFeDei3GEHzHA2_cJnGoJK3KQ3Av55k,24
|
347
347
|
classiq/interface/jobs.py,sha256=QFGSbXpFK589jW4DzGGrNhkwm3ZhTehDt8P3lENXTsc,2749
|
348
348
|
classiq/interface/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -363,10 +363,10 @@ classiq/interface/model/quantum_expressions/__init__.py,sha256=47DEQpj8HBSa-_TIm
|
|
363
363
|
classiq/interface/model/quantum_expressions/amplitude_loading_operation.py,sha256=v45Eb44VxyBTMH-E1NTb5-YdKCj5EY_rb-BClHI0A48,2428
|
364
364
|
classiq/interface/model/quantum_expressions/arithmetic_operation.py,sha256=HKFZci4z4QSmE8Bpwu6_6sCU1Wb-jzovrmsU1lmxjmw,3428
|
365
365
|
classiq/interface/model/quantum_expressions/quantum_expression.py,sha256=yw-sYXbaaKoUSL8oujDFBjyShxCfAQnPPX64h-Yh-_8,2118
|
366
|
-
classiq/interface/model/quantum_function_call.py,sha256=
|
366
|
+
classiq/interface/model/quantum_function_call.py,sha256=CCLORUqsVDORLJcR-uLzl0egUw4jxIVqQIANPny9T50,7166
|
367
367
|
classiq/interface/model/quantum_function_declaration.py,sha256=N1iccemg-xC4Cc1pPLWT3cBGYO3RIEBPVz_zlWWkLpQ,7704
|
368
368
|
classiq/interface/model/quantum_lambda_function.py,sha256=gNrzQuQ_UKdoZXPtGjhb-L1n67gBbJmuc7A6cKUhu68,2114
|
369
|
-
classiq/interface/model/quantum_statement.py,sha256=
|
369
|
+
classiq/interface/model/quantum_statement.py,sha256=V-Kv7InndkM9q6RPhO6Kxi0T_-tmsiHWCbGUFJL-FM4,2628
|
370
370
|
classiq/interface/model/quantum_type.py,sha256=19JjWMEU44l7C9VtsFakOZ3c3-ugQzC3_vdygrhieck,8199
|
371
371
|
classiq/interface/model/quantum_variable_declaration.py,sha256=Vmx-aHnss8E_ghqX_wi4Njp-dEtYK-WwYHtHAwmGZxk,229
|
372
372
|
classiq/interface/model/repeat.py,sha256=pSq0rzSDUVQqyzlv-mV1k-Jx57KyjqjZ1KgScGFOQgE,408
|
@@ -409,13 +409,13 @@ classiq/model_expansions/quantum_operations/__init__.py,sha256=BMruLYFsir2nU9Du9
|
|
409
409
|
classiq/model_expansions/quantum_operations/bind.py,sha256=yRHOyMw3Kdkr1tJaRfPkbS6amCKl504weaWYqbVvZ0A,2631
|
410
410
|
classiq/model_expansions/quantum_operations/classicalif.py,sha256=6SFumWVIWCTNQsng1GCkZ2zysT8aVrtwPqpwlJ6M_dQ,2151
|
411
411
|
classiq/model_expansions/quantum_operations/control.py,sha256=SibNNK8gwzBMojwmXDg--SXbqhn3PJmIB2y0sK-7rJA,10151
|
412
|
-
classiq/model_expansions/quantum_operations/emitter.py,sha256=
|
412
|
+
classiq/model_expansions/quantum_operations/emitter.py,sha256=z3axE2OfTjIxp6sevyo2VGsN1d5Elx5a8721YgGCpOM,10899
|
413
413
|
classiq/model_expansions/quantum_operations/expression_operation.py,sha256=q2EaNec3kvTw2xDVGrd36p_rHiNMaWzkR0qFC55sJDY,8182
|
414
414
|
classiq/model_expansions/quantum_operations/inplace_binary_operation.py,sha256=OoEBjjE9sXoOuV3h7p29UN6DgGywcXPVHntSLHXAUp4,11142
|
415
415
|
classiq/model_expansions/quantum_operations/invert.py,sha256=iR6ZpTyntchWb5kJFFMCC6rkBURbueJO42H7-8ljbKw,1661
|
416
416
|
classiq/model_expansions/quantum_operations/phase.py,sha256=W3qHfxs9S25yE2Ofgy9NwO5t9og6DxhqSQW8w1ptm1w,7337
|
417
417
|
classiq/model_expansions/quantum_operations/power.py,sha256=89FEo5xJkOxCP7L7Jy9MJatRbbzjVVR0oc8Q7aBzF8Q,2661
|
418
|
-
classiq/model_expansions/quantum_operations/quantum_assignment_operation.py,sha256
|
418
|
+
classiq/model_expansions/quantum_operations/quantum_assignment_operation.py,sha256=Kk_7cYqJbwi3Nhh48yu51jIyaDo_dRB4nQnMOkGQKZE,8428
|
419
419
|
classiq/model_expansions/quantum_operations/quantum_function_call.py,sha256=hQcOwaZV0qe7SmlqV3hdlKIcX_EKmxGOysH0lOVh9F0,729
|
420
420
|
classiq/model_expansions/quantum_operations/repeat.py,sha256=zxxKxbMqa_4zkA5x10NrDpgUqEHKId4WxLXmD4aboJk,2060
|
421
421
|
classiq/model_expansions/quantum_operations/variable_decleration.py,sha256=fRMRxctSxQFhPIhTMMVGC0F9p4iBLIMCD59G_j4Rk2Y,1196
|
@@ -498,7 +498,7 @@ classiq/qmod/symbolic_type.py,sha256=whMy3Uw4iE2SOVfHeyfTpDJ3BH6Rxlhk492ij-4QRU4
|
|
498
498
|
classiq/qmod/type_attribute_remover.py,sha256=dN9dcsmFQI1UXz_DllGKl2BP4XkyvGdNk8diPan-9RE,1236
|
499
499
|
classiq/qmod/utilities.py,sha256=z_VnIRmOYTWjJp2UlOcWK0rQRtMqysmP_Gr6WYY_nak,2734
|
500
500
|
classiq/qmod/write_qmod.py,sha256=SO7hdBdO31lTzyeaJ-Htyma-aJmrbBNtABNEB2llI4Q,1818
|
501
|
-
classiq/synthesis.py,sha256=
|
502
|
-
classiq-0.
|
503
|
-
classiq-0.
|
504
|
-
classiq-0.
|
501
|
+
classiq/synthesis.py,sha256=egu5iUXeED5Lt0sDDQZvybUNVSYckNia5HbqRtoS11A,8035
|
502
|
+
classiq-0.51.0.dist-info/METADATA,sha256=F2DecgDdRlMbWpkFWPFgp1fnpKZBfAVb7RfvxXxS9iE,3458
|
503
|
+
classiq-0.51.0.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
|
504
|
+
classiq-0.51.0.dist-info/RECORD,,
|
File without changes
|