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 CHANGED
@@ -1,6 +1,7 @@
1
1
  from . import data
2
2
  from . import density
3
3
  from . import diagnostics
4
+ from . import algebra
4
5
  from . import distribution
5
6
  from . import experimental
6
7
  from . import geometry
cuqi/_version.py CHANGED
@@ -8,11 +8,11 @@ import json
8
8
 
9
9
  version_json = '''
10
10
  {
11
- "date": "2025-11-06T09:26:50+0300",
11
+ "date": "2025-11-24T16:04:21+0100",
12
12
  "dirty": false,
13
13
  "error": null,
14
- "full-revisionid": "e8fd90f6c716b96b04543b4fe62dd637033ccd32",
15
- "version": "1.4.0.post0.dev61"
14
+ "full-revisionid": "d6622bf24d4986794de75feebd950e695d1da212",
15
+ "version": "1.4.0.post0.dev92"
16
16
  }
17
17
  ''' # END VERSION_JSON
18
18
 
@@ -0,0 +1,2 @@
1
+ from ._abstract_syntax_tree import VariableNode, Node
2
+ from ._random_variable import RandomVariable
@@ -1,7 +1,7 @@
1
1
  from __future__ import annotations
2
2
  from typing import List, Any, Union
3
- from ._ast import VariableNode, Node
4
- from ._orderedset import _OrderedSet
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.experimental.algebra import RandomVariable
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.experimental.algebra import RandomVariable, VariableNode
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.experimental.algebra import RandomVariable
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.experimental.algebra.RandomVariable]):
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.experimental.algebra.RandomVariable) and density.is_transformed:
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.experimental.algebra.RandomVariable) else density for density in densities]
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]
@@ -1,4 +1,2 @@
1
1
  """ Experimental module for testing new features and ideas. """
2
- from . import algebra
3
- from . import geometry
4
2
  from ._recommender import SamplerRecommender
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.experimental.geometry import _ProductGeometry
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.experimental.geometry._ProductGeometry(*geometries)
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.experimental.geometry._ProductGeometry
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.experimental.geometry._ProductGeometry)
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.experimental.geometry._ProductGeometry.__name__}."
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.experimental.geometry._ProductGeometry)
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.experimental.geometry._ProductGeometry)):
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.experimental.algebra.RandomVariable)
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.experimental.algebra.Node) for args_i in args):
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.experimental.geometry._ProductGeometry
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.experimental.geometry._ProductGeometry(
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.experimental.geometry._ProductGeometry(
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.experimental.algebra.VariableNode) for x in kwargs.values()):
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.experimental.geometry._ProductGeometry
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.experimental.geometry._ProductGeometry)
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.experimental.geometry._ProductGeometry
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.experimental.geometry._ProductGeometry):
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
- self._store_samples()
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
- self._store_samples()
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(self.prior, (cuqi.distribution.Gaussian, cuqi.distribution.Normal)):
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 ((idx + 1) % Nt == 0):
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 ((idx + 1) % Nt == 0):
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.dev61
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=TIdTvq0th4ywHVNGFovmEzneXxkpGWC-LlUdrxbPPLM,509
1
+ cuqi/__init__.py,sha256=gs3F4QTPPvZe1sGbPcHn9U4eIyYJHXCJuwK4-eLe0qs,531
2
2
  cuqi/_messages.py,sha256=fzEBrZT2kbmfecBBPm7spVu7yHdxGARQB4QzXhJbCJ0,415
3
- cuqi/_version.py,sha256=S2ddEKfXvlEJwt4HQ_HYcSdVnIse2ZS69CQGg95CvD8,509
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=FWwJy6kM-MYEfN0Dv7DbLL7JHl_VDNAvNe-GqiLiRBc,18290
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=ALOnQsIrzE8Rx_FYOs4f276u4QZQeN_e0CLC7CJpb-E,20396
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=HCI1aG9xn4XPnBfGbCRrFaq3JfmVyBH09IuvdDancsY,154
41
+ cuqi/experimental/__init__.py,sha256=OZ4WHvYNiQWGdRikzSDhDZcajr9ib35NblQpIOHnQCg,109
38
42
  cuqi/experimental/_recommender.py,sha256=ulW69nDGwkB8X93OMgMVLcVz2L0T3SZqHKG7jZ9wNm8,7907
39
- cuqi/experimental/algebra/__init__.py,sha256=btRAWG58ZfdtK0afXKOg60AX7d76KMBjlZa4AWBCCgU,81
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=VwNTBlqQ94k_SQB_Y4ADqMOsrrNCcLMii3n-oTAiMv0,75120
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=H8ZYoNGyQun2u9dU86HDfr5Z1zZO9AnwkeATgS3Jer8,13971
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=vilU7YjU2WrK5b4bh4VAv8a8TTgj1f9Osivcf3kUlFQ,3364
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=7_a9i6A7AX3NNz7qK1jTsEYt6bFCUR5WK464KfH_Kvc,21034
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.dev61.dist-info/licenses/LICENSE,sha256=kJWRPrtRoQoZGXyyvu50Uc91X6_0XRaVfT0YZssicys,10799
99
- cuqipy-1.4.0.post0.dev61.dist-info/METADATA,sha256=8RwtR0AsvJQF8RQuPlj-VpzmMlNRt0bws6uMjfUQf9c,18623
100
- cuqipy-1.4.0.post0.dev61.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
101
- cuqipy-1.4.0.post0.dev61.dist-info/top_level.txt,sha256=AgmgMc6TKfPPqbjV0kvAoCBN334i_Lwwojc7HE3ZwD0,5
102
- cuqipy-1.4.0.post0.dev61.dist-info/RECORD,,
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,2 +0,0 @@
1
- from ._ast import VariableNode, Node
2
- from ._randomvariable import RandomVariable
@@ -1 +0,0 @@
1
- from ._productgeometry import _ProductGeometry