classiq 0.38.0__py3-none-any.whl → 0.39.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 +21 -22
- classiq/_internals/api_wrapper.py +13 -1
- classiq/_internals/client.py +12 -2
- classiq/analyzer/analyzer.py +3 -1
- classiq/applications/__init__.py +1 -8
- classiq/applications/chemistry/__init__.py +6 -0
- classiq/{applications_model_constructors → applications}/combinatorial_helpers/arithmetic/arithmetic_expression.py +1 -1
- classiq/{applications_model_constructors → applications}/combinatorial_helpers/combinatorial_problem_utils.py +26 -6
- classiq/{applications_model_constructors → applications}/combinatorial_helpers/encoding_mapping.py +1 -1
- classiq/{applications_model_constructors → applications}/combinatorial_helpers/encoding_utils.py +1 -1
- classiq/{applications_model_constructors → applications}/combinatorial_helpers/memory.py +2 -4
- classiq/{applications_model_constructors → applications}/combinatorial_helpers/optimization_model.py +6 -10
- classiq/{applications_model_constructors → applications}/combinatorial_helpers/pauli_helpers/pauli_utils.py +10 -0
- classiq/{applications_model_constructors → applications}/combinatorial_helpers/pyomo_utils.py +4 -2
- classiq/{applications_model_constructors → applications}/combinatorial_helpers/transformations/encoding.py +3 -10
- classiq/{applications_model_constructors → applications}/combinatorial_helpers/transformations/fixed_variables.py +4 -6
- classiq/{applications_model_constructors → applications}/combinatorial_helpers/transformations/ising_converter.py +3 -5
- classiq/{applications_model_constructors → applications}/combinatorial_helpers/transformations/penalty_support.py +3 -7
- classiq/{applications_model_constructors → applications}/combinatorial_helpers/transformations/slack_variables.py +4 -6
- classiq/applications/combinatorial_optimization/__init__.py +9 -3
- classiq/{applications_model_constructors → applications/combinatorial_optimization}/combinatorial_optimization_model_constructor.py +7 -8
- classiq/applications/finance/__init__.py +3 -2
- classiq/{applications_model_constructors → applications/finance}/finance_model_constructor.py +24 -14
- classiq/applications/grover/__init__.py +11 -0
- classiq/applications/libraries/qmci_library.py +35 -0
- classiq/applications/qsvm/__init__.py +5 -1
- classiq/execution/all_hardware_devices.py +13 -0
- classiq/executor.py +2 -1
- classiq/interface/_version.py +1 -1
- classiq/interface/analyzer/result.py +1 -5
- classiq/interface/applications/qsvm.py +4 -2
- classiq/interface/ast_node.py +23 -0
- classiq/interface/combinatorial_optimization/examples/mht.py +8 -3
- classiq/interface/executor/execution_request.py +2 -37
- classiq/interface/executor/vqe_result.py +1 -1
- classiq/interface/generator/builtin_api_builder.py +0 -5
- classiq/interface/generator/constant.py +2 -3
- classiq/interface/generator/expressions/expression.py +2 -4
- classiq/interface/generator/expressions/qmod_qscalar_proxy.py +1 -1
- classiq/interface/generator/functions/__init__.py +2 -2
- classiq/interface/generator/functions/builtins/__init__.py +15 -0
- classiq/interface/generator/functions/builtins/core_library/__init__.py +14 -0
- classiq/interface/generator/functions/builtins/internal_operators.py +62 -0
- classiq/interface/generator/functions/{core_lib_declarations/quantum_functions/std_lib_functions.py → builtins/open_lib_functions.py} +109 -83
- classiq/interface/generator/functions/builtins/quantum_operators.py +37 -0
- classiq/interface/generator/functions/classical_type.py +2 -4
- classiq/interface/generator/functions/function_declaration.py +2 -2
- classiq/interface/generator/hartree_fock.py +10 -2
- classiq/interface/generator/model/classical_main_validator.py +1 -1
- classiq/interface/generator/model/model.py +1 -1
- classiq/interface/generator/quantum_function_call.py +1 -1
- classiq/interface/generator/types/struct_declaration.py +2 -4
- classiq/interface/model/call_synthesis_data.py +3 -3
- classiq/interface/model/classical_if.py +13 -0
- classiq/interface/model/classical_parameter_declaration.py +2 -3
- classiq/interface/model/control.py +16 -0
- classiq/interface/model/handle_binding.py +3 -2
- classiq/interface/model/invert.py +10 -0
- classiq/interface/model/model.py +2 -1
- classiq/interface/model/power.py +12 -0
- classiq/interface/model/quantum_function_call.py +9 -4
- classiq/interface/model/quantum_if_operation.py +3 -3
- classiq/interface/model/quantum_lambda_function.py +3 -9
- classiq/interface/model/quantum_statement.py +3 -2
- classiq/interface/model/quantum_type.py +2 -4
- classiq/interface/model/quantum_variable_declaration.py +2 -2
- classiq/interface/model/repeat.py +13 -0
- classiq/interface/model/resolvers/function_call_resolver.py +26 -0
- classiq/interface/model/statement_block.py +21 -4
- classiq/interface/model/validations/handles_validator.py +8 -12
- classiq/interface/model/within_apply_operation.py +4 -4
- classiq/interface/server/routes.py +0 -4
- classiq/qmod/builtins/classical_functions.py +9 -9
- classiq/qmod/builtins/functions.py +153 -226
- classiq/qmod/builtins/operations.py +160 -13
- classiq/qmod/native/pretty_printer.py +49 -20
- classiq/qmod/qmod_constant.py +26 -2
- classiq/qmod/qmod_parameter.py +2 -1
- classiq/qmod/qmod_variable.py +48 -15
- classiq/qmod/quantum_callable.py +1 -0
- classiq/qmod/quantum_expandable.py +6 -7
- classiq/qmod/quantum_function.py +4 -0
- classiq/qmod/symbolic.py +2 -2
- {classiq-0.38.0.dist-info → classiq-0.39.0.dist-info}/METADATA +1 -1
- {classiq-0.38.0.dist-info → classiq-0.39.0.dist-info}/RECORD +107 -124
- classiq/applications/benchmarking/__init__.py +0 -9
- classiq/applications/benchmarking/mirror_benchmarking.py +0 -70
- classiq/applications/numpy_utils.py +0 -37
- classiq/applications_model_constructors/__init__.py +0 -25
- classiq/applications_model_constructors/combinatorial_helpers/multiple_comp_basis_sp.py +0 -34
- classiq/applications_model_constructors/libraries/qmci_library.py +0 -107
- classiq/builtin_functions/__init__.py +0 -43
- classiq/builtin_functions/amplitude_loading.py +0 -3
- classiq/builtin_functions/binary_ops.py +0 -1
- classiq/builtin_functions/exponentiation.py +0 -5
- classiq/builtin_functions/qpe.py +0 -4
- classiq/builtin_functions/qsvm.py +0 -7
- classiq/builtin_functions/range_types.py +0 -5
- classiq/builtin_functions/standard_gates.py +0 -1
- classiq/builtin_functions/state_preparation.py +0 -6
- classiq/builtin_functions/suzuki_trotter.py +0 -3
- classiq/interface/generator/functions/core_lib_declarations/quantum_functions/__init__.py +0 -18
- classiq/interface/generator/functions/core_lib_declarations/quantum_operators.py +0 -95
- classiq/model/__init__.py +0 -14
- classiq/model/composite_function_generator.py +0 -33
- classiq/model/function_handler.py +0 -462
- classiq/model/logic_flow.py +0 -149
- classiq/model/logic_flow_change_handler.py +0 -71
- classiq/model/model.py +0 -229
- classiq/quantum_functions/__init__.py +0 -17
- classiq/quantum_functions/annotation_parser.py +0 -205
- classiq/quantum_functions/decorators.py +0 -22
- classiq/quantum_functions/function_library.py +0 -181
- classiq/quantum_functions/function_parser.py +0 -74
- classiq/quantum_functions/quantum_function.py +0 -236
- /classiq/{applications_model_constructors → applications/chemistry}/chemistry_model_constructor.py +0 -0
- /classiq/{applications_model_constructors → applications}/combinatorial_helpers/__init__.py +0 -0
- /classiq/{applications_model_constructors → applications}/combinatorial_helpers/allowed_constraints.py +0 -0
- /classiq/{applications_model_constructors → applications}/combinatorial_helpers/arithmetic/__init__.py +0 -0
- /classiq/{applications_model_constructors → applications}/combinatorial_helpers/arithmetic/isolation.py +0 -0
- /classiq/{applications_model_constructors → applications}/combinatorial_helpers/pauli_helpers/__init__.py +0 -0
- /classiq/{applications_model_constructors → applications}/combinatorial_helpers/pauli_helpers/pauli_sparsing.py +0 -0
- /classiq/{applications_model_constructors → applications}/combinatorial_helpers/py.typed +0 -0
- /classiq/{applications_model_constructors/combinatorial_helpers/transformations → applications/combinatorial_helpers/solvers}/__init__.py +0 -0
- /classiq/{applications_model_constructors → applications}/combinatorial_helpers/sympy_utils.py +0 -0
- /classiq/{applications_model_constructors/libraries → applications/combinatorial_helpers/transformations}/__init__.py +0 -0
- /classiq/{applications_model_constructors → applications}/combinatorial_helpers/transformations/penalty.py +0 -0
- /classiq/{applications_model_constructors → applications}/combinatorial_helpers/transformations/sign_seperation.py +0 -0
- /classiq/{applications_model_constructors → applications/grover}/grover_model_constructor.py +0 -0
- /classiq/{interface/generator/functions/core_lib_declarations → applications/libraries}/__init__.py +0 -0
- /classiq/{applications_model_constructors → applications}/libraries/ampltitude_estimation_library.py +0 -0
- /classiq/{applications_model_constructors → applications/qsvm}/qsvm_model_constructor.py +0 -0
- /classiq/interface/generator/functions/{core_lib_declarations/quantum_functions → builtins/core_library}/atomic_quantum_functions.py +0 -0
- /classiq/interface/generator/functions/{core_lib_declarations/quantum_functions → builtins/core_library}/chemistry_functions.py +0 -0
- /classiq/interface/generator/functions/{core_lib_declarations/quantum_functions → builtins/core_library}/exponentiation_functions.py +0 -0
- /classiq/{quantum_register.py → interface/model/quantum_register.py} +0 -0
- {classiq-0.38.0.dist-info → classiq-0.39.0.dist-info}/WHEEL +0 -0
@@ -1,107 +0,0 @@
|
|
1
|
-
from classiq.interface.generator.expressions.expression import Expression
|
2
|
-
from classiq.interface.generator.functions.port_declaration import (
|
3
|
-
PortDeclarationDirection,
|
4
|
-
)
|
5
|
-
from classiq.interface.model.handle_binding import HandleBinding, SlicedHandleBinding
|
6
|
-
from classiq.interface.model.native_function_definition import NativeFunctionDefinition
|
7
|
-
from classiq.interface.model.port_declaration import PortDeclaration
|
8
|
-
from classiq.interface.model.quantum_function_call import QuantumFunctionCall
|
9
|
-
from classiq.interface.model.quantum_function_declaration import (
|
10
|
-
QuantumOperandDeclaration,
|
11
|
-
)
|
12
|
-
from classiq.interface.model.quantum_lambda_function import QuantumLambdaFunction
|
13
|
-
|
14
|
-
from classiq import Integer
|
15
|
-
|
16
|
-
QMCI_LIBRARY = [
|
17
|
-
NativeFunctionDefinition(
|
18
|
-
name="qmci",
|
19
|
-
param_decls={
|
20
|
-
"num_phase_qubits": Integer(),
|
21
|
-
"num_unitary_qubits": Integer(),
|
22
|
-
},
|
23
|
-
port_declarations={
|
24
|
-
"phase_port": PortDeclaration(
|
25
|
-
name="phase_port",
|
26
|
-
size=Expression(expr="num_phase_qubits"),
|
27
|
-
direction=PortDeclarationDirection.Output,
|
28
|
-
),
|
29
|
-
"unitary_port": PortDeclaration(
|
30
|
-
name="unitary_port",
|
31
|
-
size=Expression(expr="num_unitary_qubits"),
|
32
|
-
direction=PortDeclarationDirection.Output,
|
33
|
-
),
|
34
|
-
},
|
35
|
-
operand_declarations={
|
36
|
-
"sp_op": QuantumOperandDeclaration(
|
37
|
-
name="sp_op",
|
38
|
-
param_decls={"num_unitary_qubits": Integer()},
|
39
|
-
port_declarations={
|
40
|
-
"reg": PortDeclaration(
|
41
|
-
name="reg",
|
42
|
-
direction=PortDeclarationDirection.Inout,
|
43
|
-
size=Expression(expr="num_unitary_qubits-1"),
|
44
|
-
),
|
45
|
-
"ind": PortDeclaration(
|
46
|
-
name="ind",
|
47
|
-
direction=PortDeclarationDirection.Inout,
|
48
|
-
size=Expression(expr="1"),
|
49
|
-
),
|
50
|
-
},
|
51
|
-
),
|
52
|
-
},
|
53
|
-
body=[
|
54
|
-
QuantumFunctionCall(
|
55
|
-
function="amplitude_estimation",
|
56
|
-
params={
|
57
|
-
"num_phase_qubits": Expression(expr="num_phase_qubits"),
|
58
|
-
"num_unitary_qubits": Expression(expr="num_unitary_qubits"),
|
59
|
-
},
|
60
|
-
outputs={
|
61
|
-
"phase_port": HandleBinding(name="phase_port"),
|
62
|
-
"unitary_port": HandleBinding(name="unitary_port"),
|
63
|
-
},
|
64
|
-
operands={
|
65
|
-
"sp_op": QuantumLambdaFunction(
|
66
|
-
body=[
|
67
|
-
QuantumFunctionCall(
|
68
|
-
function="sp_op",
|
69
|
-
params={
|
70
|
-
"num_unitary_qubits": Expression(
|
71
|
-
expr="num_unitary_qubits"
|
72
|
-
)
|
73
|
-
},
|
74
|
-
inouts={
|
75
|
-
"reg": SlicedHandleBinding(
|
76
|
-
name="spq",
|
77
|
-
start=Expression(expr="0"),
|
78
|
-
end=Expression(expr="num_unitary_qubits-1"),
|
79
|
-
),
|
80
|
-
"ind": SlicedHandleBinding(
|
81
|
-
name="spq",
|
82
|
-
start=Expression(expr="num_unitary_qubits-1"),
|
83
|
-
end=Expression(expr="num_unitary_qubits"),
|
84
|
-
),
|
85
|
-
},
|
86
|
-
)
|
87
|
-
],
|
88
|
-
),
|
89
|
-
"oracle_op": QuantumLambdaFunction(
|
90
|
-
body=[
|
91
|
-
QuantumFunctionCall(
|
92
|
-
function="Z",
|
93
|
-
inouts={
|
94
|
-
"target": SlicedHandleBinding(
|
95
|
-
name="oq",
|
96
|
-
start=Expression(expr="num_unitary_qubits-1"),
|
97
|
-
end=Expression(expr="num_unitary_qubits"),
|
98
|
-
),
|
99
|
-
},
|
100
|
-
),
|
101
|
-
]
|
102
|
-
),
|
103
|
-
},
|
104
|
-
),
|
105
|
-
],
|
106
|
-
),
|
107
|
-
]
|
@@ -1,43 +0,0 @@
|
|
1
|
-
from typing import List
|
2
|
-
|
3
|
-
from classiq.interface.generator.function_param_list import * # noqa: F403
|
4
|
-
from classiq.interface.generator.function_param_list_without_self_reference import * # noqa: F403
|
5
|
-
from classiq.interface.generator.oracles.oracle_function_param_list import * # noqa: F403
|
6
|
-
|
7
|
-
from ..builtin_functions import (
|
8
|
-
amplitude_loading,
|
9
|
-
binary_ops,
|
10
|
-
exponentiation,
|
11
|
-
qpe,
|
12
|
-
qsvm,
|
13
|
-
range_types,
|
14
|
-
state_preparation,
|
15
|
-
suzuki_trotter,
|
16
|
-
)
|
17
|
-
from .standard_gates import * # noqa: F403
|
18
|
-
|
19
|
-
__all__ = (
|
20
|
-
[function.__name__ for function in function_param_library.param_list] # noqa: F405
|
21
|
-
+ [
|
22
|
-
function.__name__
|
23
|
-
for function in standard_gate_function_param_library.param_list # noqa: F405
|
24
|
-
]
|
25
|
-
+ [
|
26
|
-
function.__name__
|
27
|
-
for function in oracle_function_param_library.param_list # noqa: F405
|
28
|
-
]
|
29
|
-
+ [
|
30
|
-
"exponentiation",
|
31
|
-
"state_preparation",
|
32
|
-
"suzuki_trotter",
|
33
|
-
"range_types",
|
34
|
-
"binary_ops",
|
35
|
-
"qpe",
|
36
|
-
"amplitude_loading",
|
37
|
-
"qsvm",
|
38
|
-
]
|
39
|
-
)
|
40
|
-
|
41
|
-
|
42
|
-
def __dir__() -> List[str]:
|
43
|
-
return __all__
|
@@ -1 +0,0 @@
|
|
1
|
-
from classiq.interface.generator.arith.binary_ops import ArgToInplace # noqa: F401
|
classiq/builtin_functions/qpe.py
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
from classiq.interface.generator.standard_gates.standard_gates_param_list import * # noqa: F403
|
@@ -1,18 +0,0 @@
|
|
1
|
-
from classiq.interface.helpers.pydantic_model_helpers import nameables_to_dict
|
2
|
-
from classiq.interface.model.quantum_function_declaration import (
|
3
|
-
QuantumFunctionDeclaration,
|
4
|
-
)
|
5
|
-
|
6
|
-
from .atomic_quantum_functions import * # noqa: F403
|
7
|
-
from .exponentiation_functions import * # noqa: F403
|
8
|
-
from .std_lib_functions import * # noqa: F403
|
9
|
-
|
10
|
-
QuantumFunctionDeclaration.BUILTIN_FUNCTION_DECLARATIONS.update(
|
11
|
-
nameables_to_dict(
|
12
|
-
[
|
13
|
-
func
|
14
|
-
for func in vars().values()
|
15
|
-
if isinstance(func, QuantumFunctionDeclaration)
|
16
|
-
]
|
17
|
-
)
|
18
|
-
)
|
@@ -1,95 +0,0 @@
|
|
1
|
-
from typing import Any
|
2
|
-
|
3
|
-
from classiq.interface.generator.functions.classical_type import Bool, Integer
|
4
|
-
from classiq.interface.generator.functions.port_declaration import (
|
5
|
-
PortDeclarationDirection,
|
6
|
-
)
|
7
|
-
from classiq.interface.helpers.pydantic_model_helpers import nameables_to_dict
|
8
|
-
from classiq.interface.model.port_declaration import PortDeclaration
|
9
|
-
from classiq.interface.model.quantum_function_declaration import (
|
10
|
-
QuantumFunctionDeclaration,
|
11
|
-
QuantumOperandDeclaration,
|
12
|
-
)
|
13
|
-
|
14
|
-
REPEAT_OPERATOR = QuantumFunctionDeclaration(
|
15
|
-
name="repeat",
|
16
|
-
param_decls={"count": Integer()},
|
17
|
-
operand_declarations={
|
18
|
-
"iteration": QuantumOperandDeclaration(
|
19
|
-
name="iteration", param_decls={"index": Integer()}
|
20
|
-
)
|
21
|
-
},
|
22
|
-
)
|
23
|
-
|
24
|
-
|
25
|
-
def _get_single_empty_operand_operator(
|
26
|
-
operator_name: str, **kwargs: Any
|
27
|
-
) -> QuantumFunctionDeclaration:
|
28
|
-
operand_field_name = "operand"
|
29
|
-
return QuantumFunctionDeclaration(
|
30
|
-
name=operator_name,
|
31
|
-
operand_declarations={
|
32
|
-
operand_field_name: QuantumOperandDeclaration(name=operand_field_name)
|
33
|
-
},
|
34
|
-
**kwargs,
|
35
|
-
)
|
36
|
-
|
37
|
-
|
38
|
-
INVERT_OPERATOR = _get_single_empty_operand_operator(operator_name="invert")
|
39
|
-
|
40
|
-
_CTRL_FIELD_NAME = "ctrl"
|
41
|
-
CONTROL_OPERATOR = _get_single_empty_operand_operator(
|
42
|
-
operator_name="control",
|
43
|
-
port_declarations={
|
44
|
-
_CTRL_FIELD_NAME: PortDeclaration(
|
45
|
-
name=_CTRL_FIELD_NAME,
|
46
|
-
direction=PortDeclarationDirection.Inout,
|
47
|
-
)
|
48
|
-
},
|
49
|
-
)
|
50
|
-
|
51
|
-
IF_OPERATOR = QuantumFunctionDeclaration(
|
52
|
-
name="if",
|
53
|
-
param_decls={"condition": Bool()},
|
54
|
-
operand_declarations={
|
55
|
-
"then": QuantumOperandDeclaration(name="then"),
|
56
|
-
"else": QuantumOperandDeclaration(name="else"),
|
57
|
-
},
|
58
|
-
)
|
59
|
-
|
60
|
-
|
61
|
-
PERMUTE_OPERATOR = QuantumFunctionDeclaration(
|
62
|
-
name="permute",
|
63
|
-
operand_declarations={
|
64
|
-
"functions": QuantumOperandDeclaration(
|
65
|
-
name="functions",
|
66
|
-
is_list=True,
|
67
|
-
)
|
68
|
-
},
|
69
|
-
)
|
70
|
-
|
71
|
-
POWER_OPERATOR = _get_single_empty_operand_operator(
|
72
|
-
operator_name="power", param_decls={"power": Integer()}
|
73
|
-
)
|
74
|
-
|
75
|
-
APPLY_OPERATOR = _get_single_empty_operand_operator(operator_name="apply")
|
76
|
-
|
77
|
-
COMPUTE = _get_single_empty_operand_operator(operator_name="compute")
|
78
|
-
|
79
|
-
UNCOMPUTE = _get_single_empty_operand_operator(operator_name="uncompute")
|
80
|
-
|
81
|
-
BUILTIN_QUANTUM_OPERATOR_LIST = [
|
82
|
-
REPEAT_OPERATOR,
|
83
|
-
INVERT_OPERATOR,
|
84
|
-
CONTROL_OPERATOR,
|
85
|
-
IF_OPERATOR,
|
86
|
-
PERMUTE_OPERATOR,
|
87
|
-
POWER_OPERATOR,
|
88
|
-
APPLY_OPERATOR,
|
89
|
-
COMPUTE,
|
90
|
-
UNCOMPUTE,
|
91
|
-
]
|
92
|
-
|
93
|
-
QuantumFunctionDeclaration.BUILTIN_FUNCTION_DECLARATIONS.update(
|
94
|
-
nameables_to_dict(BUILTIN_QUANTUM_OPERATOR_LIST)
|
95
|
-
)
|
classiq/model/__init__.py
DELETED
@@ -1,14 +0,0 @@
|
|
1
|
-
from typing import List
|
2
|
-
|
3
|
-
from classiq.interface.generator.model import * # noqa: F403
|
4
|
-
from classiq.interface.generator.model import __all__ as _model_all
|
5
|
-
|
6
|
-
from classiq.model.composite_function_generator import FunctionGenerator
|
7
|
-
from classiq.model.model import Model
|
8
|
-
|
9
|
-
__all__ = ["FunctionGenerator", "Model"]
|
10
|
-
__all__.extend(_model_all)
|
11
|
-
|
12
|
-
|
13
|
-
def __dir__() -> List[str]:
|
14
|
-
return __all__
|
@@ -1,33 +0,0 @@
|
|
1
|
-
from typing import List
|
2
|
-
|
3
|
-
from classiq.interface.generator.function_params import PortDirection
|
4
|
-
from classiq.interface.generator.functions import SynthesisNativeFunctionDefinition
|
5
|
-
from classiq.interface.generator.quantum_function_call import (
|
6
|
-
SynthesisQuantumFunctionCall,
|
7
|
-
)
|
8
|
-
|
9
|
-
from classiq.model import function_handler
|
10
|
-
from classiq.quantum_functions.function_library import FunctionLibrary
|
11
|
-
|
12
|
-
|
13
|
-
class FunctionGenerator(function_handler.FunctionHandler):
|
14
|
-
def __init__(self, function_name: str) -> None:
|
15
|
-
super().__init__()
|
16
|
-
self._name = function_name
|
17
|
-
self._logic_flow_list: List[SynthesisQuantumFunctionCall] = list()
|
18
|
-
|
19
|
-
@property
|
20
|
-
def _body(self) -> List[SynthesisQuantumFunctionCall]:
|
21
|
-
return self._logic_flow_list
|
22
|
-
|
23
|
-
def to_function_definition(self) -> SynthesisNativeFunctionDefinition:
|
24
|
-
return SynthesisNativeFunctionDefinition(
|
25
|
-
name=self._name,
|
26
|
-
body=self._body,
|
27
|
-
port_declarations=self._port_declarations,
|
28
|
-
input_ports_wiring=self._external_port_wiring[PortDirection.Input],
|
29
|
-
output_ports_wiring=self._external_port_wiring[PortDirection.Output],
|
30
|
-
)
|
31
|
-
|
32
|
-
def create_library(self) -> None:
|
33
|
-
self.include_library(FunctionLibrary())
|