classiq 0.39.0__py3-none-any.whl → 0.41.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 +5 -2
- classiq/_internals/api_wrapper.py +3 -21
- classiq/applications/chemistry/chemistry_model_constructor.py +87 -101
- classiq/applications/combinatorial_helpers/combinatorial_problem_utils.py +7 -26
- classiq/applications/combinatorial_helpers/optimization_model.py +7 -6
- classiq/applications/combinatorial_helpers/pauli_helpers/pauli_utils.py +33 -55
- classiq/applications/combinatorial_optimization/__init__.py +4 -0
- classiq/applications/combinatorial_optimization/combinatorial_optimization_model_constructor.py +29 -26
- classiq/applications/finance/finance_model_constructor.py +23 -26
- classiq/applications/grover/grover_model_constructor.py +37 -38
- classiq/applications/qsvm/qsvm.py +1 -2
- classiq/applications/qsvm/qsvm_model_constructor.py +15 -16
- classiq/execution/__init__.py +4 -0
- classiq/execution/execution_session.py +151 -0
- classiq/execution/qnn.py +80 -0
- classiq/executor.py +2 -109
- classiq/interface/_version.py +1 -1
- classiq/interface/analyzer/analysis_params.py +11 -0
- classiq/interface/applications/qsvm.py +0 -8
- classiq/interface/ast_node.py +12 -2
- classiq/interface/backend/backend_preferences.py +30 -6
- classiq/interface/backend/quantum_backend_providers.py +11 -11
- classiq/interface/executor/execution_preferences.py +7 -67
- classiq/interface/executor/execution_result.py +22 -1
- classiq/interface/generator/application_apis/chemistry_declarations.py +2 -4
- classiq/interface/generator/application_apis/finance_declarations.py +1 -1
- classiq/interface/generator/arith/binary_ops.py +88 -25
- classiq/interface/generator/arith/unary_ops.py +28 -19
- classiq/interface/generator/expressions/atomic_expression_functions.py +6 -2
- classiq/interface/generator/expressions/enums/__init__.py +10 -0
- classiq/interface/generator/expressions/enums/classical_enum.py +5 -1
- classiq/interface/generator/expressions/expression.py +9 -2
- classiq/interface/generator/expressions/qmod_qarray_proxy.py +89 -0
- classiq/interface/generator/expressions/qmod_qscalar_proxy.py +20 -0
- classiq/interface/generator/expressions/qmod_sized_proxy.py +22 -0
- classiq/interface/generator/expressions/sympy_supported_expressions.py +10 -1
- classiq/interface/generator/functions/builtins/core_library/atomic_quantum_functions.py +8 -6
- classiq/interface/generator/functions/builtins/core_library/exponentiation_functions.py +10 -4
- classiq/interface/generator/functions/builtins/internal_operators.py +7 -62
- classiq/interface/generator/functions/builtins/open_lib_functions.py +1627 -271
- classiq/interface/generator/functions/classical_type.py +27 -17
- classiq/interface/generator/model/preferences/preferences.py +4 -2
- classiq/interface/generator/synthesis_metadata/synthesis_duration.py +0 -4
- classiq/interface/model/bind_operation.py +3 -1
- classiq/interface/model/call_synthesis_data.py +2 -13
- classiq/interface/model/classical_if.py +3 -1
- classiq/interface/model/classical_parameter_declaration.py +13 -0
- classiq/interface/model/control.py +6 -8
- classiq/interface/model/inplace_binary_operation.py +3 -1
- classiq/interface/model/invert.py +3 -1
- classiq/interface/model/port_declaration.py +8 -1
- classiq/interface/model/power.py +3 -1
- classiq/interface/model/quantum_expressions/amplitude_loading_operation.py +4 -2
- classiq/interface/model/quantum_expressions/arithmetic_operation.py +3 -1
- classiq/interface/model/quantum_expressions/quantum_expression.py +11 -1
- classiq/interface/model/quantum_function_call.py +4 -10
- classiq/interface/model/quantum_function_declaration.py +26 -4
- classiq/interface/model/quantum_lambda_function.py +1 -20
- classiq/interface/model/quantum_statement.py +9 -2
- classiq/interface/model/quantum_type.py +6 -5
- classiq/interface/model/repeat.py +3 -1
- classiq/interface/model/resolvers/function_call_resolver.py +0 -5
- classiq/interface/model/statement_block.py +19 -16
- classiq/interface/model/validations/handles_validator.py +8 -2
- classiq/interface/model/variable_declaration_statement.py +3 -1
- classiq/interface/model/within_apply_operation.py +3 -1
- classiq/interface/server/routes.py +0 -5
- classiq/qmod/__init__.py +5 -2
- classiq/qmod/builtins/classical_execution_primitives.py +22 -2
- classiq/qmod/builtins/classical_functions.py +30 -35
- classiq/qmod/builtins/functions.py +263 -153
- classiq/qmod/builtins/operations.py +50 -26
- classiq/qmod/builtins/structs.py +50 -48
- classiq/qmod/declaration_inferrer.py +32 -27
- classiq/qmod/native/__init__.py +9 -0
- classiq/qmod/native/expression_to_qmod.py +8 -4
- classiq/qmod/native/pretty_printer.py +11 -18
- classiq/qmod/pretty_print/__init__.py +9 -0
- classiq/qmod/pretty_print/expression_to_python.py +221 -0
- classiq/qmod/pretty_print/pretty_printer.py +421 -0
- classiq/qmod/qmod_constant.py +7 -7
- classiq/qmod/qmod_parameter.py +57 -33
- classiq/qmod/qmod_struct.py +2 -2
- classiq/qmod/qmod_variable.py +40 -29
- classiq/qmod/quantum_callable.py +8 -4
- classiq/qmod/quantum_expandable.py +22 -15
- classiq/qmod/quantum_function.py +15 -4
- classiq/qmod/symbolic.py +73 -68
- classiq/qmod/symbolic_expr.py +1 -1
- classiq/qmod/symbolic_type.py +1 -4
- classiq/qmod/utilities.py +29 -0
- classiq/synthesis.py +15 -16
- {classiq-0.39.0.dist-info → classiq-0.41.0.dist-info}/METADATA +5 -4
- {classiq-0.39.0.dist-info → classiq-0.41.0.dist-info}/RECORD +95 -94
- classiq/interface/executor/error_mitigation.py +0 -6
- classiq/interface/generator/functions/builtins/core_library/chemistry_functions.py +0 -0
- classiq/interface/model/common_model_types.py +0 -23
- classiq/interface/model/quantum_expressions/control_state.py +0 -38
- classiq/interface/model/quantum_if_operation.py +0 -94
- {classiq-0.39.0.dist-info → classiq-0.41.0.dist-info}/WHEEL +0 -0
@@ -1,62 +1,7 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
from classiq.interface.helpers.pydantic_model_helpers import nameables_to_dict
|
9
|
-
from classiq.interface.model.port_declaration import PortDeclaration
|
10
|
-
from classiq.interface.model.quantum_function_declaration import (
|
11
|
-
QuantumFunctionDeclaration,
|
12
|
-
QuantumOperandDeclaration,
|
13
|
-
)
|
14
|
-
|
15
|
-
_CTRL_FIELD_NAME = "ctrl"
|
16
|
-
CONTROL_OPERATOR = get_single_empty_operand_operator(
|
17
|
-
operator_name="control",
|
18
|
-
port_declarations={
|
19
|
-
_CTRL_FIELD_NAME: PortDeclaration(
|
20
|
-
name=_CTRL_FIELD_NAME,
|
21
|
-
direction=PortDeclarationDirection.Inout,
|
22
|
-
)
|
23
|
-
},
|
24
|
-
)
|
25
|
-
|
26
|
-
REPEAT_OPERATOR = QuantumFunctionDeclaration(
|
27
|
-
name="repeat",
|
28
|
-
param_decls={"count": Integer()},
|
29
|
-
operand_declarations={
|
30
|
-
"iteration": QuantumOperandDeclaration(
|
31
|
-
name="iteration", param_decls={"index": Integer()}
|
32
|
-
)
|
33
|
-
},
|
34
|
-
)
|
35
|
-
POWER_OPERATOR = get_single_empty_operand_operator(
|
36
|
-
operator_name="power", param_decls={"power": Integer()}
|
37
|
-
)
|
38
|
-
INVERT_OPERATOR = get_single_empty_operand_operator(operator_name="invert")
|
39
|
-
|
40
|
-
IF_OPERATOR = QuantumFunctionDeclaration(
|
41
|
-
name="if",
|
42
|
-
param_decls={"condition": Bool()},
|
43
|
-
operand_declarations={
|
44
|
-
"then": QuantumOperandDeclaration(name="then"),
|
45
|
-
"else": QuantumOperandDeclaration(name="else"),
|
46
|
-
},
|
47
|
-
)
|
48
|
-
COMPUTE = get_single_empty_operand_operator(operator_name="compute")
|
49
|
-
UNCOMPUTE = get_single_empty_operand_operator(operator_name="uncompute")
|
50
|
-
|
51
|
-
|
52
|
-
INTERNAL_OPERATORS = nameables_to_dict(
|
53
|
-
[
|
54
|
-
CONTROL_OPERATOR,
|
55
|
-
REPEAT_OPERATOR,
|
56
|
-
POWER_OPERATOR,
|
57
|
-
INVERT_OPERATOR,
|
58
|
-
IF_OPERATOR,
|
59
|
-
COMPUTE,
|
60
|
-
UNCOMPUTE,
|
61
|
-
]
|
62
|
-
)
|
1
|
+
CTRL_VAR_PREFIX = "ctrl__"
|
2
|
+
CONTROL_OPERATOR_NAME = "control"
|
3
|
+
INVERT_OPERATOR_NAME = "invert"
|
4
|
+
REPEAT_OPERATOR_NAME = "iteration"
|
5
|
+
POWER_OPERATOR_NAME = "power"
|
6
|
+
COMPUTE_OPERATOR_NAME = "compute"
|
7
|
+
UNCOMPUTE_OPERATOR_NAME = "uncompute"
|