CUQIpy 1.3.0.post0.dev70__tar.gz → 1.3.0.post0.dev86__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.
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/CUQIpy.egg-info/PKG-INFO +3 -2
- cuqipy-1.3.0.post0.dev86/CUQIpy.egg-info/requires.txt +10 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/PKG-INFO +3 -2
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/_version.py +3 -3
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/distribution/_truncated_normal.py +1 -1
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/distribution/_uniform.py +1 -1
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/implicitprior/_regularizedGaussian.py +8 -2
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/utilities/_utilities.py +1 -1
- cuqipy-1.3.0.post0.dev86/requirements.txt +6 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/tests/test_bayesian_inversion.py +10 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/tests/test_implicit_priors.py +3 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/tests/test_model.py +1 -1
- cuqipy-1.3.0.post0.dev70/CUQIpy.egg-info/requires.txt +0 -5
- cuqipy-1.3.0.post0.dev70/requirements.txt +0 -5
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/CUQIpy.egg-info/SOURCES.txt +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/CUQIpy.egg-info/dependency_links.txt +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/CUQIpy.egg-info/top_level.txt +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/LICENSE +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/README.md +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/__init__.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/_messages.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/array/__init__.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/array/_array.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/config.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/data/__init__.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/data/_data.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/data/astronaut.npz +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/data/camera.npz +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/data/cat.npz +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/data/cookie.png +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/data/satellite.mat +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/density/__init__.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/density/_density.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/diagnostics.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/distribution/__init__.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/distribution/_beta.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/distribution/_cauchy.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/distribution/_cmrf.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/distribution/_custom.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/distribution/_distribution.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/distribution/_gamma.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/distribution/_gaussian.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/distribution/_gmrf.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/distribution/_inverse_gamma.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/distribution/_joint_distribution.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/distribution/_laplace.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/distribution/_lmrf.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/distribution/_lognormal.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/distribution/_modifiedhalfnormal.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/distribution/_normal.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/distribution/_posterior.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/distribution/_smoothed_laplace.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/experimental/__init__.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/experimental/algebra/__init__.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/experimental/algebra/_ast.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/experimental/algebra/_orderedset.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/experimental/algebra/_randomvariable.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/experimental/geometry/__init__.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/experimental/geometry/_productgeometry.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/experimental/mcmc/__init__.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/experimental/mcmc/_conjugate.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/experimental/mcmc/_conjugate_approx.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/experimental/mcmc/_cwmh.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/experimental/mcmc/_direct.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/experimental/mcmc/_gibbs.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/experimental/mcmc/_hmc.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/experimental/mcmc/_langevin_algorithm.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/experimental/mcmc/_laplace_approximation.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/experimental/mcmc/_mh.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/experimental/mcmc/_pcn.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/experimental/mcmc/_rto.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/experimental/mcmc/_sampler.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/experimental/mcmc/_utilities.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/geometry/__init__.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/geometry/_geometry.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/implicitprior/__init__.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/implicitprior/_regularizedGMRF.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/implicitprior/_regularizedUnboundedUniform.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/implicitprior/_restorator.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/likelihood/__init__.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/likelihood/_likelihood.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/model/__init__.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/model/_model.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/operator/__init__.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/operator/_operator.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/pde/__init__.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/pde/_pde.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/problem/__init__.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/problem/_problem.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/sampler/__init__.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/sampler/_conjugate.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/sampler/_conjugate_approx.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/sampler/_cwmh.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/sampler/_gibbs.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/sampler/_hmc.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/sampler/_langevin_algorithm.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/sampler/_laplace_approximation.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/sampler/_mh.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/sampler/_pcn.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/sampler/_rto.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/sampler/_sampler.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/samples/__init__.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/samples/_samples.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/solver/__init__.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/solver/_solver.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/testproblem/__init__.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/testproblem/_testproblem.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/utilities/__init__.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/utilities/_get_python_variable_name.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/pyproject.toml +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/setup.cfg +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/setup.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/tests/test_MRFs.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/tests/test_abstract_distribution_density.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/tests/test_density.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/tests/test_distribution.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/tests/test_distributions_shape.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/tests/test_geometry.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/tests/test_joint_distribution.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/tests/test_likelihood.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/tests/test_pde.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/tests/test_posterior.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/tests/test_problem.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/tests/test_sampler.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/tests/test_samples.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/tests/test_solver.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/tests/test_testproblem.py +0 -0
- {cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/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.
|
|
3
|
+
Version: 1.3.0.post0.dev86
|
|
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
|
|
@@ -202,7 +202,8 @@ Description-Content-Type: text/markdown
|
|
|
202
202
|
License-File: LICENSE
|
|
203
203
|
Requires-Dist: matplotlib
|
|
204
204
|
Requires-Dist: numpy>=1.17.0
|
|
205
|
-
Requires-Dist: scipy
|
|
205
|
+
Requires-Dist: scipy==1.12.0; python_version <= "3.9"
|
|
206
|
+
Requires-Dist: scipy; python_version > "3.9"
|
|
206
207
|
Requires-Dist: arviz
|
|
207
208
|
Requires-Dist: tqdm
|
|
208
209
|
Dynamic: license-file
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: CUQIpy
|
|
3
|
-
Version: 1.3.0.post0.
|
|
3
|
+
Version: 1.3.0.post0.dev86
|
|
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
|
|
@@ -202,7 +202,8 @@ Description-Content-Type: text/markdown
|
|
|
202
202
|
License-File: LICENSE
|
|
203
203
|
Requires-Dist: matplotlib
|
|
204
204
|
Requires-Dist: numpy>=1.17.0
|
|
205
|
-
Requires-Dist: scipy
|
|
205
|
+
Requires-Dist: scipy==1.12.0; python_version <= "3.9"
|
|
206
|
+
Requires-Dist: scipy; python_version > "3.9"
|
|
206
207
|
Requires-Dist: arviz
|
|
207
208
|
Requires-Dist: tqdm
|
|
208
209
|
Dynamic: license-file
|
|
@@ -8,11 +8,11 @@ import json
|
|
|
8
8
|
|
|
9
9
|
version_json = '''
|
|
10
10
|
{
|
|
11
|
-
"date": "2025-04-10T10:
|
|
11
|
+
"date": "2025-04-10T10:50:04+0200",
|
|
12
12
|
"dirty": false,
|
|
13
13
|
"error": null,
|
|
14
|
-
"full-revisionid": "
|
|
15
|
-
"version": "1.3.0.post0.
|
|
14
|
+
"full-revisionid": "fe056d15f6ff918511cf7ee579dc8e7689c1dbc4",
|
|
15
|
+
"version": "1.3.0.post0.dev86"
|
|
16
16
|
}
|
|
17
17
|
''' # END VERSION_JSON
|
|
18
18
|
|
{cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/distribution/_truncated_normal.py
RENAMED
|
@@ -107,7 +107,7 @@ class TruncatedNormal(Distribution):
|
|
|
107
107
|
"""
|
|
108
108
|
# check if x falls in the range between np.array a and b
|
|
109
109
|
if np.any(x < self.low) or np.any(x > self.high):
|
|
110
|
-
return np.
|
|
110
|
+
return np.nan*np.ones_like(x)
|
|
111
111
|
else:
|
|
112
112
|
return self._normal.gradient(x, *args, **kwargs)
|
|
113
113
|
|
{cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/implicitprior/_regularizedGaussian.py
RENAMED
|
@@ -189,12 +189,18 @@ class RegularizedGaussian(Distribution):
|
|
|
189
189
|
elif c_lower == "increasing":
|
|
190
190
|
if not isinstance(self.geometry, Continuous1D):
|
|
191
191
|
raise ValueError("Geometry not supported for " + c_lower)
|
|
192
|
-
|
|
192
|
+
if hasattr(spoptimize, 'isotonic_regression'):
|
|
193
|
+
self._constraint_prox = lambda z, _: spoptimize.isotonic_regression(z, increasing=True).x
|
|
194
|
+
else:
|
|
195
|
+
raise AttributeError(f"The function 'isotonic_regression' does not exist in scipy.optimize. Installed scipy version: {spoptimize.__version__}. You need to install a scipy >= 1.12.0")
|
|
193
196
|
self._preset["constraint"] = "increasing"
|
|
194
197
|
elif c_lower == "decreasing":
|
|
195
198
|
if not isinstance(self.geometry, Continuous1D):
|
|
196
199
|
raise ValueError("Geometry not supported for " + c_lower)
|
|
197
|
-
|
|
200
|
+
if hasattr(spoptimize, 'isotonic_regression'):
|
|
201
|
+
self._constraint_prox = lambda z, _: spoptimize.isotonic_regression(z, increasing=False).x
|
|
202
|
+
else:
|
|
203
|
+
raise AttributeError(f"The function 'isotonic_regression' does not exist in scipy.optimize. Installed scipy version: {spoptimize.__version__}. You need to install a scipy >= 1.12.0")
|
|
198
204
|
self._preset["constraint"] = "decreasing"
|
|
199
205
|
elif c_lower == "convex":
|
|
200
206
|
if not isinstance(self.geometry, Continuous1D):
|
|
@@ -188,7 +188,7 @@ def approx_derivative(func, wrt, direction=None, epsilon=np.sqrt(np.finfo(float)
|
|
|
188
188
|
# We compute the Jacobian matrix of func using forward differences.
|
|
189
189
|
# If the function is scalar-valued, we compute the gradient instead.
|
|
190
190
|
# If the direction is provided, we compute the direction-Jacobian product.
|
|
191
|
-
wrt = np.
|
|
191
|
+
wrt = np.asarray(wrt)
|
|
192
192
|
f0 = func(wrt)
|
|
193
193
|
Matr = np.zeros([infer_len(wrt), infer_len(f0)])
|
|
194
194
|
dx = np.zeros(len(wrt))
|
|
@@ -2,7 +2,9 @@ from typing import Dict
|
|
|
2
2
|
|
|
3
3
|
import pytest
|
|
4
4
|
import numpy as np
|
|
5
|
+
import scipy
|
|
5
6
|
import sys
|
|
7
|
+
from packaging import version
|
|
6
8
|
|
|
7
9
|
from cuqi.testproblem import Deconvolution1D
|
|
8
10
|
from cuqi.distribution import Gaussian, GMRF, CMRF, LMRF, Gamma
|
|
@@ -25,6 +27,14 @@ def test_TP_BayesianProblem_sample(copy_reference, TP_type, phantom, prior, Ns,
|
|
|
25
27
|
# SKIP NUTS test if not windows (for now)
|
|
26
28
|
if isinstance(prior, CMRF) and not sys.platform.startswith('win'):
|
|
27
29
|
pytest.skip("NUTS(CMRF) regression test is not implemented for this platform")
|
|
30
|
+
elif (
|
|
31
|
+
isinstance(prior, RegularizedGaussian)
|
|
32
|
+
or isinstance(prior, RegularizedGMRF)
|
|
33
|
+
) and version.parse(scipy.__version__) >= version.parse('1.13.0'):
|
|
34
|
+
pytest.skip(
|
|
35
|
+
"Saved reference data is not consistent with scipy>=1.13.0 "
|
|
36
|
+
"(due to different default behaviour of scipy.optimize)"
|
|
37
|
+
)
|
|
28
38
|
|
|
29
39
|
np.random.seed(19937)
|
|
30
40
|
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import cuqi
|
|
2
2
|
import numpy as np
|
|
3
|
+
import scipy
|
|
3
4
|
import pytest
|
|
5
|
+
from packaging import version
|
|
4
6
|
|
|
5
7
|
def test_RegularizedGaussian_default_init():
|
|
6
8
|
""" Test that the implicit regularized Gaussian requires at least 1 regularization argument """
|
|
@@ -186,6 +188,7 @@ def test_RegularizedGaussian_double_preset():
|
|
|
186
188
|
assert len(x.proximal[0]) == 2
|
|
187
189
|
assert len(x.proximal[1]) == 2
|
|
188
190
|
|
|
191
|
+
@pytest.mark.skipif(version.parse(scipy.__version__) < version.parse('1.12.0'), reason="isotonic_regression in not available in scipy < 1.12.0")
|
|
189
192
|
def test_regression_increasing():
|
|
190
193
|
""" Regression test for the increasing constraints in RegularizedGaussian"""
|
|
191
194
|
|
|
@@ -19,7 +19,7 @@ def test_LinearModel_getMatrix(seed):
|
|
|
19
19
|
mat1 = model1.get_matrix() #Normal matrix
|
|
20
20
|
mat2 = model2.get_matrix() #Sparse matrix (generated from functions)
|
|
21
21
|
|
|
22
|
-
assert np.allclose(mat1,mat2.
|
|
22
|
+
assert np.allclose(mat1,mat2.toarray())
|
|
23
23
|
|
|
24
24
|
def test_initialize_model_dim():
|
|
25
25
|
model1 = cuqi.model.Model(lambda x:x, range_geometry=4, domain_geometry=4)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/distribution/_joint_distribution.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/distribution/_modifiedhalfnormal.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/distribution/_smoothed_laplace.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/experimental/algebra/_orderedset.py
RENAMED
|
File without changes
|
{cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/experimental/algebra/_randomvariable.py
RENAMED
|
File without changes
|
{cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/experimental/geometry/__init__.py
RENAMED
|
File without changes
|
{cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/experimental/geometry/_productgeometry.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/experimental/mcmc/_conjugate_approx.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/experimental/mcmc/_langevin_algorithm.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/implicitprior/_regularizedGMRF.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/sampler/_laplace_approximation.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/cuqi/utilities/_get_python_variable_name.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cuqipy-1.3.0.post0.dev70 → cuqipy-1.3.0.post0.dev86}/tests/test_abstract_distribution_density.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|