diff --git a/ci_environment.yml b/ci_environment.yml index 34faeaa..8fdc258 100644 --- a/ci_environment.yml +++ b/ci_environment.yml @@ -4,7 +4,7 @@ channels: - conda-forge dependencies: - - python >= 3.11 + - python >= 3.11,<3.14 - mpich - lhapdf - pandoc diff --git a/environment.yml b/environment.yml index 02bcc97..0f32d45 100644 --- a/environment.yml +++ b/environment.yml @@ -4,7 +4,7 @@ channels: - conda-forge dependencies: - - python >= 3.11 + - python >= 3.11,<3.14 - mpich - lhapdf - pandoc diff --git a/grid_pdf/app.py b/grid_pdf/app.py index 00481e5..cc63a17 100644 --- a/grid_pdf/app.py +++ b/grid_pdf/app.py @@ -7,7 +7,6 @@ from colibri.app import colibriApp from grid_pdf.config import GridPdfConfig - grid_pdf_providers = [ "grid_pdf.model", "grid_pdf.utils", diff --git a/grid_pdf/utils.py b/grid_pdf/utils.py index 42744cb..0735480 100644 --- a/grid_pdf/utils.py +++ b/grid_pdf/utils.py @@ -13,6 +13,7 @@ from validphys.core import PDF import colibri.bayes_prior +from colibri.core import BayesianPrior def closure_test_central_pdf_grid( @@ -138,6 +139,14 @@ def bayesian_prior(prior_settings, pdf_model): error_up = mean + delta * nsigma error_down = mean - delta * nsigma + # Define dummy log_prob and sample for now + @jax.jit + def log_prob(x): + raise NotImplementedError("log_prob not implemented for Gaussian prior") + + def sample(rng_key, n_samples): + raise NotImplementedError("sample not implemented for Gaussian prior") + @jax.jit def prior_transform(cube): params = error_down + (error_up - error_down) * cube @@ -163,6 +172,13 @@ def prior_transform(cube): ) cholesky_pdf_covmat = jnp.diag(jnp.sqrt(pdf_diag_covmat_prior)) + @jax.jit + def log_prob(x): + raise NotImplementedError("log_prob not implemented for Gaussian prior") + + def sample(rng_key, n_samples): + raise NotImplementedError("sample not implemented for Gaussian prior") + @jax.jit def prior_transform(cube): """ @@ -181,7 +197,11 @@ def prior_transform(cube): else: return colibri.bayes_prior.bayesian_prior(prior_settings) - return prior_transform + return BayesianPrior( + prior_transform=prior_transform, + log_prob=log_prob, + sample=sample, + ) def pdf_initial_parameters(pdf_model, param_initialiser_settings, replica_index):