CUQIpy 1.3.0.post0.dev395__tar.gz → 1.3.0.post0.dev401__tar.gz

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.

Potentially problematic release.


This version of CUQIpy might be problematic. Click here for more details.

Files changed (126) hide show
  1. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/CUQIpy.egg-info/PKG-INFO +1 -1
  2. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/PKG-INFO +1 -1
  3. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/_version.py +3 -3
  4. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/experimental/mcmc/_sampler.py +12 -4
  5. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/CUQIpy.egg-info/SOURCES.txt +0 -0
  6. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/CUQIpy.egg-info/dependency_links.txt +0 -0
  7. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/CUQIpy.egg-info/requires.txt +0 -0
  8. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/CUQIpy.egg-info/top_level.txt +0 -0
  9. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/LICENSE +0 -0
  10. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/README.md +0 -0
  11. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/__init__.py +0 -0
  12. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/_messages.py +0 -0
  13. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/array/__init__.py +0 -0
  14. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/array/_array.py +0 -0
  15. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/config.py +0 -0
  16. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/data/__init__.py +0 -0
  17. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/data/_data.py +0 -0
  18. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/data/astronaut.npz +0 -0
  19. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/data/camera.npz +0 -0
  20. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/data/cat.npz +0 -0
  21. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/data/cookie.png +0 -0
  22. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/data/satellite.mat +0 -0
  23. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/density/__init__.py +0 -0
  24. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/density/_density.py +0 -0
  25. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/diagnostics.py +0 -0
  26. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/distribution/__init__.py +0 -0
  27. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/distribution/_beta.py +0 -0
  28. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/distribution/_cauchy.py +0 -0
  29. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/distribution/_cmrf.py +0 -0
  30. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/distribution/_custom.py +0 -0
  31. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/distribution/_distribution.py +0 -0
  32. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/distribution/_gamma.py +0 -0
  33. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/distribution/_gaussian.py +0 -0
  34. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/distribution/_gmrf.py +0 -0
  35. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/distribution/_inverse_gamma.py +0 -0
  36. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/distribution/_joint_distribution.py +0 -0
  37. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/distribution/_laplace.py +0 -0
  38. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/distribution/_lmrf.py +0 -0
  39. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/distribution/_lognormal.py +0 -0
  40. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/distribution/_modifiedhalfnormal.py +0 -0
  41. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/distribution/_normal.py +0 -0
  42. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/distribution/_posterior.py +0 -0
  43. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/distribution/_smoothed_laplace.py +0 -0
  44. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/distribution/_truncated_normal.py +0 -0
  45. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/distribution/_uniform.py +0 -0
  46. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/experimental/__init__.py +0 -0
  47. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/experimental/_recommender.py +0 -0
  48. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/experimental/algebra/__init__.py +0 -0
  49. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/experimental/algebra/_ast.py +0 -0
  50. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/experimental/algebra/_orderedset.py +0 -0
  51. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/experimental/algebra/_randomvariable.py +0 -0
  52. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/experimental/geometry/__init__.py +0 -0
  53. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/experimental/geometry/_productgeometry.py +0 -0
  54. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/experimental/mcmc/__init__.py +0 -0
  55. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/experimental/mcmc/_conjugate.py +0 -0
  56. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/experimental/mcmc/_conjugate_approx.py +0 -0
  57. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/experimental/mcmc/_cwmh.py +0 -0
  58. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/experimental/mcmc/_direct.py +0 -0
  59. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/experimental/mcmc/_gibbs.py +0 -0
  60. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/experimental/mcmc/_hmc.py +0 -0
  61. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/experimental/mcmc/_langevin_algorithm.py +0 -0
  62. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/experimental/mcmc/_laplace_approximation.py +0 -0
  63. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/experimental/mcmc/_mh.py +0 -0
  64. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/experimental/mcmc/_pcn.py +0 -0
  65. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/experimental/mcmc/_rto.py +0 -0
  66. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/geometry/__init__.py +0 -0
  67. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/geometry/_geometry.py +0 -0
  68. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/implicitprior/__init__.py +0 -0
  69. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/implicitprior/_regularizedGMRF.py +0 -0
  70. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/implicitprior/_regularizedGaussian.py +0 -0
  71. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/implicitprior/_regularizedUnboundedUniform.py +0 -0
  72. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/implicitprior/_restorator.py +0 -0
  73. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/likelihood/__init__.py +0 -0
  74. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/likelihood/_likelihood.py +0 -0
  75. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/model/__init__.py +0 -0
  76. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/model/_model.py +0 -0
  77. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/operator/__init__.py +0 -0
  78. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/operator/_operator.py +0 -0
  79. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/pde/__init__.py +0 -0
  80. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/pde/_pde.py +0 -0
  81. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/problem/__init__.py +0 -0
  82. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/problem/_problem.py +0 -0
  83. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/sampler/__init__.py +0 -0
  84. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/sampler/_conjugate.py +0 -0
  85. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/sampler/_conjugate_approx.py +0 -0
  86. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/sampler/_cwmh.py +0 -0
  87. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/sampler/_gibbs.py +0 -0
  88. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/sampler/_hmc.py +0 -0
  89. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/sampler/_langevin_algorithm.py +0 -0
  90. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/sampler/_laplace_approximation.py +0 -0
  91. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/sampler/_mh.py +0 -0
  92. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/sampler/_pcn.py +0 -0
  93. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/sampler/_rto.py +0 -0
  94. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/sampler/_sampler.py +0 -0
  95. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/samples/__init__.py +0 -0
  96. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/samples/_samples.py +0 -0
  97. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/solver/__init__.py +0 -0
  98. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/solver/_solver.py +0 -0
  99. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/testproblem/__init__.py +0 -0
  100. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/testproblem/_testproblem.py +0 -0
  101. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/utilities/__init__.py +0 -0
  102. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/utilities/_get_python_variable_name.py +0 -0
  103. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/cuqi/utilities/_utilities.py +0 -0
  104. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/pyproject.toml +0 -0
  105. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/requirements.txt +0 -0
  106. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/setup.cfg +0 -0
  107. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/setup.py +0 -0
  108. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/tests/test_MRFs.py +0 -0
  109. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/tests/test_abstract_distribution_density.py +0 -0
  110. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/tests/test_bayesian_inversion.py +0 -0
  111. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/tests/test_density.py +0 -0
  112. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/tests/test_distribution.py +0 -0
  113. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/tests/test_distributions_shape.py +0 -0
  114. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/tests/test_geometry.py +0 -0
  115. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/tests/test_implicit_priors.py +0 -0
  116. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/tests/test_joint_distribution.py +0 -0
  117. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/tests/test_likelihood.py +0 -0
  118. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/tests/test_model.py +0 -0
  119. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/tests/test_pde.py +0 -0
  120. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/tests/test_posterior.py +0 -0
  121. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/tests/test_problem.py +0 -0
  122. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/tests/test_sampler.py +0 -0
  123. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/tests/test_samples.py +0 -0
  124. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/tests/test_solver.py +0 -0
  125. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/tests/test_testproblem.py +0 -0
  126. {cuqipy-1.3.0.post0.dev395 → cuqipy-1.3.0.post0.dev401}/tests/test_utilities.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: CUQIpy
3
- Version: 1.3.0.post0.dev395
3
+ Version: 1.3.0.post0.dev401
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,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: CUQIpy
3
- Version: 1.3.0.post0.dev395
3
+ Version: 1.3.0.post0.dev401
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
@@ -8,11 +8,11 @@ import json
8
8
 
9
9
  version_json = '''
10
10
  {
11
- "date": "2025-09-19T16:37:46+0300",
11
+ "date": "2025-09-21T15:00:42+0200",
12
12
  "dirty": false,
13
13
  "error": null,
14
- "full-revisionid": "2cf72ec9af9af17dad4bb3870ee20d303376de24",
15
- "version": "1.3.0.post0.dev395"
14
+ "full-revisionid": "f08eb2ae4f6f5209d4a06a4e031bc61bb746ce01",
15
+ "version": "1.3.0.post0.dev401"
16
16
  }
17
17
  ''' # END VERSION_JSON
18
18
 
@@ -203,13 +203,16 @@ class Sampler(ABC):
203
203
 
204
204
  self.set_state(state)
205
205
 
206
- def sample(self, Ns, batch_size=0, sample_path='./CUQI_samples/') -> 'Sampler':
206
+ def sample(self, Ns, Nt=1, batch_size=0, sample_path='./CUQI_samples/') -> 'Sampler':
207
207
  """ Sample Ns samples from the target density.
208
208
 
209
209
  Parameters
210
210
  ----------
211
211
  Ns : int
212
212
  The number of samples to draw.
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.
213
216
 
214
217
  batch_size : int, optional
215
218
  The batch size for saving samples to disk. If 0, no batching is used. If positive, samples are saved to disk in batches of the specified size.
@@ -233,7 +236,8 @@ class Sampler(ABC):
233
236
 
234
237
  # Store samples
235
238
  self._acc.append(acc)
236
- self._samples.append(self.current_point)
239
+ if (Nt > 0) and ((idx + 1) % Nt == 0):
240
+ self._samples.append(self.current_point)
237
241
 
238
242
  # display acc rate at progress bar
239
243
  pbar.set_postfix_str(f"acc rate: {np.mean(self._acc[-1-idx:]):.2%}")
@@ -248,7 +252,7 @@ class Sampler(ABC):
248
252
  return self
249
253
 
250
254
 
251
- def warmup(self, Nb, tune_freq=0.1) -> 'Sampler':
255
+ def warmup(self, Nb, Nt=1, tune_freq=0.1) -> 'Sampler':
252
256
  """ Warmup the sampler by drawing Nb samples.
253
257
 
254
258
  Parameters
@@ -256,6 +260,9 @@ class Sampler(ABC):
256
260
  Nb : int
257
261
  The number of samples to draw during warmup.
258
262
 
263
+ Nt : int, optional, default=1
264
+ The thinning interval. If Nt >= 1, every Nt'th sample is stored. The larger Nt, the fewer samples are stored.
265
+
259
266
  tune_freq : float, optional
260
267
  The frequency of tuning. Tuning is performed every tune_freq*Nb samples.
261
268
 
@@ -278,7 +285,8 @@ class Sampler(ABC):
278
285
 
279
286
  # Store samples
280
287
  self._acc.append(acc)
281
- self._samples.append(self.current_point)
288
+ if (Nt > 0) and ((idx + 1) % Nt == 0):
289
+ self._samples.append(self.current_point)
282
290
 
283
291
  # display acc rate at progress bar
284
292
  pbar.set_postfix_str(f"acc rate: {np.mean(self._acc[-1-idx:]):.2%}")