CUQIpy 1.3.0.post0.dev292__tar.gz → 1.3.0.post0.dev295__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.dev292 → cuqipy-1.3.0.post0.dev295}/CUQIpy.egg-info/PKG-INFO +1 -1
  2. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/PKG-INFO +1 -1
  3. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/_version.py +3 -3
  4. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/experimental/_recommender.py +23 -7
  5. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/CUQIpy.egg-info/SOURCES.txt +0 -0
  6. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/CUQIpy.egg-info/dependency_links.txt +0 -0
  7. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/CUQIpy.egg-info/requires.txt +0 -0
  8. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/CUQIpy.egg-info/top_level.txt +0 -0
  9. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/LICENSE +0 -0
  10. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/README.md +0 -0
  11. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/__init__.py +0 -0
  12. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/_messages.py +0 -0
  13. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/array/__init__.py +0 -0
  14. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/array/_array.py +0 -0
  15. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/config.py +0 -0
  16. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/data/__init__.py +0 -0
  17. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/data/_data.py +0 -0
  18. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/data/astronaut.npz +0 -0
  19. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/data/camera.npz +0 -0
  20. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/data/cat.npz +0 -0
  21. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/data/cookie.png +0 -0
  22. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/data/satellite.mat +0 -0
  23. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/density/__init__.py +0 -0
  24. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/density/_density.py +0 -0
  25. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/diagnostics.py +0 -0
  26. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/distribution/__init__.py +0 -0
  27. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/distribution/_beta.py +0 -0
  28. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/distribution/_cauchy.py +0 -0
  29. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/distribution/_cmrf.py +0 -0
  30. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/distribution/_custom.py +0 -0
  31. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/distribution/_distribution.py +0 -0
  32. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/distribution/_gamma.py +0 -0
  33. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/distribution/_gaussian.py +0 -0
  34. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/distribution/_gmrf.py +0 -0
  35. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/distribution/_inverse_gamma.py +0 -0
  36. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/distribution/_joint_distribution.py +0 -0
  37. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/distribution/_laplace.py +0 -0
  38. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/distribution/_lmrf.py +0 -0
  39. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/distribution/_lognormal.py +0 -0
  40. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/distribution/_modifiedhalfnormal.py +0 -0
  41. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/distribution/_normal.py +0 -0
  42. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/distribution/_posterior.py +0 -0
  43. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/distribution/_smoothed_laplace.py +0 -0
  44. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/distribution/_truncated_normal.py +0 -0
  45. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/distribution/_uniform.py +0 -0
  46. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/experimental/__init__.py +0 -0
  47. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/experimental/algebra/__init__.py +0 -0
  48. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/experimental/algebra/_ast.py +0 -0
  49. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/experimental/algebra/_orderedset.py +0 -0
  50. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/experimental/algebra/_randomvariable.py +0 -0
  51. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/experimental/geometry/__init__.py +0 -0
  52. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/experimental/geometry/_productgeometry.py +0 -0
  53. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/experimental/mcmc/__init__.py +0 -0
  54. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/experimental/mcmc/_conjugate.py +0 -0
  55. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/experimental/mcmc/_conjugate_approx.py +0 -0
  56. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/experimental/mcmc/_cwmh.py +0 -0
  57. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/experimental/mcmc/_direct.py +0 -0
  58. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/experimental/mcmc/_gibbs.py +0 -0
  59. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/experimental/mcmc/_hmc.py +0 -0
  60. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/experimental/mcmc/_langevin_algorithm.py +0 -0
  61. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/experimental/mcmc/_laplace_approximation.py +0 -0
  62. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/experimental/mcmc/_mh.py +0 -0
  63. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/experimental/mcmc/_pcn.py +0 -0
  64. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/experimental/mcmc/_rto.py +0 -0
  65. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/experimental/mcmc/_sampler.py +0 -0
  66. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/geometry/__init__.py +0 -0
  67. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/geometry/_geometry.py +0 -0
  68. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/implicitprior/__init__.py +0 -0
  69. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/implicitprior/_regularizedGMRF.py +0 -0
  70. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/implicitprior/_regularizedGaussian.py +0 -0
  71. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/implicitprior/_regularizedUnboundedUniform.py +0 -0
  72. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/implicitprior/_restorator.py +0 -0
  73. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/likelihood/__init__.py +0 -0
  74. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/likelihood/_likelihood.py +0 -0
  75. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/model/__init__.py +0 -0
  76. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/model/_model.py +0 -0
  77. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/operator/__init__.py +0 -0
  78. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/operator/_operator.py +0 -0
  79. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/pde/__init__.py +0 -0
  80. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/pde/_pde.py +0 -0
  81. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/problem/__init__.py +0 -0
  82. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/problem/_problem.py +0 -0
  83. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/sampler/__init__.py +0 -0
  84. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/sampler/_conjugate.py +0 -0
  85. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/sampler/_conjugate_approx.py +0 -0
  86. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/sampler/_cwmh.py +0 -0
  87. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/sampler/_gibbs.py +0 -0
  88. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/sampler/_hmc.py +0 -0
  89. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/sampler/_langevin_algorithm.py +0 -0
  90. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/sampler/_laplace_approximation.py +0 -0
  91. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/sampler/_mh.py +0 -0
  92. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/sampler/_pcn.py +0 -0
  93. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/sampler/_rto.py +0 -0
  94. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/sampler/_sampler.py +0 -0
  95. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/samples/__init__.py +0 -0
  96. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/samples/_samples.py +0 -0
  97. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/solver/__init__.py +0 -0
  98. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/solver/_solver.py +0 -0
  99. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/testproblem/__init__.py +0 -0
  100. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/testproblem/_testproblem.py +0 -0
  101. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/utilities/__init__.py +0 -0
  102. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/utilities/_get_python_variable_name.py +0 -0
  103. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/cuqi/utilities/_utilities.py +0 -0
  104. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/pyproject.toml +0 -0
  105. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/requirements.txt +0 -0
  106. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/setup.cfg +0 -0
  107. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/setup.py +0 -0
  108. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/tests/test_MRFs.py +0 -0
  109. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/tests/test_abstract_distribution_density.py +0 -0
  110. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/tests/test_bayesian_inversion.py +0 -0
  111. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/tests/test_density.py +0 -0
  112. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/tests/test_distribution.py +0 -0
  113. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/tests/test_distributions_shape.py +0 -0
  114. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/tests/test_geometry.py +0 -0
  115. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/tests/test_implicit_priors.py +0 -0
  116. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/tests/test_joint_distribution.py +0 -0
  117. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/tests/test_likelihood.py +0 -0
  118. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/tests/test_model.py +0 -0
  119. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/tests/test_pde.py +0 -0
  120. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/tests/test_posterior.py +0 -0
  121. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/tests/test_problem.py +0 -0
  122. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/tests/test_sampler.py +0 -0
  123. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/tests/test_samples.py +0 -0
  124. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/tests/test_solver.py +0 -0
  125. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/tests/test_testproblem.py +0 -0
  126. {cuqipy-1.3.0.post0.dev292 → cuqipy-1.3.0.post0.dev295}/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.dev292
3
+ Version: 1.3.0.post0.dev295
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.dev292
3
+ Version: 1.3.0.post0.dev295
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-07-04T09:41:59+0300",
11
+ "date": "2025-07-05T17:33:50+0300",
12
12
  "dirty": false,
13
13
  "error": null,
14
- "full-revisionid": "7536b0d728d704a7ab46bca7ff4756075ba0e573",
15
- "version": "1.3.0.post0.dev292"
14
+ "full-revisionid": "13125771ed4633adb556c05e509eff6e758da171",
15
+ "version": "1.3.0.post0.dev295"
16
16
  }
17
17
  ''' # END VERSION_JSON
18
18
 
@@ -17,6 +17,24 @@ class SamplerRecommender(object):
17
17
 
18
18
  exceptions: list[cuqi.experimental.mcmc.Sampler], *optional*
19
19
  Samplers not to be recommended.
20
+
21
+ Example
22
+ -------
23
+ .. code-block:: python
24
+ import numpy as np
25
+ from cuqi.distribution import Gamma, Gaussian, JointDistribution
26
+ from cuqi.experimental import SamplerRecommender
27
+
28
+ x = Gamma(1, 1)
29
+ y = Gaussian(np.zeros(2), cov=lambda x: 1 / x)
30
+ target = JointDistribution(y, x)(y=1)
31
+
32
+ recommender = SamplerRecommender(target)
33
+ valid_samplers = recommender.valid_samplers()
34
+ recommended_sampler = recommender.recommend()
35
+ print("Valid samplers:", valid_samplers)
36
+ print("Recommended sampler:\n", recommended_sampler)
37
+
20
38
  """
21
39
 
22
40
  def __init__(self, target:cuqi.density.Density, exceptions = []):
@@ -28,7 +46,7 @@ class SamplerRecommender(object):
28
46
  def target(self) -> cuqi.density.Density:
29
47
  """ Return the target Distribution. """
30
48
  return self._target
31
-
49
+
32
50
  @target.setter
33
51
  def target(self, value:cuqi.density.Density):
34
52
  """ Set the target Distribution. Runs validation of the target. """
@@ -73,7 +91,7 @@ class SamplerRecommender(object):
73
91
  def ordering(self):
74
92
  """ Returns the ordered list of recommendation rules used by the recommender. """
75
93
  return self._ordering
76
-
94
+
77
95
  def valid_samplers(self, as_string = True):
78
96
  """
79
97
  Finds all possible samplers that can be used for sampling from the target distribution.
@@ -101,7 +119,6 @@ class SamplerRecommender(object):
101
119
  valid_samplers += [cuqi.experimental.mcmc.HybridGibbs.__name__ if as_string else cuqi.experimental.mcmc.HybridGibbs]
102
120
 
103
121
  return valid_samplers
104
-
105
122
 
106
123
  def valid_HybridGibbs_sampling_strategy(self, as_string = True):
107
124
  """
@@ -131,11 +148,10 @@ class SamplerRecommender(object):
131
148
  samplers = recommender.valid_samplers(as_string)
132
149
  if len(samplers) == 0:
133
150
  return None
134
-
151
+
135
152
  valid_samplers[par_name] = samplers
136
153
 
137
154
  return valid_samplers
138
-
139
155
 
140
156
  def recommend(self, as_string = False):
141
157
  """
@@ -194,7 +210,7 @@ class SamplerRecommender(object):
194
210
 
195
211
  if sampler is None:
196
212
  return None
197
-
213
+
198
214
  suggested_samplers[par_name] = sampler
199
215
 
200
- return suggested_samplers
216
+ return suggested_samplers