eqc-models 0.9.9__py3-none-any.whl → 0.10.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.
Files changed (68) hide show
  1. eqc_models-0.10.0.data/platlib/compile_extensions.py +67 -0
  2. {eqc_models-0.9.9.data → eqc_models-0.10.0.data}/platlib/eqc_models/base/polyeval.c +127 -123
  3. {eqc_models-0.9.9.data → eqc_models-0.10.0.data}/platlib/eqc_models/base/polyeval.cpython-310-darwin.so +0 -0
  4. eqc_models-0.10.0.data/platlib/eqc_models/base.py +115 -0
  5. eqc_models-0.10.0.data/platlib/eqc_models/combinatorics/setcover.py +93 -0
  6. eqc_models-0.10.0.data/platlib/eqc_models/communitydetection.py +25 -0
  7. eqc_models-0.10.0.data/platlib/eqc_models/eqcdirectsolver.py +61 -0
  8. {eqc_models-0.9.9.data → eqc_models-0.10.0.data}/platlib/eqc_models/graph/base.py +28 -17
  9. eqc_models-0.10.0.data/platlib/eqc_models/graph/partition.py +148 -0
  10. eqc_models-0.10.0.data/platlib/eqc_models/graphs.py +28 -0
  11. eqc_models-0.10.0.data/platlib/eqc_models/maxcut.py +113 -0
  12. eqc_models-0.10.0.data/platlib/eqc_models/maxkcut.py +185 -0
  13. eqc_models-0.10.0.data/platlib/eqc_models/ml/classifierqboost.py +628 -0
  14. eqc_models-0.10.0.data/platlib/eqc_models/ml/cvqboost_hamiltonian.pyx +83 -0
  15. eqc_models-0.10.0.data/platlib/eqc_models/ml/cvqboost_hamiltonian_c_func.c +68 -0
  16. eqc_models-0.10.0.data/platlib/eqc_models/ml/cvqboost_hamiltonian_c_func.h +14 -0
  17. eqc_models-0.10.0.data/platlib/eqc_models/quadraticmodel.py +131 -0
  18. eqc_models-0.10.0.data/platlib/eqc_models/solvers/eqcdirect.py +160 -0
  19. {eqc_models-0.9.9.data → eqc_models-0.10.0.data}/platlib/eqc_models/utilities/polynomial.py +11 -0
  20. {eqc_models-0.9.9.dist-info → eqc_models-0.10.0.dist-info}/METADATA +2 -1
  21. eqc_models-0.10.0.dist-info/RECORD +65 -0
  22. eqc_models-0.9.9.data/platlib/compile_extensions.py +0 -23
  23. eqc_models-0.9.9.data/platlib/eqc_models/ml/classifierqboost.py +0 -423
  24. eqc_models-0.9.9.dist-info/RECORD +0 -52
  25. {eqc_models-0.9.9.data → eqc_models-0.10.0.data}/platlib/eqc_models/__init__.py +0 -0
  26. {eqc_models-0.9.9.data → eqc_models-0.10.0.data}/platlib/eqc_models/algorithms/__init__.py +0 -0
  27. {eqc_models-0.9.9.data → eqc_models-0.10.0.data}/platlib/eqc_models/algorithms/base.py +0 -0
  28. {eqc_models-0.9.9.data → eqc_models-0.10.0.data}/platlib/eqc_models/algorithms/penaltymultiplier.py +0 -0
  29. {eqc_models-0.9.9.data → eqc_models-0.10.0.data}/platlib/eqc_models/allocation/__init__.py +0 -0
  30. {eqc_models-0.9.9.data → eqc_models-0.10.0.data}/platlib/eqc_models/allocation/allocation.py +0 -0
  31. {eqc_models-0.9.9.data → eqc_models-0.10.0.data}/platlib/eqc_models/allocation/portbase.py +0 -0
  32. {eqc_models-0.9.9.data → eqc_models-0.10.0.data}/platlib/eqc_models/allocation/portmomentum.py +0 -0
  33. {eqc_models-0.9.9.data → eqc_models-0.10.0.data}/platlib/eqc_models/assignment/__init__.py +0 -0
  34. {eqc_models-0.9.9.data → eqc_models-0.10.0.data}/platlib/eqc_models/assignment/qap.py +0 -0
  35. {eqc_models-0.9.9.data → eqc_models-0.10.0.data}/platlib/eqc_models/assignment/setpartition.py +0 -0
  36. {eqc_models-0.9.9.data → eqc_models-0.10.0.data}/platlib/eqc_models/base/__init__.py +0 -0
  37. {eqc_models-0.9.9.data → eqc_models-0.10.0.data}/platlib/eqc_models/base/base.py +0 -0
  38. {eqc_models-0.9.9.data → eqc_models-0.10.0.data}/platlib/eqc_models/base/constraints.py +0 -0
  39. {eqc_models-0.9.9.data → eqc_models-0.10.0.data}/platlib/eqc_models/base/operators.py +0 -0
  40. {eqc_models-0.9.9.data → eqc_models-0.10.0.data}/platlib/eqc_models/base/polyeval.pyx +0 -0
  41. {eqc_models-0.9.9.data → eqc_models-0.10.0.data}/platlib/eqc_models/base/polynomial.py +0 -0
  42. {eqc_models-0.9.9.data → eqc_models-0.10.0.data}/platlib/eqc_models/base/quadratic.py +0 -0
  43. {eqc_models-0.9.9.data → eqc_models-0.10.0.data}/platlib/eqc_models/decoding.py +0 -0
  44. {eqc_models-0.9.9.data → eqc_models-0.10.0.data}/platlib/eqc_models/graph/__init__.py +0 -0
  45. {eqc_models-0.9.9.data → eqc_models-0.10.0.data}/platlib/eqc_models/graph/hypergraph.py +0 -0
  46. {eqc_models-0.9.9.data → eqc_models-0.10.0.data}/platlib/eqc_models/graph/maxcut.py +0 -0
  47. {eqc_models-0.9.9.data → eqc_models-0.10.0.data}/platlib/eqc_models/graph/maxkcut.py +0 -0
  48. {eqc_models-0.9.9.data → eqc_models-0.10.0.data}/platlib/eqc_models/ml/__init__.py +0 -0
  49. {eqc_models-0.9.9.data → eqc_models-0.10.0.data}/platlib/eqc_models/ml/classifierbase.py +0 -0
  50. {eqc_models-0.9.9.data → eqc_models-0.10.0.data}/platlib/eqc_models/ml/classifierqsvm.py +0 -0
  51. {eqc_models-0.9.9.data → eqc_models-0.10.0.data}/platlib/eqc_models/ml/clustering.py +0 -0
  52. {eqc_models-0.9.9.data → eqc_models-0.10.0.data}/platlib/eqc_models/ml/clusteringbase.py +0 -0
  53. {eqc_models-0.9.9.data → eqc_models-0.10.0.data}/platlib/eqc_models/ml/decomposition.py +0 -0
  54. {eqc_models-0.9.9.data → eqc_models-0.10.0.data}/platlib/eqc_models/ml/forecast.py +0 -0
  55. {eqc_models-0.9.9.data → eqc_models-0.10.0.data}/platlib/eqc_models/ml/forecastbase.py +0 -0
  56. {eqc_models-0.9.9.data → eqc_models-0.10.0.data}/platlib/eqc_models/ml/regressor.py +0 -0
  57. {eqc_models-0.9.9.data → eqc_models-0.10.0.data}/platlib/eqc_models/ml/regressorbase.py +0 -0
  58. {eqc_models-0.9.9.data → eqc_models-0.10.0.data}/platlib/eqc_models/ml/reservoir.py +0 -0
  59. {eqc_models-0.9.9.data → eqc_models-0.10.0.data}/platlib/eqc_models/sequence/__init__.py +0 -0
  60. {eqc_models-0.9.9.data → eqc_models-0.10.0.data}/platlib/eqc_models/sequence/tsp.py +0 -0
  61. {eqc_models-0.9.9.data → eqc_models-0.10.0.data}/platlib/eqc_models/solvers/__init__.py +0 -0
  62. {eqc_models-0.9.9.data → eqc_models-0.10.0.data}/platlib/eqc_models/solvers/qciclient.py +0 -0
  63. {eqc_models-0.9.9.data → eqc_models-0.10.0.data}/platlib/eqc_models/utilities/__init__.py +0 -0
  64. {eqc_models-0.9.9.data → eqc_models-0.10.0.data}/platlib/eqc_models/utilities/fileio.py +0 -0
  65. {eqc_models-0.9.9.data → eqc_models-0.10.0.data}/platlib/eqc_models/utilities/qplib.py +0 -0
  66. {eqc_models-0.9.9.dist-info → eqc_models-0.10.0.dist-info}/LICENSE.txt +0 -0
  67. {eqc_models-0.9.9.dist-info → eqc_models-0.10.0.dist-info}/WHEEL +0 -0
  68. {eqc_models-0.9.9.dist-info → eqc_models-0.10.0.dist-info}/top_level.txt +0 -0
@@ -1,423 +0,0 @@
1
- # (C) Quantum Computing Inc., 2024.
2
- # Import libs
3
- import os
4
- import sys
5
- import time
6
- import datetime
7
- import json
8
- import warnings
9
- from functools import wraps
10
- import numpy as np
11
- from sklearn.tree import DecisionTreeClassifier
12
- from sklearn.naive_bayes import GaussianNB
13
- from sklearn.linear_model import LogisticRegression
14
- from sklearn.gaussian_process import GaussianProcessClassifier
15
- from sklearn.gaussian_process.kernels import RBF
16
-
17
- from eqc_models.ml.classifierbase import ClassifierBase
18
-
19
- def timer(func):
20
- @wraps(func)
21
- def wrapper(*args, **kwargs):
22
- beg_time = time.time()
23
- val = func(*args, **kwargs)
24
- end_time = time.time()
25
- tot_time = end_time - beg_time
26
-
27
- print(
28
- "Runtime of %s: %0.2f seconds!"
29
- % (
30
- func.__name__,
31
- tot_time,
32
- )
33
- )
34
-
35
- return val
36
-
37
- return wrapper
38
-
39
- class WeakClassifierDct:
40
- def __init__(
41
- self,
42
- fea_ind_list,
43
- X_train,
44
- y_train,
45
- max_depth=10,
46
- min_samples_split=100,
47
- ):
48
- assert X_train.shape[0] == len(y_train)
49
-
50
- self.fea_ind_list = fea_ind_list
51
- self.X_train = X_train
52
- self.y_train = y_train
53
- self.clf = DecisionTreeClassifier(
54
- max_depth=max_depth,
55
- min_samples_split=min_samples_split,
56
- random_state=0,
57
- )
58
-
59
- def train(self):
60
- X_tmp = self.X_train.transpose()[self.fea_ind_list].transpose()
61
-
62
- self.clf.fit(X_tmp, self.y_train)
63
-
64
- def predict(self, X):
65
- X_tmp = X.transpose()[self.fea_ind_list].transpose()
66
-
67
- return self.clf.predict(X_tmp)
68
-
69
-
70
- class WeakClassifierNB:
71
- def __init__(self, fea_ind_list, X_train, y_train):
72
- assert X_train.shape[0] == len(y_train)
73
-
74
- self.fea_ind_list = fea_ind_list
75
- self.X_train = X_train
76
- self.y_train = y_train
77
- self.clf = GaussianNB()
78
-
79
- def train(self):
80
- X_tmp = self.X_train.transpose()[self.fea_ind_list].transpose()
81
-
82
- self.clf.fit(X_tmp, self.y_train)
83
-
84
- def predict(self, X):
85
- X_tmp = X.transpose()[self.fea_ind_list].transpose()
86
-
87
- return self.clf.predict(X_tmp)
88
-
89
-
90
- class WeakClassifierLG:
91
- def __init__(self, fea_ind_list, X_train, y_train):
92
- assert X_train.shape[0] == len(y_train)
93
-
94
- self.fea_ind_list = fea_ind_list
95
- self.X_train = X_train
96
- self.y_train = y_train
97
- self.clf = LogisticRegression(random_state=0)
98
-
99
- def train(self):
100
- X_tmp = self.X_train.transpose()[self.fea_ind_list].transpose()
101
-
102
- self.clf.fit(X_tmp, self.y_train)
103
-
104
- def predict(self, X):
105
- X_tmp = X.transpose()[self.fea_ind_list].transpose()
106
-
107
- return self.clf.predict(X_tmp)
108
-
109
-
110
- class WeakClassifierGP:
111
- def __init__(self, fea_ind_list, X_train, y_train):
112
- assert X_train.shape[0] == len(y_train)
113
-
114
- self.fea_ind_list = fea_ind_list
115
- self.X_train = X_train
116
- self.y_train = y_train
117
- self.clf = GaussianProcessClassifier(
118
- kernel=1.0 * RBF(1.0),
119
- random_state=0,
120
- )
121
-
122
- def train(self):
123
- X_tmp = self.X_train.transpose()[self.fea_ind_list].transpose()
124
-
125
- self.clf.fit(X_tmp, self.y_train)
126
-
127
- def predict(self, X):
128
- X_tmp = X.transpose()[self.fea_ind_list].transpose()
129
-
130
- return self.clf.predict(X_tmp)
131
-
132
-
133
- class QBoostClassifier(ClassifierBase):
134
- """An implementation of QBoost classifier that uses QCi's Dirac-3.
135
-
136
- Parameters
137
- ----------
138
- relaxation_schedule: Relaxation schedule used by Dirac-3;
139
- default: 2.
140
-
141
- num_samples: Number of samples used by Dirac-3; default: 1.
142
-
143
- lambda_coef: A penalty multiplier; default: 0.
144
-
145
- weak_cls_schedule: Weak classifier schedule. Is either 1, 2,
146
- or 3; default: 2.
147
-
148
- weak_cls_type: Type of weak classifier
149
- - dct: Decison tree classifier
150
- - nb: Naive Baysian classifier
151
- - lg: Logistic regression
152
- - gp: Gaussian process classifier
153
-
154
- default: dct.
155
-
156
- weak_max_depth: Max depth of the tree. Applied only when
157
- weak_cls_type="dct". Default: 10.
158
-
159
- weak_min_samples_split: The minimum number of samples required
160
- to split an internal node. Applied only when
161
- weak_cls_type="dct". Default: 100.
162
-
163
- Examples
164
- -----------
165
-
166
- >>> from sklearn import datasets
167
- >>> from sklearn.preprocessing import MinMaxScaler
168
- >>> from sklearn.model_selection import train_test_split
169
- >>> iris = datasets.load_iris()
170
- >>> X = iris.data
171
- >>> y = iris.target
172
- >>> scaler = MinMaxScaler()
173
- >>> X = scaler.fit_transform(X)
174
- >>> for i in range(len(y)):
175
- ... if y[i] == 0:
176
- ... y[i] = -1
177
- ... elif y[i] == 2:
178
- ... y[i] = 1
179
- >>> X_train, X_test, y_train, y_test = train_test_split(
180
- ... X,
181
- ... y,
182
- ... test_size=0.2,
183
- ... random_state=42,
184
- ... )
185
- >>> from eqc_models.ml.classifierqboost import QBoostClassifier
186
- >>> obj = QBoostClassifier(
187
- ... relaxation_schedule=2,
188
- ... num_samples=1,
189
- ... lambda_coef=0.0,
190
- ... )
191
- >>> from contextlib import redirect_stdout
192
- >>> import io
193
- >>> f = io.StringIO()
194
- >>> with redirect_stdout(f):
195
- ... obj = obj.fit(X_train, y_train)
196
- ... y_train_prd = obj.predict(X_train)
197
- ... y_test_prd = obj.predict(X_test)
198
- """
199
- def __init__(
200
- self,
201
- relaxation_schedule=2,
202
- num_samples=1,
203
- lambda_coef=0,
204
- weak_cls_schedule=2,
205
- weak_cls_type="lg",
206
- weak_max_depth=10,
207
- weak_min_samples_split=100,
208
- ):
209
- super(QBoostClassifier).__init__()
210
-
211
- assert weak_cls_schedule in [1, 2, 3]
212
- assert weak_cls_type in ["dct", "nb", "lg", "gp"]
213
-
214
- self.relaxation_schedule = relaxation_schedule
215
- self.num_samples = num_samples
216
- self.lambda_coef = lambda_coef
217
- self.weak_cls_schedule = weak_cls_schedule
218
- self.weak_cls_type = weak_cls_type
219
- self.weak_max_depth = weak_max_depth
220
- self.weak_min_samples_split = weak_min_samples_split
221
- self.h_list = []
222
- self.classes_ = None
223
-
224
- @timer
225
- def _build_weak_classifiers(self, X, y):
226
- n_records = X.shape[0]
227
- n_dims = X.shape[1]
228
-
229
- assert len(y) == n_records
230
-
231
- self.h_list = []
232
-
233
- for l in range(n_dims):
234
- if self.weak_cls_type == "dct":
235
- weak_classifier = WeakClassifierDct(
236
- [l],
237
- X,
238
- y,
239
- self.weak_max_depth,
240
- self.weak_min_samples_split,
241
- )
242
- elif self.weak_cls_type == "nb":
243
- weak_classifier = WeakClassifierNB([l], X, y)
244
- elif self.weak_cls_type == "lg":
245
- weak_classifier = WeakClassifierLG([l], X, y)
246
- elif self.weak_cls_type == "gp":
247
- weak_classifier = WeakClassifierGP([l], X, y)
248
-
249
- weak_classifier.train()
250
-
251
- self.h_list.append(weak_classifier)
252
-
253
- if self.weak_cls_schedule >= 2:
254
- for i in range(n_dims):
255
- for j in range(i + 1, n_dims):
256
- if self.weak_cls_type == "dct":
257
- weak_classifier = WeakClassifierDct(
258
- [i, j],
259
- X,
260
- y,
261
- self.weak_max_depth,
262
- self.weak_min_samples_split,
263
- )
264
- elif self.weak_cls_type == "nb":
265
- weak_classifier = WeakClassifierNB([i, j], X, y)
266
- elif self.weak_cls_type == "lg":
267
- weak_classifier = WeakClassifierLG([i, j], X, y)
268
- elif self.weak_cls_type == "gp":
269
- weak_classifier = WeakClassifierGP([i, j], X, y)
270
-
271
- weak_classifier.train()
272
- self.h_list.append(weak_classifier)
273
-
274
- if self.weak_cls_schedule >= 3:
275
- for i in range(n_dims):
276
- for j in range(i + 1, n_dims):
277
- for k in range(j + 1, n_dims):
278
- if self.weak_cls_type == "dct":
279
- weak_classifier = WeakClassifierDct(
280
- [i, j, k],
281
- X,
282
- y,
283
- self.weak_max_depth,
284
- self.weak_min_samples_split,
285
- )
286
- elif self.weak_cls_type == "nb":
287
- weak_classifier = WeakClassifierNB(
288
- [i, j, k], X, y
289
- )
290
- elif self.weak_cls_type == "lg":
291
- weak_classifier = WeakClassifierLG(
292
- [i, j, k], X, y
293
- )
294
- elif self.weak_cls_type == "gp":
295
- weak_classifier = WeakClassifierGP(
296
- [i, j, k], X, y
297
- )
298
- weak_classifier.train()
299
- self.h_list.append(weak_classifier)
300
-
301
- return
302
-
303
- def fit(self, X, y):
304
- """
305
- Build a QBoost classifier from the training set (X, y).
306
-
307
- Parameters
308
- ----------
309
- X : {array-like, sparse matrix} of shape (n_samples, n_features)
310
- The training input samples.
311
-
312
- y : array-like of shape (n_samples,)
313
- The target values.
314
-
315
- Returns
316
- -------
317
- Response of Dirac-3 in JSON format.
318
- """
319
-
320
- assert X.shape[0] == y.shape[0], "Inconsistent sizes!"
321
-
322
- assert set(y) == {-1, 1}, "Target values should be in {-1, 1}"
323
-
324
- self.classes_ = set(y)
325
-
326
- J, C, sum_constraint = self.get_hamiltonian(X, y)
327
-
328
- assert J.shape[0] == J.shape[1], "Inconsistent hamiltonian size!"
329
- assert J.shape[0] == C.shape[0], "Inconsistent hamiltonian size!"
330
-
331
- self.set_model(J, C, sum_constraint)
332
-
333
- sol, response = self.solve()
334
-
335
- assert len(sol) == C.shape[0], "Inconsistent solution size!"
336
-
337
- self.params = self.convert_sol_to_params(sol)
338
-
339
- assert len(self.params) == len(self.h_list), "Inconsistent size!"
340
-
341
- return response
342
-
343
- def predict_raw(self, X: np.array):
344
- """
345
- Predict raw output of the classifier for input X.
346
-
347
- Parameters
348
- ----------
349
- X : {array-like, sparse matrix} of shape (n_samples, n_features)
350
-
351
- Returns
352
- -------
353
- y : ndarray of shape (n_samples,)
354
- The predicted raw output of the classifier.
355
- """
356
-
357
- n_records = X.shape[0]
358
- n_classifiers = len(self.h_list)
359
-
360
- y = np.zeros(shape=(n_records), dtype=np.float32)
361
- h_vals = np.array(
362
- [self.h_list[i].predict(X) for i in range(n_classifiers)]
363
- )
364
-
365
- y = np.tensordot(self.params, h_vals, axes=(0, 0))
366
-
367
- return y
368
-
369
- def predict(self, X: np.array):
370
- """
371
- Predict classes for X.
372
-
373
- Parameters
374
- ----------
375
- X : {array-like, sparse matrix} of shape (n_samples, n_features)
376
-
377
- Returns
378
- -------
379
- y : ndarray of shape (n_samples,)
380
- The predicted classes.
381
- """
382
-
383
- y = self.predict_raw(X)
384
- y = np.sign(y)
385
-
386
- return y
387
-
388
- @timer
389
- def get_hamiltonian(
390
- self,
391
- X: np.array,
392
- y: np.array,
393
- ):
394
- self._build_weak_classifiers(X, y)
395
-
396
- print("Built %d weak classifiers!" % len(self.h_list))
397
-
398
- n_classifiers = len(self.h_list)
399
- n_records = X.shape[0]
400
-
401
- J = np.zeros(
402
- shape=(n_classifiers, n_classifiers), dtype=np.float32
403
- )
404
- C = np.zeros(shape=(n_classifiers,), dtype=np.float32)
405
-
406
- h_vals = np.array(
407
- [self.h_list[i].predict(X) for i in range(n_classifiers)]
408
- )
409
-
410
- for i in range(n_classifiers):
411
- for j in range(n_classifiers):
412
- J[i][j] = sum(h_vals[i] * h_vals[j])
413
- if i == j:
414
- J[i][i] += self.lambda_coef
415
-
416
- C[i] = -2.0 * sum(y * h_vals[i])
417
-
418
- C = C.reshape((n_classifiers, 1))
419
-
420
- return J, C, 1.0
421
-
422
- def convert_sol_to_params(self, sol):
423
- return np.array(sol)
@@ -1,52 +0,0 @@
1
- eqc_models-0.9.9.data/platlib/compile_extensions.py,sha256=GNbNr9Pao2NwFUr29qEGrYSHvIlagnPcUqo3pgB5Trk,660
2
- eqc_models-0.9.9.data/platlib/eqc_models/__init__.py,sha256=njh-tvfgnAIVBGw9FXFv6XQOAgwrnBG23dU9dipa1Jg,585
3
- eqc_models-0.9.9.data/platlib/eqc_models/decoding.py,sha256=G3JgbIFzvZ3DIKW0kZ1JeTMIZmrc8hy9kzdbX2Xv5Og,637
4
- eqc_models-0.9.9.data/platlib/eqc_models/algorithms/__init__.py,sha256=lzQoMMSs2QTqp5suEYNvcQaSEN16d0LwIsZ1mRstumU,135
5
- eqc_models-0.9.9.data/platlib/eqc_models/algorithms/base.py,sha256=qfQQTwuVyewn7Qpg1_SVoD_7TsdA8vdwSKGqOeZSmNI,204
6
- eqc_models-0.9.9.data/platlib/eqc_models/algorithms/penaltymultiplier.py,sha256=gV48irx3q9yvMsCRqv2fa8DGQEOUkgVNGbZdNzI-3Tc,7057
7
- eqc_models-0.9.9.data/platlib/eqc_models/allocation/__init__.py,sha256=op_udrapTlWrakTuQId3M0ggo-Y1w4nGJLPcYKOQ-8I,239
8
- eqc_models-0.9.9.data/platlib/eqc_models/allocation/allocation.py,sha256=PAQn4M75Zegeoy0i6r3hycWs4TKeRglHk05TvwZOoLk,15506
9
- eqc_models-0.9.9.data/platlib/eqc_models/allocation/portbase.py,sha256=BTnYYduHydPbrE2yQr_Sgv3XJACH_GpIJstuMrfGqCU,3269
10
- eqc_models-0.9.9.data/platlib/eqc_models/allocation/portmomentum.py,sha256=oMod63rNDC-01dLZjmhUb24SN3_GVgfc6CItgQL_obI,3756
11
- eqc_models-0.9.9.data/platlib/eqc_models/assignment/__init__.py,sha256=CX_QYl8P1meajV8gcVs6hm07VhoLVe8uu436t7-1XQo,86
12
- eqc_models-0.9.9.data/platlib/eqc_models/assignment/qap.py,sha256=WMiQQmTORsgi2w7kbmMA1xo-93dESLECWqYTF-zkmTs,2963
13
- eqc_models-0.9.9.data/platlib/eqc_models/assignment/setpartition.py,sha256=-DJjPgsSMslEjfo3iDdXbKHQ9Lfc3cHlNc-9DtkJnW0,6202
14
- eqc_models-0.9.9.data/platlib/eqc_models/base/__init__.py,sha256=RwZguuucmsuOSVqfPLBqj-wzinBOzcgO-2ifFU-DCqg,2885
15
- eqc_models-0.9.9.data/platlib/eqc_models/base/base.py,sha256=kpnOb1dw0aaQyassIYKNlS6rIH1fNvZMI-NKPosAEMk,4856
16
- eqc_models-0.9.9.data/platlib/eqc_models/base/constraints.py,sha256=KMPyCdt_8GMWLnVEdpzw1T1WqXm2f7Lh629ClUH7XDY,8271
17
- eqc_models-0.9.9.data/platlib/eqc_models/base/operators.py,sha256=9nCeN6fRP-_YBfs-Gm57D-O_376qcOQiqGDuVlSlf00,7392
18
- eqc_models-0.9.9.data/platlib/eqc_models/base/polyeval.c,sha256=pgQX0_7JsrLKEhFrjBN8wJb0hTGRh3BUL90NygNHgFk,438291
19
- eqc_models-0.9.9.data/platlib/eqc_models/base/polyeval.cpython-310-darwin.so,sha256=QT8AOraG_it1u1LzIqeU4xuYtdmc7XyUcqIb4OqnutM,101136
20
- eqc_models-0.9.9.data/platlib/eqc_models/base/polyeval.pyx,sha256=76Bf99Jt1_rLh5byrZxAjavE2F4_yCysirViqOBFIXw,2547
21
- eqc_models-0.9.9.data/platlib/eqc_models/base/polynomial.py,sha256=dlWqL-PgSzV1UX-1S-MDwEL4sp3vs3h0vdRkv4JYfLo,12981
22
- eqc_models-0.9.9.data/platlib/eqc_models/base/quadratic.py,sha256=BHZKniUvSq30pZgzguVasdO39BCEYue_wi5AIklPGS8,8062
23
- eqc_models-0.9.9.data/platlib/eqc_models/graph/__init__.py,sha256=Cpo4jb630U57J0lS_iZddE_W3v9N4ijUb7xZRIYuguo,95
24
- eqc_models-0.9.9.data/platlib/eqc_models/graph/base.py,sha256=nYZCSCzshnuJKuc25M2YXcOqOhIa1-0R9rRbtIXDr84,1888
25
- eqc_models-0.9.9.data/platlib/eqc_models/graph/hypergraph.py,sha256=ABvutT0NOdIEpUF4TjUzboE4Y_J5iUZyj6-AzKr4R28,13268
26
- eqc_models-0.9.9.data/platlib/eqc_models/graph/maxcut.py,sha256=o8xVsAwTa9jcpmsIoCQ5z7HSstVdraT8TENomdT519o,4132
27
- eqc_models-0.9.9.data/platlib/eqc_models/graph/maxkcut.py,sha256=OFZwmC3wWpIJWVHOb9wkUeka0g0bOHrwf-mx0VZvt58,5807
28
- eqc_models-0.9.9.data/platlib/eqc_models/ml/__init__.py,sha256=CLfraacr0FrD5ynxlNB6cyNy0lpbavcQT45TvkDrNvY,369
29
- eqc_models-0.9.9.data/platlib/eqc_models/ml/classifierbase.py,sha256=1yXufiUGpaiBjI2evMiwfYn-Zr-SnWwCnvtREqprtJw,2184
30
- eqc_models-0.9.9.data/platlib/eqc_models/ml/classifierqboost.py,sha256=REfAVIWDTDbshObBGoH-9QdOHVnt-OCGjh-lRNwI2HU,12350
31
- eqc_models-0.9.9.data/platlib/eqc_models/ml/classifierqsvm.py,sha256=b6TdwlghR84UoQpfUThwMwNF_wmkABbCqOn6T1uY2dA,6636
32
- eqc_models-0.9.9.data/platlib/eqc_models/ml/clustering.py,sha256=yhh6jlgwZiQVn9h2pnYBlzVTCocK7rzsEurSQxCn5FQ,9486
33
- eqc_models-0.9.9.data/platlib/eqc_models/ml/clusteringbase.py,sha256=AvQbt6jeocBAGCuAmXHKyr3wLWqYUtBDq9PbsEOSlSc,2632
34
- eqc_models-0.9.9.data/platlib/eqc_models/ml/decomposition.py,sha256=Nsnq0GmINpbGOszndgCHXqKdECNpiNiampBrHPU_Gjg,8943
35
- eqc_models-0.9.9.data/platlib/eqc_models/ml/forecast.py,sha256=fFcBxQK9ZryfEuyvlr9HXicHoZRzLFybimYYttzhI9E,7403
36
- eqc_models-0.9.9.data/platlib/eqc_models/ml/forecastbase.py,sha256=s-6nUMvtYqG07r7MmmkFVj8_QqgeGkD-HVoEEDTE2bk,3654
37
- eqc_models-0.9.9.data/platlib/eqc_models/ml/regressor.py,sha256=LA1woXCnefG0wfoOxilX1kszgCUmfNcbQgs_WZ4Ai0o,5683
38
- eqc_models-0.9.9.data/platlib/eqc_models/ml/regressorbase.py,sha256=H5E8-8pUji1oH5JRdS37LJQoHuKt2JU8eXCZp-ZaEM4,2109
39
- eqc_models-0.9.9.data/platlib/eqc_models/ml/reservoir.py,sha256=cPRvpCaWLYTBkui35jCssHcOPQgSQZallrG6Ac9djVI,2827
40
- eqc_models-0.9.9.data/platlib/eqc_models/sequence/__init__.py,sha256=VXlYufO3GYFsM00oii9Cite2WsQEF8XTwRcjLPH_Zlg,92
41
- eqc_models-0.9.9.data/platlib/eqc_models/sequence/tsp.py,sha256=YM641FTyK5NkgRGxHrU1QmMkEU0gf77nEmIElTqa6Qw,7680
42
- eqc_models-0.9.9.data/platlib/eqc_models/solvers/__init__.py,sha256=hTjJI4F0FNDgQlK_oRHJxLIkg6of3I1-nEqU_3RL4Gk,542
43
- eqc_models-0.9.9.data/platlib/eqc_models/solvers/qciclient.py,sha256=Vnfqa1N6JSzigb-mbqXj6g0r-1wOkeYzmEmctId1VCo,26975
44
- eqc_models-0.9.9.data/platlib/eqc_models/utilities/__init__.py,sha256=SI2U7JKmPWSiq-F1WcSyfd7l9V6nbOZv_p8quMAZaT0,340
45
- eqc_models-0.9.9.data/platlib/eqc_models/utilities/fileio.py,sha256=alWPTfjGFx6Iio9HZAAWtYcLmZsBBifg6S6_YbFMQhk,1088
46
- eqc_models-0.9.9.data/platlib/eqc_models/utilities/polynomial.py,sha256=WoEBUAyiYBjwPvFWEjsynfmiBsbNqveKDZjXqiNQ6dk,4283
47
- eqc_models-0.9.9.data/platlib/eqc_models/utilities/qplib.py,sha256=Do-MjmCFdI5HyDOAjfoz4_5lugySLMBlMAWDLUWx2OA,15796
48
- eqc_models-0.9.9.dist-info/LICENSE.txt,sha256=8eh0oqsNNVR1Jk-13gkqRRSo2axtUU5kp2KzH4f9u3U,11354
49
- eqc_models-0.9.9.dist-info/METADATA,sha256=5wKP-BI_1v8byksYXgQhrgD8KeB6we9P4SC6ereXb_8,7071
50
- eqc_models-0.9.9.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
51
- eqc_models-0.9.9.dist-info/top_level.txt,sha256=9ZfFeKNEvkRlKWoUnfcZ9TzmTdgdsuPEnTPy11Hqf4Q,30
52
- eqc_models-0.9.9.dist-info/RECORD,,