This repository implements the eSCP algorithm given in 1 for the purpose of running several experiments detailed in a paper2 that studies the continuity of this algorithm. The three modules 'src/example_{one, two, three}.py' fully reproduce the plots from 2. Details of the examples are explained in the paper.
The algorithm is currently written for 2-dimensions only, and a forthcoming repository called 'escp-constrained' will extend this code for arbitrary input and output dimensions among other things. If you need to re-use or adapt the code for the SCP, I recommend consulting the other repository instead.
-
Install uv, a package manager. See instructions here.
-
Clone the repository and navigate to it.
git clone https://github.com/akprasadan/escp-continuity.git cd escp-continuity -
Install the project and its dependencies.
uv sync
Now you can run modules with uv in a virtual environment, e.g.,
uv run python -m src.example_one
uv run python -m tests.check_pushforward
You can also run all unit tests.
uv run pytest
- The core functions and examples are stored in
src/. You only need to run each of thesrc/example_{i}.pyfiles to obtain all the figures from the paper. Use the functions insrc/estimate_functions.pyto create your own examples. The rest of the modules insrc/just contain helper functions. - Necessary datasets will be stored in
data/after running eithersrc/example_three.pyortests/check_concrete_pushforward.py. These modules will download a concrete dataset and store the raw version indata/raw_concrete.csvand a processed version indata/processed_concrete.csv. The original dataset is due to 3 and can also be downloaded from the UC Irvine Machine Learning Repository. - Results from running the examples or certain tests are stored in
plots/. - The code is tested in
tests/. Three tests,tests/check_pushforward.py,tests/check_concrete_pushforward.py,tests/test_probs_to_mesh.pyinclude visual tests and must be manually run. Their results are stored inplots/tests/.
Footnotes
-
Shi, H., Yang, L., Chi, J., Butler, T., Wang, H., Bingham, D., & Estep, D. (2026). Nonparametric Bayesian Calibration of Computer Models. arXiv preprint arXiv:2509.22597. ↩
-
Prasadan A., Bingham, D., & Estep, D. (2026). Continuity of the Solution of a Non-Parametric Bayesian Statistical Calibration Procedure. arXiv preprint arXiv:2603.20665. ↩ ↩2
-
Yeh, I. C. (1998). Modeling of strength of high-performance concrete using artificial neural networks. Cement and Concrete research, 28(12), 1797-1808. ↩