CUQIpy 1.4.0.post0.dev61__py3-none-any.whl → 1.4.0.post0.dev92__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.
- cuqi/__init__.py +1 -0
- cuqi/_version.py +3 -3
- cuqi/algebra/__init__.py +2 -0
- cuqi/{experimental/algebra/_randomvariable.py → algebra/_random_variable.py} +4 -4
- cuqi/distribution/_distribution.py +1 -1
- cuqi/distribution/_joint_distribution.py +3 -3
- cuqi/experimental/__init__.py +0 -2
- cuqi/geometry/__init__.py +2 -0
- cuqi/{experimental/geometry/_productgeometry.py → geometry/_product_geometry.py} +1 -1
- cuqi/model/_model.py +16 -16
- cuqi/sampler/_gibbs.py +14 -7
- cuqi/sampler/_pcn.py +10 -3
- cuqi/sampler/_sampler.py +2 -2
- {cuqipy-1.4.0.post0.dev61.dist-info → cuqipy-1.4.0.post0.dev92.dist-info}/METADATA +1 -1
- {cuqipy-1.4.0.post0.dev61.dist-info → cuqipy-1.4.0.post0.dev92.dist-info}/RECORD +20 -21
- cuqi/experimental/algebra/__init__.py +0 -2
- cuqi/experimental/geometry/__init__.py +0 -1
- /cuqi/{experimental/algebra/_ast.py → algebra/_abstract_syntax_tree.py} +0 -0
- /cuqi/{experimental/algebra/_orderedset.py → algebra/_ordered_set.py} +0 -0
- {cuqipy-1.4.0.post0.dev61.dist-info → cuqipy-1.4.0.post0.dev92.dist-info}/WHEEL +0 -0
- {cuqipy-1.4.0.post0.dev61.dist-info → cuqipy-1.4.0.post0.dev92.dist-info}/licenses/LICENSE +0 -0
- {cuqipy-1.4.0.post0.dev61.dist-info → cuqipy-1.4.0.post0.dev92.dist-info}/top_level.txt +0 -0
cuqi/__init__.py
CHANGED
cuqi/_version.py
CHANGED
|
@@ -8,11 +8,11 @@ import json
|
|
|
8
8
|
|
|
9
9
|
version_json = '''
|
|
10
10
|
{
|
|
11
|
-
"date": "2025-11-
|
|
11
|
+
"date": "2025-11-24T16:04:21+0100",
|
|
12
12
|
"dirty": false,
|
|
13
13
|
"error": null,
|
|
14
|
-
"full-revisionid": "
|
|
15
|
-
"version": "1.4.0.post0.
|
|
14
|
+
"full-revisionid": "d6622bf24d4986794de75feebd950e695d1da212",
|
|
15
|
+
"version": "1.4.0.post0.dev92"
|
|
16
16
|
}
|
|
17
17
|
''' # END VERSION_JSON
|
|
18
18
|
|
cuqi/algebra/__init__.py
ADDED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
from typing import List, Any, Union
|
|
3
|
-
from .
|
|
4
|
-
from .
|
|
3
|
+
from ._abstract_syntax_tree import VariableNode, Node
|
|
4
|
+
from ._ordered_set import _OrderedSet
|
|
5
5
|
import operator
|
|
6
6
|
import cuqi
|
|
7
7
|
from cuqi.distribution import Distribution
|
|
@@ -58,7 +58,7 @@ class RandomVariable:
|
|
|
58
58
|
|
|
59
59
|
from cuqi.testproblem import Deconvolution1D
|
|
60
60
|
from cuqi.distribution import Gaussian, Gamma, GMRF
|
|
61
|
-
from cuqi.
|
|
61
|
+
from cuqi.algebra import RandomVariable
|
|
62
62
|
from cuqi.problem import BayesianProblem
|
|
63
63
|
|
|
64
64
|
import numpy as np
|
|
@@ -79,7 +79,7 @@ class RandomVariable:
|
|
|
79
79
|
.. code-block:: python
|
|
80
80
|
|
|
81
81
|
from cuqi.distribution import Gaussian, Gamma
|
|
82
|
-
from cuqi.
|
|
82
|
+
from cuqi.algebra import RandomVariable, VariableNode
|
|
83
83
|
|
|
84
84
|
# Define the variables
|
|
85
85
|
x = VariableNode('x')
|
|
@@ -419,5 +419,5 @@ class Distribution(Density, ABC):
|
|
|
419
419
|
@property
|
|
420
420
|
def rv(self):
|
|
421
421
|
""" Return a random variable object representing the distribution. """
|
|
422
|
-
from cuqi.
|
|
422
|
+
from cuqi.algebra import RandomVariable
|
|
423
423
|
return RandomVariable(self)
|
|
@@ -62,16 +62,16 @@ class JointDistribution:
|
|
|
62
62
|
posterior = joint(y=y_obs)
|
|
63
63
|
|
|
64
64
|
"""
|
|
65
|
-
def __init__(self, *densities: [Density, cuqi.
|
|
65
|
+
def __init__(self, *densities: [Density, cuqi.algebra.RandomVariable]):
|
|
66
66
|
""" Create a joint distribution from the given densities. """
|
|
67
67
|
|
|
68
68
|
# Check if all RandomVariables are simple (not-transformed)
|
|
69
69
|
for density in densities:
|
|
70
|
-
if isinstance(density, cuqi.
|
|
70
|
+
if isinstance(density, cuqi.algebra.RandomVariable) and density.is_transformed:
|
|
71
71
|
raise ValueError(f"To be used in {self.__class__.__name__}, all RandomVariables must be untransformed.")
|
|
72
72
|
|
|
73
73
|
# Convert potential random variables to their underlying distribution
|
|
74
|
-
densities = [density.distribution if isinstance(density, cuqi.
|
|
74
|
+
densities = [density.distribution if isinstance(density, cuqi.algebra.RandomVariable) else density for density in densities]
|
|
75
75
|
|
|
76
76
|
# Ensure all densities have unique names
|
|
77
77
|
names = [density.name for density in densities]
|
cuqi/experimental/__init__.py
CHANGED
cuqi/geometry/__init__.py
CHANGED
|
@@ -16,6 +16,8 @@ from ._geometry import (
|
|
|
16
16
|
StepExpansion
|
|
17
17
|
)
|
|
18
18
|
|
|
19
|
+
from ._product_geometry import _ProductGeometry
|
|
20
|
+
|
|
19
21
|
|
|
20
22
|
# TODO: We will remove the use of identity geometries in the future
|
|
21
23
|
_identity_geometries = [_DefaultGeometry1D, _DefaultGeometry2D, Continuous1D, Continuous2D, Discrete, Image2D]
|
|
@@ -17,7 +17,7 @@ class _ProductGeometry(Geometry):
|
|
|
17
17
|
.. code-block:: python
|
|
18
18
|
import numpy as np
|
|
19
19
|
from cuqi.geometry import Continuous1D, Discrete
|
|
20
|
-
from cuqi.
|
|
20
|
+
from cuqi.geometry import _ProductGeometry
|
|
21
21
|
geometry1 = Continuous1D(np.linspace(0, 1, 100))
|
|
22
22
|
geometry2 = Discrete(["sound_speed"])
|
|
23
23
|
product_geometry = _ProductGeometry(geometry1, geometry2)
|
cuqi/model/_model.py
CHANGED
|
@@ -229,7 +229,7 @@ class Model(object):
|
|
|
229
229
|
self._domain_geometry = self._create_default_geometry(value)
|
|
230
230
|
elif isinstance(value, tuple) and self.number_of_inputs > 1:
|
|
231
231
|
geometries = [item if isinstance(item, Geometry) else self._create_default_geometry(item) for item in value]
|
|
232
|
-
self._domain_geometry = cuqi.
|
|
232
|
+
self._domain_geometry = cuqi.geometry._ProductGeometry(*geometries)
|
|
233
233
|
elif value is None:
|
|
234
234
|
raise AttributeError(
|
|
235
235
|
"The parameter 'domain_geometry' is not specified by the user and it cannot be inferred from the attribute 'forward'."
|
|
@@ -273,7 +273,7 @@ class Model(object):
|
|
|
273
273
|
consistent with the forward operator."""
|
|
274
274
|
if (
|
|
275
275
|
not isinstance(
|
|
276
|
-
self.domain_geometry, cuqi.
|
|
276
|
+
self.domain_geometry, cuqi.geometry._ProductGeometry
|
|
277
277
|
)
|
|
278
278
|
and self.number_of_inputs > 1
|
|
279
279
|
):
|
|
@@ -448,13 +448,13 @@ class Model(object):
|
|
|
448
448
|
# If len of kwargs is larger than 1, the geometry needs to be of type
|
|
449
449
|
# _ProductGeometry
|
|
450
450
|
if (
|
|
451
|
-
not isinstance(geometry, cuqi.
|
|
451
|
+
not isinstance(geometry, cuqi.geometry._ProductGeometry)
|
|
452
452
|
and len(kwargs) > 1
|
|
453
453
|
):
|
|
454
454
|
raise ValueError(
|
|
455
455
|
"The input is specified by more than one argument. This is only "
|
|
456
456
|
+ "supported for domain geometry of type "
|
|
457
|
-
+ f"{cuqi.
|
|
457
|
+
+ f"{cuqi.geometry._ProductGeometry.__name__}."
|
|
458
458
|
)
|
|
459
459
|
|
|
460
460
|
# If is_par is bool, make it a tuple of bools of the same length as
|
|
@@ -464,7 +464,7 @@ class Model(object):
|
|
|
464
464
|
# Set up geometries list
|
|
465
465
|
geometries = (
|
|
466
466
|
geometry.geometries
|
|
467
|
-
if isinstance(geometry, cuqi.
|
|
467
|
+
if isinstance(geometry, cuqi.geometry._ProductGeometry)
|
|
468
468
|
else [geometry]
|
|
469
469
|
)
|
|
470
470
|
|
|
@@ -691,7 +691,7 @@ class Model(object):
|
|
|
691
691
|
is_par and
|
|
692
692
|
len(args) == 1 and
|
|
693
693
|
args[0].shape == (self.domain_dim,) and
|
|
694
|
-
isinstance(self.domain_geometry, cuqi.
|
|
694
|
+
isinstance(self.domain_geometry, cuqi.geometry._ProductGeometry)):
|
|
695
695
|
# Split the stacked input
|
|
696
696
|
split_args = np.split(args[0], self.domain_geometry.stacked_par_split_indices)
|
|
697
697
|
# Convert split args to CUQIarray if input is CUQIarray
|
|
@@ -757,7 +757,7 @@ class Model(object):
|
|
|
757
757
|
return self._handle_case_when_model_input_is_distributions(kwargs)
|
|
758
758
|
|
|
759
759
|
# If input is a random variable, we handle it separately
|
|
760
|
-
elif all(isinstance(x, cuqi.
|
|
760
|
+
elif all(isinstance(x, cuqi.algebra.RandomVariable)
|
|
761
761
|
for x in kwargs.values()):
|
|
762
762
|
if partial_arguments:
|
|
763
763
|
raise ValueError(
|
|
@@ -769,7 +769,7 @@ class Model(object):
|
|
|
769
769
|
# We use NotImplemented to indicate that the operation is not supported from the Model class
|
|
770
770
|
# in case of operations such as "@" that can be interpreted as both __matmul__ and __rmatmul__
|
|
771
771
|
# the operation may be delegated to the Node class.
|
|
772
|
-
elif any(isinstance(args_i, cuqi.
|
|
772
|
+
elif any(isinstance(args_i, cuqi.algebra.Node) for args_i in args):
|
|
773
773
|
return NotImplemented
|
|
774
774
|
|
|
775
775
|
# if input is partial, we create a new model with the partial input
|
|
@@ -803,7 +803,7 @@ class Model(object):
|
|
|
803
803
|
if len(distributions) == 1:
|
|
804
804
|
return list(distributions)[0].dim == self.domain_dim
|
|
805
805
|
elif len(distributions) > 1 and isinstance(
|
|
806
|
-
self.domain_geometry, cuqi.
|
|
806
|
+
self.domain_geometry, cuqi.geometry._ProductGeometry
|
|
807
807
|
):
|
|
808
808
|
return all(
|
|
809
809
|
d.dim == self.domain_geometry.par_dim_list[i]
|
|
@@ -851,7 +851,7 @@ class Model(object):
|
|
|
851
851
|
# Create a partial domain geometry with the geometries corresponding
|
|
852
852
|
# to the non-default arguments that are not in kwargs (remaining
|
|
853
853
|
# unspecified inputs)
|
|
854
|
-
partial_domain_geometry = cuqi.
|
|
854
|
+
partial_domain_geometry = cuqi.geometry._ProductGeometry(
|
|
855
855
|
*[
|
|
856
856
|
self.domain_geometry.geometries[i]
|
|
857
857
|
for i in range(self.number_of_inputs)
|
|
@@ -864,7 +864,7 @@ class Model(object):
|
|
|
864
864
|
|
|
865
865
|
# Create a domain geometry with the geometries corresponding to the
|
|
866
866
|
# non-default arguments that are specified
|
|
867
|
-
substituted_domain_geometry = cuqi.
|
|
867
|
+
substituted_domain_geometry = cuqi.geometry._ProductGeometry(
|
|
868
868
|
*[
|
|
869
869
|
self.domain_geometry.geometries[i]
|
|
870
870
|
for i in range(self.number_of_inputs)
|
|
@@ -967,7 +967,7 @@ class Model(object):
|
|
|
967
967
|
def _handle_case_when_model_input_is_random_variables(self, kwargs):
|
|
968
968
|
""" Private function that handles the case of the input being a random variable. """
|
|
969
969
|
# If random variable is not a leaf-type node (e.g. internal node) we return NotImplemented
|
|
970
|
-
if any(not isinstance(x.tree, cuqi.
|
|
970
|
+
if any(not isinstance(x.tree, cuqi.algebra.VariableNode) for x in kwargs.values()):
|
|
971
971
|
return NotImplemented
|
|
972
972
|
|
|
973
973
|
# Extract the random variable distributions and check dimensions consistency with domain geometry
|
|
@@ -1157,7 +1157,7 @@ class Model(object):
|
|
|
1157
1157
|
domain_geometries = (
|
|
1158
1158
|
self.domain_geometry.geometries
|
|
1159
1159
|
if isinstance(
|
|
1160
|
-
self.domain_geometry, cuqi.
|
|
1160
|
+
self.domain_geometry, cuqi.geometry._ProductGeometry
|
|
1161
1161
|
)
|
|
1162
1162
|
else [self.domain_geometry]
|
|
1163
1163
|
)
|
|
@@ -1185,7 +1185,7 @@ class Model(object):
|
|
|
1185
1185
|
# Create list of domain geometries
|
|
1186
1186
|
geometries = (
|
|
1187
1187
|
self.domain_geometry.geometries
|
|
1188
|
-
if isinstance(self.domain_geometry, cuqi.
|
|
1188
|
+
if isinstance(self.domain_geometry, cuqi.geometry._ProductGeometry)
|
|
1189
1189
|
else [self.domain_geometry]
|
|
1190
1190
|
)
|
|
1191
1191
|
|
|
@@ -1197,7 +1197,7 @@ class Model(object):
|
|
|
1197
1197
|
# stacked, split it
|
|
1198
1198
|
if (
|
|
1199
1199
|
isinstance(
|
|
1200
|
-
self.domain_geometry, cuqi.
|
|
1200
|
+
self.domain_geometry, cuqi.geometry._ProductGeometry
|
|
1201
1201
|
)
|
|
1202
1202
|
and not isinstance(grad, (list, tuple))
|
|
1203
1203
|
and isinstance(grad, np.ndarray)
|
|
@@ -1206,7 +1206,7 @@ class Model(object):
|
|
|
1206
1206
|
|
|
1207
1207
|
# If the domain geometry is not a _ProductGeometry, turn grad into a
|
|
1208
1208
|
# list of length 1, so that we can iterate over it
|
|
1209
|
-
if not isinstance(self.domain_geometry, cuqi.
|
|
1209
|
+
if not isinstance(self.domain_geometry, cuqi.geometry._ProductGeometry):
|
|
1210
1210
|
grad = [grad]
|
|
1211
1211
|
|
|
1212
1212
|
# apply the gradient of each geometry component
|
cuqi/sampler/_gibbs.py
CHANGED
|
@@ -180,33 +180,39 @@ class HybridGibbs:
|
|
|
180
180
|
for sampler in self.samplers.values():
|
|
181
181
|
sampler.validate_target()
|
|
182
182
|
|
|
183
|
-
def sample(self, Ns) -> 'HybridGibbs':
|
|
183
|
+
def sample(self, Ns, Nt=1) -> 'HybridGibbs':
|
|
184
184
|
""" Sample from the joint distribution using Gibbs sampling
|
|
185
185
|
|
|
186
186
|
Parameters
|
|
187
187
|
----------
|
|
188
188
|
Ns : int
|
|
189
189
|
The number of samples to draw.
|
|
190
|
-
|
|
190
|
+
Nt : int, optional, default=1
|
|
191
|
+
The thinning interval. If Nt >= 1, every Nt'th sample is stored. The larger Nt, the fewer samples are stored.
|
|
192
|
+
|
|
191
193
|
"""
|
|
192
194
|
for idx in tqdm(range(Ns), "Sample: "):
|
|
193
195
|
|
|
194
196
|
self.step()
|
|
195
197
|
|
|
196
|
-
|
|
198
|
+
if (Nt > 0) and (idx % Nt == 0):
|
|
199
|
+
self._store_samples()
|
|
197
200
|
|
|
198
201
|
# Call callback function if specified
|
|
199
202
|
self._call_callback(idx, Ns)
|
|
200
203
|
|
|
201
204
|
return self
|
|
202
205
|
|
|
203
|
-
def warmup(self, Nb, tune_freq=0.1) -> 'HybridGibbs':
|
|
206
|
+
def warmup(self, Nb, Nt=1, tune_freq=0.1) -> 'HybridGibbs':
|
|
204
207
|
""" Warmup (tune) the samplers in the Gibbs sampling scheme
|
|
205
208
|
|
|
206
209
|
Parameters
|
|
207
210
|
----------
|
|
208
211
|
Nb : int
|
|
209
212
|
The number of samples to draw during warmup.
|
|
213
|
+
|
|
214
|
+
Nt : int, optional, default=1
|
|
215
|
+
The thinning interval. If Nt >= 1, every Nt'th sample is stored. The larger Nt, the fewer samples are stored.
|
|
210
216
|
|
|
211
217
|
tune_freq : float, optional
|
|
212
218
|
Frequency of tuning the samplers. Tuning is performed every tune_freq*Nb steps.
|
|
@@ -221,9 +227,10 @@ class HybridGibbs:
|
|
|
221
227
|
|
|
222
228
|
# Tune the sampler at tuning intervals (matching behavior of Sampler class)
|
|
223
229
|
if (idx + 1) % tune_interval == 0:
|
|
224
|
-
self.tune(tune_interval, idx // tune_interval)
|
|
225
|
-
|
|
226
|
-
|
|
230
|
+
self.tune(tune_interval, idx // tune_interval)
|
|
231
|
+
|
|
232
|
+
if (Nt > 0) and (idx % Nt == 0):
|
|
233
|
+
self._store_samples()
|
|
227
234
|
|
|
228
235
|
# Call callback function if specified
|
|
229
236
|
self._call_callback(idx, Nb)
|
cuqi/sampler/_pcn.py
CHANGED
|
@@ -24,7 +24,14 @@ class PCN(Sampler): # Refactor to Proposal-based sampler?
|
|
|
24
24
|
def validate_target(self):
|
|
25
25
|
if not isinstance(self.target, cuqi.distribution.Posterior):
|
|
26
26
|
raise ValueError(f"To initialize an object of type {self.__class__}, 'target' need to be of type 'cuqi.distribution.Posterior'.")
|
|
27
|
-
if not isinstance(
|
|
27
|
+
if not isinstance(
|
|
28
|
+
self.prior,
|
|
29
|
+
(
|
|
30
|
+
cuqi.distribution.Gaussian,
|
|
31
|
+
cuqi.distribution.Normal,
|
|
32
|
+
cuqi.distribution.GMRF,
|
|
33
|
+
),
|
|
34
|
+
):
|
|
28
35
|
raise ValueError("The prior distribution of the target need to be Gaussian")
|
|
29
36
|
|
|
30
37
|
def step(self):
|
|
@@ -46,7 +53,7 @@ class PCN(Sampler): # Refactor to Proposal-based sampler?
|
|
|
46
53
|
self.current_point = x_star
|
|
47
54
|
self.current_likelihood_logd = loglike_eval_star
|
|
48
55
|
acc = 1
|
|
49
|
-
|
|
56
|
+
|
|
50
57
|
return acc
|
|
51
58
|
|
|
52
59
|
@property
|
|
@@ -56,7 +63,7 @@ class PCN(Sampler): # Refactor to Proposal-based sampler?
|
|
|
56
63
|
@property
|
|
57
64
|
def likelihood(self):
|
|
58
65
|
return self.target.likelihood
|
|
59
|
-
|
|
66
|
+
|
|
60
67
|
def _loglikelihood(self, x):
|
|
61
68
|
return self.likelihood.logd(x)
|
|
62
69
|
|
cuqi/sampler/_sampler.py
CHANGED
|
@@ -236,7 +236,7 @@ class Sampler(ABC):
|
|
|
236
236
|
|
|
237
237
|
# Store samples
|
|
238
238
|
self._acc.append(acc)
|
|
239
|
-
if (Nt > 0) and (
|
|
239
|
+
if (Nt > 0) and (idx % Nt == 0):
|
|
240
240
|
self._samples.append(self.current_point)
|
|
241
241
|
|
|
242
242
|
# display acc rate at progress bar
|
|
@@ -285,7 +285,7 @@ class Sampler(ABC):
|
|
|
285
285
|
|
|
286
286
|
# Store samples
|
|
287
287
|
self._acc.append(acc)
|
|
288
|
-
if (Nt > 0) and (
|
|
288
|
+
if (Nt > 0) and (idx % Nt == 0):
|
|
289
289
|
self._samples.append(self.current_point)
|
|
290
290
|
|
|
291
291
|
# display acc rate at progress bar
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: CUQIpy
|
|
3
|
-
Version: 1.4.0.post0.
|
|
3
|
+
Version: 1.4.0.post0.dev92
|
|
4
4
|
Summary: Computational Uncertainty Quantification for Inverse problems in Python
|
|
5
5
|
Maintainer-email: "Nicolai A. B. Riis" <nabr@dtu.dk>, "Jakob S. Jørgensen" <jakj@dtu.dk>, "Amal M. Alghamdi" <amaal@dtu.dk>, Chao Zhang <chaz@dtu.dk>
|
|
6
6
|
License: Apache License
|
|
@@ -1,8 +1,12 @@
|
|
|
1
|
-
cuqi/__init__.py,sha256=
|
|
1
|
+
cuqi/__init__.py,sha256=gs3F4QTPPvZe1sGbPcHn9U4eIyYJHXCJuwK4-eLe0qs,531
|
|
2
2
|
cuqi/_messages.py,sha256=fzEBrZT2kbmfecBBPm7spVu7yHdxGARQB4QzXhJbCJ0,415
|
|
3
|
-
cuqi/_version.py,sha256=
|
|
3
|
+
cuqi/_version.py,sha256=THAxuqXPxO5VvVxshGbGP7u9M3U8CCa9aQarrDWeJDw,509
|
|
4
4
|
cuqi/config.py,sha256=wcYvz19wkeKW2EKCGIKJiTpWt5kdaxyt4imyRkvtTRA,526
|
|
5
5
|
cuqi/diagnostics.py,sha256=5OrbJeqpynqRXOe5MtOKKhe7EAVdOEpHIqHnlMW9G_c,3029
|
|
6
|
+
cuqi/algebra/__init__.py,sha256=2uWq2_H1XpXg1TLheTzLL3ySG5tFiNQkZCd9TcZeaEI,99
|
|
7
|
+
cuqi/algebra/_abstract_syntax_tree.py,sha256=PdPz19cJMjvnMx4KEzhn4gvxIZX_UViE33Mbttj_5Xw,9873
|
|
8
|
+
cuqi/algebra/_ordered_set.py,sha256=fKysh4pmI4xF7Y5Z6O86ABzg20o4uBs-v8jmLBMrdpo,2849
|
|
9
|
+
cuqi/algebra/_random_variable.py,sha256=owEkaiF1lD0UUGLS9BOTsLKxL98NRTtmNnyVd9J0Y94,19717
|
|
6
10
|
cuqi/array/__init__.py,sha256=-EeiaiWGNsE3twRS4dD814BIlfxEsNkTCZUc5gjOXb0,30
|
|
7
11
|
cuqi/array/_array.py,sha256=UJoWyQjDpl8g2q4wuuz_ufpr2JoYL0BbCxrxZpZR99I,4303
|
|
8
12
|
cuqi/data/__init__.py,sha256=1aGgPmtG_Kqbb880vLnPksGvyYQB_6o2mz_q-4KGYaU,173
|
|
@@ -19,12 +23,12 @@ cuqi/distribution/_beta.py,sha256=QlibnuHNcvWjl-du5aRc9QuzS3n4PsyD_8Nc47w-E0Q,29
|
|
|
19
23
|
cuqi/distribution/_cauchy.py,sha256=Qwi21WkwUBnBkLbhR-yCGO0tQ_U_3mmvR0pDMPPPB5c,3296
|
|
20
24
|
cuqi/distribution/_cmrf.py,sha256=tCbEulM_O7FB3C_W-3IqZp9zGHkTofCdFF0ybHc9UZI,3745
|
|
21
25
|
cuqi/distribution/_custom.py,sha256=11lnAG7CS15bpV6JOOP--2YyKnAduvXY1IjAOJ1tqO0,10504
|
|
22
|
-
cuqi/distribution/_distribution.py,sha256=
|
|
26
|
+
cuqi/distribution/_distribution.py,sha256=ZT8k0J-DNoEptdVBbsTYHBBd17V-6DfCBwo1BatC_0Y,18277
|
|
23
27
|
cuqi/distribution/_gamma.py,sha256=VcvBJS51N-MxuX42r9L2j2QYRlzhdgAtQ6Wa5IFO_YE,3536
|
|
24
28
|
cuqi/distribution/_gaussian.py,sha256=3L1L_3W6i6YuPQ8vnFmju5QsvkLlg4VsgCnj11lYBUE,32977
|
|
25
29
|
cuqi/distribution/_gmrf.py,sha256=OwId8qQWEtmC2fxVhL4iBHZnc8ZCrZzfV6yGXDE3k30,9522
|
|
26
30
|
cuqi/distribution/_inverse_gamma.py,sha256=oPJuiYp3O1m547pmmIz9OWesky9YpwLTHT7-9MmcYss,3159
|
|
27
|
-
cuqi/distribution/_joint_distribution.py,sha256=
|
|
31
|
+
cuqi/distribution/_joint_distribution.py,sha256=WoiaaZ_4nLFJaKUy-Ks5U0ED4DGb3BCKChcuCqJPCgU,20357
|
|
28
32
|
cuqi/distribution/_laplace.py,sha256=5exLvlzJm2AgfvZ3KUSkjfwlGwwbsktBxP8z0iLMik8,1401
|
|
29
33
|
cuqi/distribution/_lmrf.py,sha256=rdGoQ-fPe1oW6Z29P-l3woq0NX3_RxUQ2rzm1VzemNM,3290
|
|
30
34
|
cuqi/distribution/_lognormal.py,sha256=8_hOFQ3iu88ujX8vxmfVEZ0fdmlhTY98PlG5PasPjEg,2612
|
|
@@ -34,16 +38,11 @@ cuqi/distribution/_posterior.py,sha256=6LxXAIBzFxyEqx5bUfgqTXVKgXxqNhRItec6FcRVL
|
|
|
34
38
|
cuqi/distribution/_smoothed_laplace.py,sha256=p-1Y23mYA9omwiHGkEuv3T2mwcPAAoNlCr7T8osNkjE,2925
|
|
35
39
|
cuqi/distribution/_truncated_normal.py,sha256=_ez3MmO6qpBeP6BKCUlW3IgxuF7k--A7jPGPUhtYK0g,4240
|
|
36
40
|
cuqi/distribution/_uniform.py,sha256=fVgj_4SBav8JMc1pNAO1l_CZ9ZwdoMIpN9iQ3i9_Z0Q,3255
|
|
37
|
-
cuqi/experimental/__init__.py,sha256=
|
|
41
|
+
cuqi/experimental/__init__.py,sha256=OZ4WHvYNiQWGdRikzSDhDZcajr9ib35NblQpIOHnQCg,109
|
|
38
42
|
cuqi/experimental/_recommender.py,sha256=ulW69nDGwkB8X93OMgMVLcVz2L0T3SZqHKG7jZ9wNm8,7907
|
|
39
|
-
cuqi/
|
|
40
|
-
cuqi/experimental/algebra/_ast.py,sha256=PdPz19cJMjvnMx4KEzhn4gvxIZX_UViE33Mbttj_5Xw,9873
|
|
41
|
-
cuqi/experimental/algebra/_orderedset.py,sha256=fKysh4pmI4xF7Y5Z6O86ABzg20o4uBs-v8jmLBMrdpo,2849
|
|
42
|
-
cuqi/experimental/algebra/_randomvariable.py,sha256=isbFtIWsWXF-yF5Vb56nLy4MCkQM6akjd-dQau4wfbE,19725
|
|
43
|
-
cuqi/experimental/geometry/__init__.py,sha256=kgoKegfz3Jhr7fpORB_l55z9zLZRtloTLyXFDh1oF2o,47
|
|
44
|
-
cuqi/experimental/geometry/_productgeometry.py,sha256=IlBmmKsWE-aRZHp6no9gUXGRfkHlgM0CdPBx1hax9HI,7199
|
|
45
|
-
cuqi/geometry/__init__.py,sha256=Tz1WGzZBY-QGH3c0GiyKm9XHN8MGGcnU6TUHLZkzB3o,842
|
|
43
|
+
cuqi/geometry/__init__.py,sha256=1BcuUHP5tNzfsTLz1qB0WACRIVJU3AtdgfEqgI89oo8,891
|
|
46
44
|
cuqi/geometry/_geometry.py,sha256=W-oQTZPelVS7fN9qZj6bNBuh-yY0eqOHJ39UwB-WmQY,47562
|
|
45
|
+
cuqi/geometry/_product_geometry.py,sha256=tdFUrQzoKPtqbd5aLxXP3DMOkBNrM9B-DTUQPNBxgFE,7186
|
|
47
46
|
cuqi/implicitprior/__init__.py,sha256=6Fl4Lmld8ikg9sW9tReKRGTCJC6_WCTExHaYuIv34nM,323
|
|
48
47
|
cuqi/implicitprior/_regularizedGMRF.py,sha256=BUeT4rwJzary9K56fkxCNGCeKZd-2VSgOT8XNHxFPRE,6345
|
|
49
48
|
cuqi/implicitprior/_regularizedGaussian.py,sha256=9BSKHGEW0OT9OIt_42strDzxBM8mB6A-blcf0kEguHw,21836
|
|
@@ -65,7 +64,7 @@ cuqi/legacy/sampler/_sampler.py,sha256=hw5BNhnFkERGtdvZ4Gd_QQZYshNiU_Jx-Yl1--x5H
|
|
|
65
64
|
cuqi/likelihood/__init__.py,sha256=QXif382iwZ5bT3ZUqmMs_n70JVbbjxbqMrlQYbMn4Zo,1776
|
|
66
65
|
cuqi/likelihood/_likelihood.py,sha256=I12qQF3h_Z8jj7zb_AYD-SEUn34VCU7VxcTcH25Axao,7074
|
|
67
66
|
cuqi/model/__init__.py,sha256=jgY2-jyxEMC79vkyH9BpfowW7_DbMRjqedOtO5fykXQ,62
|
|
68
|
-
cuqi/model/_model.py,sha256=
|
|
67
|
+
cuqi/model/_model.py,sha256=SWGCzZ2-rmosngulNOofgyMC1K3-WmDH3_Ws3qs8Pmg,74912
|
|
69
68
|
cuqi/operator/__init__.py,sha256=0pc9p-KPyl7KtPV0noB0ddI0CP2iYEHw5rbw49D8Njk,136
|
|
70
69
|
cuqi/operator/_operator.py,sha256=yNwPTh7jR07AiKMbMQQ5_54EgirlKFsbq9JN1EODaQI,8856
|
|
71
70
|
cuqi/pde/__init__.py,sha256=pExaUnEvdNtgL9sQachcKkbDilE87rRiUTKk4hd2zSM,158
|
|
@@ -78,14 +77,14 @@ cuqi/sampler/_conjugate.py,sha256=QeQI-ZH4OK_wIIygWLM7dNkH0TSVixdb-VUBFc2prw4,22
|
|
|
78
77
|
cuqi/sampler/_conjugate_approx.py,sha256=LXPykdG-2KKCCIsxeu4G4Iu6BcAtujtAVOJTGV_aRbc,3525
|
|
79
78
|
cuqi/sampler/_cwmh.py,sha256=0CVKuFuD5-99ipXF-EQ5T5RpYORWriugzttNu6xM7Ik,7320
|
|
80
79
|
cuqi/sampler/_direct.py,sha256=tyVoC9lOGrdR4T0bQUlRewC8uDaenIV61Jk3NEttVVw,767
|
|
81
|
-
cuqi/sampler/_gibbs.py,sha256=
|
|
80
|
+
cuqi/sampler/_gibbs.py,sha256=8V5yBEmBsjiUTVKPTd8nT94AJ4hMraI6LitDDqv7Nrg,14405
|
|
82
81
|
cuqi/sampler/_hmc.py,sha256=yQ0mq51sRMLICRXIdDZLNzlJLt-03OecDOsMkADb-sI,19462
|
|
83
82
|
cuqi/sampler/_langevin_algorithm.py,sha256=2FubHq6p5MruHx8hwLRQXHoHqf5POO4JR6UAkBWV6r4,15029
|
|
84
83
|
cuqi/sampler/_laplace_approximation.py,sha256=tfsfbHhMA_q0pcNF5X8SYT6bWWzY5BSC-hKKRdSaGUI,5906
|
|
85
84
|
cuqi/sampler/_mh.py,sha256=WsVmpvkhvYuFoUvXevOYibIwmhvaKY4YXrkEsF_5YvY,2931
|
|
86
|
-
cuqi/sampler/_pcn.py,sha256=
|
|
85
|
+
cuqi/sampler/_pcn.py,sha256=C8JzklKRXrF-XjEGjyMJ12gZS1ufxQwkTOvhcXlHdZc,3470
|
|
87
86
|
cuqi/sampler/_rto.py,sha256=AQFi8Kqa3uQZsZxdpPb2B9Is_lyfz1v8l9JAY3e4J2w,17186
|
|
88
|
-
cuqi/sampler/_sampler.py,sha256=
|
|
87
|
+
cuqi/sampler/_sampler.py,sha256=rwlaidODyOcG3RQIOaFkPwk0aLZAXdw-3xA35izNgqQ,21022
|
|
89
88
|
cuqi/samples/__init__.py,sha256=vCs6lVk-pi8RBqa6cIN5wyn6u-K9oEf1Na4k1ZMrYv8,44
|
|
90
89
|
cuqi/samples/_samples.py,sha256=hUc8OnCF9CTCuDTrGHwwzv3wp8mG_6vsJAFvuQ-x0uA,35832
|
|
91
90
|
cuqi/solver/__init__.py,sha256=KYgAi_8VoAwljTB3S2I87YnJkRtedskLee7hQp_-zp8,220
|
|
@@ -95,8 +94,8 @@ cuqi/testproblem/_testproblem.py,sha256=EJWG_zXUtmo6GlHBZFqHlRpDC_48tE0XZEu0_C66
|
|
|
95
94
|
cuqi/utilities/__init__.py,sha256=d5QXRzmI6EchS9T4b7eTezSisPWuWklO8ey4YBx9kI0,569
|
|
96
95
|
cuqi/utilities/_get_python_variable_name.py,sha256=wxpCaj9f3ZtBNqlGmmuGiITgBaTsY-r94lUIlK6UAU4,2043
|
|
97
96
|
cuqi/utilities/_utilities.py,sha256=R7BdNysrE36a4D729DvfrTisWY4paP5nfqdkQxSX3Mg,18431
|
|
98
|
-
cuqipy-1.4.0.post0.
|
|
99
|
-
cuqipy-1.4.0.post0.
|
|
100
|
-
cuqipy-1.4.0.post0.
|
|
101
|
-
cuqipy-1.4.0.post0.
|
|
102
|
-
cuqipy-1.4.0.post0.
|
|
97
|
+
cuqipy-1.4.0.post0.dev92.dist-info/licenses/LICENSE,sha256=kJWRPrtRoQoZGXyyvu50Uc91X6_0XRaVfT0YZssicys,10799
|
|
98
|
+
cuqipy-1.4.0.post0.dev92.dist-info/METADATA,sha256=O6rws-Zn0aPz13jiQkcpRcXcA5HQV2fRG54KOpAwr4Y,18623
|
|
99
|
+
cuqipy-1.4.0.post0.dev92.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
100
|
+
cuqipy-1.4.0.post0.dev92.dist-info/top_level.txt,sha256=AgmgMc6TKfPPqbjV0kvAoCBN334i_Lwwojc7HE3ZwD0,5
|
|
101
|
+
cuqipy-1.4.0.post0.dev92.dist-info/RECORD,,
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
from ._productgeometry import _ProductGeometry
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|