classiq 0.36.0__py3-none-any.whl → 0.37.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 +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 +42 -67
- classiq/applications_model_constructors/grover_model_constructor.py +27 -18
- classiq/exceptions.py +5 -0
- 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/executor/register_initialization.py +3 -1
- classiq/interface/executor/vqe_result.py +1 -0
- classiq/interface/generator/ansatz_library.py +3 -3
- classiq/interface/generator/arith/argument_utils.py +4 -4
- classiq/interface/generator/arith/arithmetic.py +4 -2
- classiq/interface/generator/arith/arithmetic_arg_type_validator.py +11 -5
- classiq/interface/generator/arith/arithmetic_expression_parser.py +8 -7
- classiq/interface/generator/arith/arithmetic_operations.py +7 -0
- classiq/interface/generator/arith/arithmetic_param_getters.py +97 -16
- classiq/interface/generator/arith/arithmetic_result_builder.py +13 -3
- classiq/interface/generator/arith/binary_ops.py +8 -10
- classiq/interface/generator/arith/extremum_operations.py +2 -2
- classiq/interface/generator/arith/number_utils.py +20 -23
- classiq/interface/generator/arith/register_user_input.py +3 -1
- classiq/interface/generator/arith/unary_ops.py +9 -13
- classiq/interface/generator/expressions/atomic_expression_functions.py +2 -0
- classiq/interface/generator/expressions/expression.py +7 -2
- 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/atomic_quantum_functions.py +63 -3
- classiq/interface/generator/functions/core_lib_declarations/quantum_functions/std_lib_functions.py +143 -17
- classiq/interface/generator/functions/core_lib_declarations/quantum_operators.py +41 -16
- 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 +13 -9
- 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/randomized_benchmarking.py +5 -3
- classiq/interface/generator/visitor.py +1 -2
- classiq/interface/hardware.py +1 -1
- classiq/interface/helpers/custom_pydantic_types.py +6 -0
- classiq/interface/model/{modular_addition_operation.py → inplace_binary_operation.py} +16 -2
- classiq/interface/model/native_function_definition.py +2 -24
- classiq/interface/model/operator_synthesis_data.py +6 -0
- classiq/interface/model/quantum_expressions/amplitude_loading_operation.py +8 -4
- classiq/interface/model/quantum_expressions/arithmetic_operation.py +9 -5
- classiq/interface/model/quantum_expressions/control_state.py +38 -0
- classiq/interface/model/quantum_expressions/quantum_expression.py +21 -11
- classiq/interface/model/quantum_function_call.py +81 -6
- classiq/interface/model/quantum_function_declaration.py +3 -3
- classiq/interface/model/quantum_if_operation.py +95 -0
- classiq/interface/model/resolvers/function_call_resolver.py +1 -1
- classiq/interface/model/validations/handles_validator.py +42 -15
- classiq/interface/server/routes.py +10 -6
- classiq/model/function_handler.pyi +86 -86
- classiq/model/model.py +1 -0
- classiq/qmod/__init__.py +6 -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 +88 -18
- classiq/qmod/builtins/operations.py +60 -35
- classiq/qmod/classical_function.py +40 -0
- classiq/qmod/declaration_inferrer.py +5 -2
- classiq/qmod/qmod_variable.py +17 -10
- classiq/qmod/quantum_callable.py +24 -3
- classiq/qmod/quantum_expandable.py +131 -21
- classiq/qmod/quantum_function.py +12 -2
- classiq/qmod/symbolic.py +182 -107
- classiq/qmod/symbolic_expr.py +11 -10
- 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.0.dist-info → classiq-0.37.0.dist-info}/METADATA +1 -1
- {classiq-0.36.0.dist-info → classiq-0.37.0.dist-info}/RECORD +90 -82
- classiq/interface/model/local_variable_declaration.py +0 -7
- {classiq-0.36.0.dist-info → classiq-0.37.0.dist-info}/WHEEL +0 -0
@@ -45,108 +45,108 @@ class FunctionHandler(abc.ABC, metaclass=abc.ABCMeta):
|
|
45
45
|
def include_library(self, library: FunctionLibrary) -> None: ...
|
46
46
|
@abc.abstractmethod
|
47
47
|
def create_library(self) -> None: ...
|
48
|
-
def WeightedAdder(self, params: WeightedAdder, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
49
|
-
def HartreeFock(self, params: HartreeFock, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
50
|
-
def RXXGate(self, params: RXXGate, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
51
|
-
def Mcu(self, params: Mcu, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
52
|
-
def FinancePayoff(self, params: FinancePayoff, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
53
48
|
def Mcx(self, params: Mcx, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
54
|
-
def
|
55
|
-
def
|
56
|
-
def
|
57
|
-
def
|
58
|
-
def
|
59
|
-
def
|
60
|
-
def
|
61
|
-
def
|
62
|
-
def
|
49
|
+
def CHGate(self, params: CHGate, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
50
|
+
def Negation(self, params: Negation, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
51
|
+
def BitwiseInvert(self, params: BitwiseInvert, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
52
|
+
def RXGate(self, params: RXGate, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
53
|
+
def LessEqual(self, params: LessEqual, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
54
|
+
def HVA(self, params: HVA, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
55
|
+
def LogicalOr(self, params: LogicalOr, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
56
|
+
def Mcu(self, params: Mcu, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
57
|
+
def CustomFunction(self, params: CustomFunction, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
58
|
+
def Multiplier(self, params: Multiplier, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
59
|
+
def RZZGate(self, params: RZZGate, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
60
|
+
def ExponentialStatePreparation(self, params: ExponentialStatePreparation, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
61
|
+
def QSVMFeatureMap(self, params: QSVMFeatureMap, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
63
62
|
def YGate(self, params: YGate, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
63
|
+
def FinanceModels(self, params: FinanceModels, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
64
64
|
def ZGate(self, params: ZGate, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
65
65
|
def HGate(self, params: HGate, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
66
|
-
def
|
66
|
+
def QFT(self, params: QFT, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
67
67
|
def IGate(self, params: IGate, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
68
|
-
def LShift(self, params: LShift, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
69
68
|
def SGate(self, params: SGate, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
70
|
-
def
|
71
|
-
def
|
72
|
-
def
|
69
|
+
def StatePropagator(self, params: StatePropagator, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
70
|
+
def LShift(self, params: LShift, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
71
|
+
def PhaseEstimation(self, params: PhaseEstimation, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
73
72
|
def SXGate(self, params: SXGate, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
74
|
-
def
|
75
|
-
def
|
76
|
-
def
|
77
|
-
def
|
78
|
-
def
|
79
|
-
def
|
73
|
+
def HardwareEfficientAnsatz(self, params: HardwareEfficientAnsatz, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
74
|
+
def SdgGate(self, params: SdgGate, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
75
|
+
def SXdgGate(self, params: SXdgGate, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
76
|
+
def TGate(self, params: TGate, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
77
|
+
def LinearPauliRotations(self, params: LinearPauliRotations, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
78
|
+
def TwoDimensionalEntangler(self, params: TwoDimensionalEntangler, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
79
|
+
def TdgGate(self, params: TdgGate, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
80
|
+
def RYYGate(self, params: RYYGate, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
80
81
|
def PiecewiseLinearRotationAmplitudeLoading(self, params: PiecewiseLinearRotationAmplitudeLoading, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
81
|
-
def
|
82
|
-
def
|
82
|
+
def CCXGate(self, params: CCXGate, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
83
|
+
def QDrift(self, params: QDrift, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
84
|
+
def AmplitudeLoading(self, params: AmplitudeLoading, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
85
|
+
def C4XGate(self, params: C4XGate, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
86
|
+
def Modulo(self, params: Modulo, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
87
|
+
def LogicalAnd(self, params: LogicalAnd, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
88
|
+
def CommutingPauliExponentiation(self, params: CommutingPauliExponentiation, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
89
|
+
def GroverDiffuser(self, params: GroverDiffuser, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
83
90
|
def Arithmetic(self, params: Arithmetic, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
84
|
-
def CYGate(self, params: CYGate, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
85
|
-
def CZGate(self, params: CZGate, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
86
|
-
def ExponentialStatePreparation(self, params: ExponentialStatePreparation, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
87
|
-
def C3XGate(self, params: C3XGate, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
88
|
-
def BitwiseXor(self, params: BitwiseXor, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
89
|
-
def BitwiseInvert(self, params: BitwiseInvert, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
90
|
-
def CustomFunction(self, params: CustomFunction, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
91
|
-
def ArithmeticOracle(self, params: ArithmeticOracle, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
92
|
-
def GreaterThan(self, params: GreaterThan, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
93
91
|
def GreaterEqual(self, params: GreaterEqual, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
94
|
-
def RZGate(self, params: RZGate, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
95
|
-
def LessThan(self, params: LessThan, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
96
|
-
def LessEqual(self, params: LessEqual, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
97
|
-
def WStatePreparation(self, params: WStatePreparation, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
98
|
-
def Power(self, params: Power, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
99
|
-
def Sign(self, params: Sign, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
100
92
|
def BitwiseAnd(self, params: BitwiseAnd, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
101
|
-
def
|
102
|
-
def
|
103
|
-
def
|
104
|
-
def
|
93
|
+
def PhaseGate(self, params: PhaseGate, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
94
|
+
def SwapGate(self, params: SwapGate, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
95
|
+
def UCC(self, params: UCC, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
96
|
+
def BitwiseOr(self, params: BitwiseOr, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
97
|
+
def CRYGate(self, params: CRYGate, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
98
|
+
def iSwapGate(self, params: iSwapGate, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
99
|
+
def GreaterThan(self, params: GreaterThan, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
100
|
+
def Power(self, params: Power, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
101
|
+
def CRXGate(self, params: CRXGate, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
105
102
|
def Adder(self, params: Adder, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
106
|
-
def
|
107
|
-
def
|
108
|
-
def
|
109
|
-
def
|
110
|
-
def GridEntangler(self, params: GridEntangler, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
111
|
-
def RZZGate(self, params: RZZGate, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
112
|
-
def RangeMixer(self, params: RangeMixer, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
113
|
-
def CHGate(self, params: CHGate, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
103
|
+
def NotEqual(self, params: NotEqual, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
104
|
+
def Exponentiation(self, params: Exponentiation, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
105
|
+
def HartreeFock(self, params: HartreeFock, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
106
|
+
def PiecewiseLinearAmplitudeLoading(self, params: PiecewiseLinearAmplitudeLoading, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
114
107
|
def CSXGate(self, params: CSXGate, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
115
|
-
def
|
116
|
-
def
|
117
|
-
def StatePropagator(self, params: StatePropagator, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
118
|
-
def RShift(self, params: RShift, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
119
|
-
def RYYGate(self, params: RYYGate, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
120
|
-
def HardwareEfficientAnsatz(self, params: HardwareEfficientAnsatz, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
121
|
-
def CustomOracle(self, params: CustomOracle, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
122
|
-
def RXGate(self, params: RXGate, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
123
|
-
def LinearPauliRotations(self, params: LinearPauliRotations, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
124
|
-
def XGate(self, params: XGate, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
125
|
-
def CommutingPauliExponentiation(self, params: CommutingPauliExponentiation, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
108
|
+
def UniformDistributionStatePreparation(self, params: UniformDistributionStatePreparation, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
109
|
+
def RGate(self, params: RGate, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
126
110
|
def Min(self, params: Min, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
111
|
+
def RXXGate(self, params: RXXGate, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
112
|
+
def CyclicShift(self, params: CyclicShift, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
113
|
+
def CustomOracle(self, params: CustomOracle, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
127
114
|
def Max(self, params: Max, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
128
|
-
def
|
129
|
-
def
|
130
|
-
def
|
131
|
-
def
|
132
|
-
def
|
133
|
-
def
|
134
|
-
def
|
115
|
+
def WStatePreparation(self, params: WStatePreparation, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
116
|
+
def RandomizedBenchmarking(self, params: RandomizedBenchmarking, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
117
|
+
def LessThan(self, params: LessThan, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
118
|
+
def RangeMixer(self, params: RangeMixer, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
119
|
+
def CPhaseGate(self, params: CPhaseGate, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
120
|
+
def CRZGate(self, params: CRZGate, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
121
|
+
def InequalityMixer(self, params: InequalityMixer, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
122
|
+
def UnitaryGate(self, params: UnitaryGate, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
123
|
+
def WeightedAdder(self, params: WeightedAdder, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
124
|
+
def GHZStatePreparation(self, params: GHZStatePreparation, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
125
|
+
def CXGate(self, params: CXGate, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
126
|
+
def Identity(self, params: Identity, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
127
|
+
def FinancePayoff(self, params: FinancePayoff, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
128
|
+
def RZGate(self, params: RZGate, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
129
|
+
def HadamardTransform(self, params: HadamardTransform, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
130
|
+
def Subtractor(self, params: Subtractor, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
135
131
|
def Equal(self, params: Equal, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
136
|
-
def
|
137
|
-
def
|
138
|
-
def
|
139
|
-
def
|
140
|
-
def
|
141
|
-
def
|
132
|
+
def Sign(self, params: Sign, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
133
|
+
def CYGate(self, params: CYGate, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
134
|
+
def CZGate(self, params: CZGate, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
135
|
+
def XGate(self, params: XGate, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
136
|
+
def StatePreparation(self, params: StatePreparation, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
137
|
+
def LinearGCI(self, params: LinearGCI, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
138
|
+
def C3XGate(self, params: C3XGate, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
139
|
+
def MCPhaseGate(self, params: MCPhaseGate, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
140
|
+
def UGate(self, params: UGate, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
141
|
+
def SuzukiTrotter(self, params: SuzukiTrotter, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
142
142
|
def BellStatePreparation(self, params: BellStatePreparation, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
143
|
-
def
|
143
|
+
def BitwiseXor(self, params: BitwiseXor, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
144
|
+
def RYGate(self, params: RYGate, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
145
|
+
def Finance(self, params: Finance, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
146
|
+
def RShift(self, params: RShift, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
147
|
+
def ComputationalBasisStatePreparation(self, params: ComputationalBasisStatePreparation, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
144
148
|
def GroverOperator(self, params: GroverOperator, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
145
|
-
def C4XGate(self, params: C4XGate, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
146
149
|
def AmplitudeEstimation(self, params: AmplitudeEstimation, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
147
|
-
def
|
148
|
-
def
|
149
|
-
def
|
150
|
-
def PiecewiseLinearAmplitudeLoading(self, params: PiecewiseLinearAmplitudeLoading, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
151
|
-
def CyclicShift(self, params: CyclicShift, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
152
|
-
def iSwapGate(self, params: iSwapGate, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
150
|
+
def ArithmeticOracle(self, params: ArithmeticOracle, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
151
|
+
def HypercubeEntangler(self, params: HypercubeEntangler, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
152
|
+
def GridEntangler(self, params: GridEntangler, in_wires: Optional[Dict[str, Wire]] = None) -> Dict[str, Wire]: ...
|
classiq/model/model.py
CHANGED
classiq/qmod/__init__.py
CHANGED
@@ -1,9 +1,11 @@
|
|
1
|
+
from . import symbolic
|
1
2
|
from .builtins import * # noqa: F403
|
2
3
|
from .builtins import __all__ as _builtins_all
|
4
|
+
from .classical_function import CFunc
|
3
5
|
from .qmod_parameter import Array, QParam
|
4
6
|
from .qmod_struct import QStruct
|
5
7
|
from .qmod_variable import Input, Output, QArray, QBit, QNum
|
6
|
-
from .quantum_callable import QCallable
|
8
|
+
from .quantum_callable import QCallable, QCallableList
|
7
9
|
from .quantum_function import QFunc, create_model
|
8
10
|
|
9
11
|
__all__ = [
|
@@ -15,7 +17,10 @@ __all__ = [
|
|
15
17
|
"QBit",
|
16
18
|
"QNum",
|
17
19
|
"QCallable",
|
20
|
+
"QCallableList",
|
18
21
|
"QStruct",
|
19
22
|
"QFunc",
|
23
|
+
"CFunc",
|
20
24
|
"create_model",
|
25
|
+
"symbolic",
|
21
26
|
] + _builtins_all
|
@@ -1,3 +1,9 @@
|
|
1
|
+
from .classical_execution_primitives import * # noqa: F403
|
2
|
+
from .classical_execution_primitives import (
|
3
|
+
__all__ as _builtin_classical_execution_primitives,
|
4
|
+
)
|
5
|
+
from .classical_functions import * # noqa: F403
|
6
|
+
from .classical_functions import __all__ as _builtin_classical_functions
|
1
7
|
from .functions import * # noqa: F403
|
2
8
|
from .functions import __all__ as _builtin_functions
|
3
9
|
from .operations import * # noqa: F403
|
@@ -5,4 +11,10 @@ from .operations import __all__ as _builtin_operations
|
|
5
11
|
from .structs import * # noqa: F403
|
6
12
|
from .structs import __all__ as _builtin_structs
|
7
13
|
|
8
|
-
__all__ =
|
14
|
+
__all__ = (
|
15
|
+
_builtin_structs
|
16
|
+
+ _builtin_functions
|
17
|
+
+ _builtin_operations
|
18
|
+
+ _builtin_classical_execution_primitives
|
19
|
+
+ _builtin_classical_functions
|
20
|
+
)
|
@@ -0,0 +1,109 @@
|
|
1
|
+
from typing import Dict, List, Optional
|
2
|
+
|
3
|
+
from classiq.interface.executor.execution_preferences import QaeWithQpeEstimationMethod
|
4
|
+
from classiq.interface.executor.iqae_result import IQAEResult
|
5
|
+
from classiq.interface.executor.result import EstimationResult, ExecutionDetails
|
6
|
+
from classiq.interface.executor.vqe_result import VQESolverResult
|
7
|
+
from classiq.interface.generator.expressions.enums import Optimizer
|
8
|
+
from classiq.interface.generator.functions.qmod_python_interface import QmodPyStruct
|
9
|
+
from classiq.interface.generator.types.combinatorial_problem import (
|
10
|
+
CombinatorialOptimizationStructDeclaration,
|
11
|
+
)
|
12
|
+
|
13
|
+
from classiq.applications.qsvm.qsvm import Data, Labels
|
14
|
+
|
15
|
+
ExecutionParams = Dict[str, float]
|
16
|
+
|
17
|
+
|
18
|
+
def save(values_to_save: dict) -> None:
|
19
|
+
pass
|
20
|
+
|
21
|
+
|
22
|
+
def sample( # type: ignore
|
23
|
+
execution_params: Optional[ExecutionParams] = None,
|
24
|
+
) -> ExecutionDetails:
|
25
|
+
pass
|
26
|
+
|
27
|
+
|
28
|
+
def estimate( # type: ignore
|
29
|
+
hamiltonian: List[QmodPyStruct], execution_params: Optional[ExecutionParams] = None
|
30
|
+
) -> EstimationResult:
|
31
|
+
pass
|
32
|
+
|
33
|
+
|
34
|
+
def vqe( # type: ignore
|
35
|
+
hamiltonian: List[QmodPyStruct],
|
36
|
+
maximize: bool,
|
37
|
+
initial_point: List[int],
|
38
|
+
optimizer: Optimizer,
|
39
|
+
max_iteration: int,
|
40
|
+
tolerance: float,
|
41
|
+
step_size: float,
|
42
|
+
skip_compute_variance: bool,
|
43
|
+
alpha_cvar: float,
|
44
|
+
) -> VQESolverResult:
|
45
|
+
pass
|
46
|
+
|
47
|
+
|
48
|
+
def qae_with_qpe_result_post_processing( # type: ignore
|
49
|
+
estimation_register_size: int,
|
50
|
+
estimation_method: QaeWithQpeEstimationMethod,
|
51
|
+
result: ExecutionDetails,
|
52
|
+
) -> float:
|
53
|
+
pass
|
54
|
+
|
55
|
+
|
56
|
+
def qsvm_full_run( # type: ignore
|
57
|
+
train_data: Data,
|
58
|
+
train_labels: Labels,
|
59
|
+
test_data: Data,
|
60
|
+
test_labels: Labels,
|
61
|
+
predict_data: Data,
|
62
|
+
) -> QmodPyStruct:
|
63
|
+
pass
|
64
|
+
|
65
|
+
|
66
|
+
def iqae( # type: ignore
|
67
|
+
epsilon: float,
|
68
|
+
alpha: float,
|
69
|
+
execution_params: Optional[ExecutionParams] = None,
|
70
|
+
) -> IQAEResult:
|
71
|
+
pass
|
72
|
+
|
73
|
+
|
74
|
+
def molecule_ground_state_solution_post_process( # type: ignore
|
75
|
+
problem: QmodPyStruct, vqe_result: VQESolverResult
|
76
|
+
) -> QmodPyStruct:
|
77
|
+
pass
|
78
|
+
|
79
|
+
|
80
|
+
def optimization_problem_to_hamiltonian( # type: ignore
|
81
|
+
problem_struct: CombinatorialOptimizationStructDeclaration, penalty_energy: float
|
82
|
+
) -> List[QmodPyStruct]:
|
83
|
+
pass
|
84
|
+
|
85
|
+
|
86
|
+
def get_optimization_solution( # type: ignore
|
87
|
+
problem_struct: CombinatorialOptimizationStructDeclaration,
|
88
|
+
vqe_result: VQESolverResult,
|
89
|
+
penalty_energy: float,
|
90
|
+
) -> List[QmodPyStruct]:
|
91
|
+
pass
|
92
|
+
|
93
|
+
|
94
|
+
__all__ = [
|
95
|
+
"save",
|
96
|
+
"sample",
|
97
|
+
"estimate",
|
98
|
+
"vqe",
|
99
|
+
"qae_with_qpe_result_post_processing",
|
100
|
+
"qsvm_full_run",
|
101
|
+
"iqae",
|
102
|
+
"molecule_ground_state_solution_post_process",
|
103
|
+
"optimization_problem_to_hamiltonian",
|
104
|
+
"get_optimization_solution",
|
105
|
+
]
|
106
|
+
|
107
|
+
|
108
|
+
def __dir__() -> List[str]:
|
109
|
+
return __all__
|
@@ -0,0 +1,68 @@
|
|
1
|
+
# This file was generated automatically - do not edit manually
|
2
|
+
|
3
|
+
from typing import List
|
4
|
+
|
5
|
+
from classiq.qmod.qmod_parameter import QParam
|
6
|
+
from classiq.qmod.symbolic import symbolic_function
|
7
|
+
|
8
|
+
from .structs import *
|
9
|
+
|
10
|
+
|
11
|
+
def compute_qaoa_initial_point(
|
12
|
+
hamiltonian: QParam[List[PauliTerm]],
|
13
|
+
repetitions: QParam[int],
|
14
|
+
) -> QParam[List[float]]:
|
15
|
+
return symbolic_function(hamiltonian, repetitions)
|
16
|
+
|
17
|
+
|
18
|
+
def molecule_problem_to_hamiltonian(
|
19
|
+
problem: QParam[MoleculeProblem],
|
20
|
+
) -> QParam[List[PauliTerm]]:
|
21
|
+
return symbolic_function(problem)
|
22
|
+
|
23
|
+
|
24
|
+
def fock_hamiltonian_problem_to_hamiltonian(
|
25
|
+
problem: QParam[FockHamiltonianProblem],
|
26
|
+
) -> QParam[List[PauliTerm]]:
|
27
|
+
return symbolic_function(problem)
|
28
|
+
|
29
|
+
|
30
|
+
def grid_entangler_graph(
|
31
|
+
num_qubits: QParam[int],
|
32
|
+
schmidt_rank: QParam[int],
|
33
|
+
grid_randomization: QParam[bool],
|
34
|
+
) -> QParam[List[List[int]]]:
|
35
|
+
return symbolic_function(num_qubits, schmidt_rank, grid_randomization)
|
36
|
+
|
37
|
+
|
38
|
+
def hypercube_entangler_graph(
|
39
|
+
num_qubits: QParam[int],
|
40
|
+
) -> QParam[List[List[int]]]:
|
41
|
+
return symbolic_function(num_qubits)
|
42
|
+
|
43
|
+
|
44
|
+
def log_normal_finance_post_process(
|
45
|
+
finance_model: QParam[LogNormalModel],
|
46
|
+
estimation_method: QParam[FinanceFunction],
|
47
|
+
probability: QParam[float],
|
48
|
+
) -> QParam[float]:
|
49
|
+
return symbolic_function(finance_model, estimation_method, probability)
|
50
|
+
|
51
|
+
|
52
|
+
def gaussian_finance_post_process(
|
53
|
+
finance_model: QParam[GaussianModel],
|
54
|
+
estimation_method: QParam[FinanceFunction],
|
55
|
+
probability: QParam[float],
|
56
|
+
) -> QParam[float]:
|
57
|
+
return symbolic_function(finance_model, estimation_method, probability)
|
58
|
+
|
59
|
+
|
60
|
+
__all__ = [
|
61
|
+
"compute_qaoa_initial_point",
|
62
|
+
"molecule_problem_to_hamiltonian",
|
63
|
+
"fock_hamiltonian_problem_to_hamiltonian",
|
64
|
+
"grid_entangler_graph",
|
65
|
+
"hypercube_entangler_graph",
|
66
|
+
"log_normal_finance_post_process",
|
67
|
+
"gaussian_finance_post_process",
|
68
|
+
]
|
@@ -4,7 +4,7 @@ from typing import List, Literal
|
|
4
4
|
|
5
5
|
from classiq.qmod.qmod_parameter import QParam
|
6
6
|
from classiq.qmod.qmod_variable import Input, Output, QArray, QBit, QNum
|
7
|
-
from classiq.qmod.quantum_callable import QCallable
|
7
|
+
from classiq.qmod.quantum_callable import QCallable, QCallableList
|
8
8
|
from classiq.qmod.quantum_function import ExternalQFunc
|
9
9
|
|
10
10
|
from .structs import *
|
@@ -257,7 +257,15 @@ def add(
|
|
257
257
|
|
258
258
|
|
259
259
|
@ExternalQFunc
|
260
|
-
def
|
260
|
+
def modular_add(
|
261
|
+
left: QArray[QBit],
|
262
|
+
right: QArray[QBit],
|
263
|
+
) -> None:
|
264
|
+
pass
|
265
|
+
|
266
|
+
|
267
|
+
@ExternalQFunc
|
268
|
+
def integer_xor(
|
261
269
|
left: QArray[QBit],
|
262
270
|
right: QArray[QBit],
|
263
271
|
) -> None:
|
@@ -298,6 +306,32 @@ def free(
|
|
298
306
|
pass
|
299
307
|
|
300
308
|
|
309
|
+
@ExternalQFunc
|
310
|
+
def randomized_benchmarking(
|
311
|
+
num_of_cliffords: QParam[int],
|
312
|
+
target: QArray[QBit],
|
313
|
+
) -> None:
|
314
|
+
pass
|
315
|
+
|
316
|
+
|
317
|
+
@ExternalQFunc
|
318
|
+
def inplace_prepare_state(
|
319
|
+
probabilities: QParam[List[float]],
|
320
|
+
bound: QParam[float],
|
321
|
+
target: QArray[QBit, Literal["log(len(probabilities), 2)"]],
|
322
|
+
) -> None:
|
323
|
+
pass
|
324
|
+
|
325
|
+
|
326
|
+
@ExternalQFunc
|
327
|
+
def inplace_prepare_amplitudes(
|
328
|
+
amplitudes: QParam[List[float]],
|
329
|
+
bound: QParam[float],
|
330
|
+
target: QArray[QBit, Literal["log(len(amplitudes), 2)"]],
|
331
|
+
) -> None:
|
332
|
+
pass
|
333
|
+
|
334
|
+
|
301
335
|
@ExternalQFunc
|
302
336
|
def single_pauli_exponent(
|
303
337
|
pauli_string: QParam[List[int]],
|
@@ -353,19 +387,26 @@ def qft(
|
|
353
387
|
|
354
388
|
|
355
389
|
@ExternalQFunc
|
356
|
-
def
|
357
|
-
|
358
|
-
|
359
|
-
phase: QArray[QBit, Literal["precision"]],
|
390
|
+
def qpe_flexible(
|
391
|
+
unitary_with_power: QCallable[QParam[int]],
|
392
|
+
phase: QNum,
|
360
393
|
) -> None:
|
361
394
|
pass
|
362
395
|
|
363
396
|
|
364
397
|
@ExternalQFunc
|
365
398
|
def qpe(
|
399
|
+
unitary: QCallable,
|
400
|
+
phase: QNum,
|
401
|
+
) -> None:
|
402
|
+
pass
|
403
|
+
|
404
|
+
|
405
|
+
@ExternalQFunc
|
406
|
+
def standard_qpe(
|
366
407
|
precision: QParam[int],
|
367
408
|
unitary: QCallable,
|
368
|
-
phase:
|
409
|
+
phase: QArray[QBit, Literal["precision"]],
|
369
410
|
) -> None:
|
370
411
|
pass
|
371
412
|
|
@@ -466,8 +507,8 @@ def prepare_int(
|
|
466
507
|
@ExternalQFunc
|
467
508
|
def allocate_num(
|
468
509
|
num_qubits: QParam[int],
|
469
|
-
fraction_digits: QParam[int],
|
470
510
|
is_signed: QParam[bool],
|
511
|
+
fraction_digits: QParam[int],
|
471
512
|
out: Output[QNum],
|
472
513
|
) -> None:
|
473
514
|
pass
|
@@ -527,13 +568,22 @@ def full_hea(
|
|
527
568
|
angle_params: QParam[List[float]],
|
528
569
|
connectivity_map: QParam[List[List[int]]],
|
529
570
|
reps: QParam[int],
|
530
|
-
operands_1qubit:
|
531
|
-
operands_2qubit:
|
571
|
+
operands_1qubit: QCallableList[QParam[float], QBit],
|
572
|
+
operands_2qubit: QCallableList[QParam[float], QBit, QBit],
|
532
573
|
x: QArray[QBit, Literal["num_qubits"]],
|
533
574
|
) -> None:
|
534
575
|
pass
|
535
576
|
|
536
577
|
|
578
|
+
@ExternalQFunc
|
579
|
+
def swap_test(
|
580
|
+
state1: QArray[QBit],
|
581
|
+
state2: QArray[QBit],
|
582
|
+
test: Output[QArray[QBit]],
|
583
|
+
) -> None:
|
584
|
+
pass
|
585
|
+
|
586
|
+
|
537
587
|
@ExternalQFunc
|
538
588
|
def repeat(
|
539
589
|
count: QParam[int],
|
@@ -569,7 +619,7 @@ def if_(
|
|
569
619
|
@ExternalQFunc
|
570
620
|
def switch(
|
571
621
|
selector: QParam[int],
|
572
|
-
cases:
|
622
|
+
cases: QCallableList,
|
573
623
|
) -> None:
|
574
624
|
pass
|
575
625
|
|
@@ -596,7 +646,7 @@ def split(
|
|
596
646
|
|
597
647
|
@ExternalQFunc
|
598
648
|
def permute(
|
599
|
-
functions:
|
649
|
+
functions: QCallableList,
|
600
650
|
) -> None:
|
601
651
|
pass
|
602
652
|
|
@@ -610,10 +660,22 @@ def power(
|
|
610
660
|
|
611
661
|
|
612
662
|
@ExternalQFunc
|
613
|
-
def
|
614
|
-
|
663
|
+
def apply(
|
664
|
+
operand: QCallable,
|
665
|
+
) -> None:
|
666
|
+
pass
|
667
|
+
|
668
|
+
|
669
|
+
@ExternalQFunc
|
670
|
+
def compute(
|
671
|
+
operand: QCallable,
|
672
|
+
) -> None:
|
673
|
+
pass
|
674
|
+
|
675
|
+
|
676
|
+
@ExternalQFunc
|
677
|
+
def uncompute(
|
615
678
|
operand: QCallable,
|
616
|
-
ctrl: QNum,
|
617
679
|
) -> None:
|
618
680
|
pass
|
619
681
|
|
@@ -773,19 +835,24 @@ __all__ = [
|
|
773
835
|
"prepare_amplitudes",
|
774
836
|
"unitary",
|
775
837
|
"add",
|
776
|
-
"
|
838
|
+
"modular_add",
|
839
|
+
"integer_xor",
|
777
840
|
"U",
|
778
841
|
"CCX",
|
779
842
|
"allocate",
|
780
843
|
"free",
|
844
|
+
"randomized_benchmarking",
|
845
|
+
"inplace_prepare_state",
|
846
|
+
"inplace_prepare_amplitudes",
|
781
847
|
"single_pauli_exponent",
|
782
848
|
"suzuki_trotter",
|
783
849
|
"qdrift",
|
784
850
|
"exponentiation_with_depth_constraint",
|
785
851
|
"qft_step",
|
786
852
|
"qft",
|
787
|
-
"
|
853
|
+
"qpe_flexible",
|
788
854
|
"qpe",
|
855
|
+
"standard_qpe",
|
789
856
|
"single_pauli",
|
790
857
|
"linear_pauli_rotations",
|
791
858
|
"amplitude_estimation",
|
@@ -803,6 +870,7 @@ __all__ = [
|
|
803
870
|
"qaoa_init",
|
804
871
|
"qaoa_penalty",
|
805
872
|
"full_hea",
|
873
|
+
"swap_test",
|
806
874
|
"repeat",
|
807
875
|
"invert",
|
808
876
|
"control",
|
@@ -812,7 +880,9 @@ __all__ = [
|
|
812
880
|
"split",
|
813
881
|
"permute",
|
814
882
|
"power",
|
815
|
-
"
|
883
|
+
"apply",
|
884
|
+
"compute",
|
885
|
+
"uncompute",
|
816
886
|
"molecule_ucc",
|
817
887
|
"molecule_hva",
|
818
888
|
"molecule_hartree_fock",
|