Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
343 commits
Select commit Hold shift + click to select a range
769d2e6
Bump version: 3.5.1 → 3.5.2
JohannesBuchner Sep 6, 2022
e774f5e
[docs] satisfy deprecation warnings
JohannesBuchner Sep 6, 2022
50501eb
typos and doc improvements
JohannesBuchner Sep 6, 2022
6f1a6ef
Bump version: 3.5.2 → 3.5.3
JohannesBuchner Sep 6, 2022
ea14c78
Merge branch 'master' of github.com:JohannesBuchner/UltraNest
JohannesBuchner Sep 6, 2022
86e4b63
add a noop logger to avoid lastresort logger noise
JohannesBuchner Sep 8, 2022
8e3065f
more informative livepoint error
JohannesBuchner Sep 8, 2022
864a13d
add a notebook on debugging techniques
JohannesBuchner Sep 8, 2022
4caddcb
improve doc on silencing output; avoid corner warning
JohannesBuchner Sep 8, 2022
d050992
closes #38 and #52
JohannesBuchner Sep 8, 2022
bef34cf
[docs] config format specs changed (fixed error: dict-traits is depre…
JohannesBuchner Sep 9, 2022
0e0f9a0
[docs] replace KeyboardInterrupt with Timeout, to avoid nbsphinx stop…
JohannesBuchner Sep 9, 2022
a69a76e
Merge branch 'master' of github.com:JohannesBuchner/UltraNest
JohannesBuchner Sep 9, 2022
a9883ba
[docs] mpiexec output does not show in notebook for some reason
JohannesBuchner Sep 9, 2022
3131a2f
[doc] docstring syntax
JohannesBuchner Sep 9, 2022
6808142
document missing parameters (thanks to pystrict3)
JohannesBuchner Sep 11, 2022
08ab73c
Bump version: 3.5.3 → 3.5.4
JohannesBuchner Sep 12, 2022
a4ace9e
[doc] correct notebook to avoid likelihood plateau
JohannesBuchner Sep 13, 2022
399fb8e
add sanity check to hotstart
JohannesBuchner Sep 13, 2022
00a8482
Bump version: 3.5.4 → 3.5.5
JohannesBuchner Sep 13, 2022
d864952
fix sanity check
JohannesBuchner Sep 18, 2022
f12f974
rst formatting; demote harmless warning
JohannesBuchner Sep 18, 2022
655f3b4
rst formatting
JohannesBuchner Sep 19, 2022
6ef7ae1
rst formatting typos py:method instead of py:meth
JohannesBuchner Sep 19, 2022
2abaa28
more rst formatting issues of directive
JohannesBuchner Sep 19, 2022
aad770b
rst reference formatting, found more issues with pystrict3
JohannesBuchner Sep 19, 2022
2ebc622
set seed to make docs reproducible
JohannesBuchner Sep 20, 2022
fe270ee
add missing json libraries
JohannesBuchner Sep 20, 2022
66cf7ba
add encoding="utf-8" parameter
QZGao Oct 25, 2022
d3fe862
Merge pull request #75 from QZGao/patch-1
JohannesBuchner Oct 25, 2022
dd54fe5
skip live point test if using step sampler
JohannesBuchner Nov 14, 2022
295d9ec
Merge branch 'master' of github.com:JohannesBuchner/UltraNest
JohannesBuchner Nov 14, 2022
8af6881
Bump version: 3.5.5 → 3.5.6
JohannesBuchner Nov 14, 2022
27bb175
fix issue 77: wider initial sampling to overcome initial plateaus
JohannesBuchner Nov 25, 2022
42d68fa
Bump version: 3.5.6 → 3.5.7
JohannesBuchner Nov 25, 2022
ec15d59
fix detection of initial plateau
JohannesBuchner Nov 25, 2022
adab4e9
[docs] add reference for warm-starting; formatting typo
JohannesBuchner Dec 6, 2022
1d9b720
update call, fixes issue https://github.com/JohannesBuchner/UltraNest…
JohannesBuchner May 11, 2023
6ada1aa
move demo code that was inline to scripts that can be included and ru…
JohannesBuchner May 11, 2023
4b7d8b3
avoid run-away root widening. closes https://github.com/JohannesBuchn…
JohannesBuchner Jun 1, 2023
deca8a3
only log in the main MPI process
JohannesBuchner Jun 1, 2023
2ed7e6c
expose new limits to root widening to users
JohannesBuchner Jun 1, 2023
60fad8c
add tests, pass arguments through
JohannesBuchner Jun 20, 2023
5806aba
Merge pull request #96 from JohannesBuchner/feature-avoid-widening-ru…
JohannesBuchner Jun 20, 2023
6554c4b
first try at population step sampler; has issues
JohannesBuchner Jan 17, 2022
4deb415
add gaussian population sampler
JohannesBuchner Jun 19, 2023
f57c3a5
remove AHARM, not needed anymore with popstepsampler implementation
JohannesBuchner Jun 20, 2023
f593814
make PopulationRandomWalkSampler interface more transparent and confi…
JohannesBuchner Jun 21, 2023
a69893e
Bump version: 3.5.7 → 3.6.0
JohannesBuchner Jun 22, 2023
9f34057
add changelog notes
JohannesBuchner Jun 22, 2023
10af0b5
avoid scipy.optimize.minimize_scalar error
JohannesBuchner Jun 22, 2023
314a267
update docstrings
JohannesBuchner Jun 22, 2023
cb15fad
avoid unused warning with __all__
JohannesBuchner Jun 22, 2023
529e690
signing is not supported by pypi anymore
JohannesBuchner Jun 22, 2023
55ad630
Bump version: 3.6.0 → 3.6.1
JohannesBuchner Jun 22, 2023
18a4cb4
improve docs
JohannesBuchner Jun 22, 2023
c1f20f2
more user-friendly API list
JohannesBuchner Jun 22, 2023
09fcc3d
add pointer to popstepsamplers
JohannesBuchner Jun 22, 2023
2f78e09
rename API page title
JohannesBuchner Jun 22, 2023
64cdafc
add module list to API page
JohannesBuchner Jun 22, 2023
aada49d
friendlier API docs
JohannesBuchner Jun 23, 2023
36395be
add module overview script
JohannesBuchner Jun 23, 2023
540290d
syntax fix, make calls sh, not bash
JohannesBuchner Jun 23, 2023
82f987f
fix link to API doc
JohannesBuchner Jun 23, 2023
8574c76
use explicit sqrt
ahnitz Jul 18, 2023
c1bbe7c
Merge pull request #104 from ahnitz/c3v2
JohannesBuchner Jul 18, 2023
557539d
loosen stochastic test requirement
JohannesBuchner Jul 19, 2023
d344775
Bump version: 3.6.1 → 3.6.2
JohannesBuchner Jul 19, 2023
e9851a3
better doc for step sampler functions.
JohannesBuchner Sep 30, 2023
fa5b3d1
stepsampler: customizable random live point selection strategies
JohannesBuchner Oct 1, 2023
602f21d
Added mpi check and 'break' on logger statement.
gregorydavidmartinez Oct 11, 2023
996e4fe
Revert "Added mpi check and 'break' on logger statement."
gregorydavidmartinez Oct 11, 2023
ab11d66
Added mpi check on logger statement.
gregorydavidmartinez Oct 11, 2023
d87653c
Add the possibility to provide an ax for plots
facero Oct 16, 2023
3afda73
Update plot.py
facero Oct 16, 2023
87f2464
Updated code and example following requested changes
facero Oct 17, 2023
d3e37e3
Update plot.py
facero Oct 17, 2023
b5e3a65
Merge pull request #108 from facero/master
JohannesBuchner Oct 17, 2023
0f4c54f
Update integrator.py
adipol-ph Oct 17, 2023
4885906
fix some typos and move new axis feature doc line
JohannesBuchner Oct 17, 2023
55bc56d
Merge pull request #1 from adipol-ph/adipol-ph-patch-1
adipol-ph Oct 17, 2023
4817c4e
fix for https://github.com/JohannesBuchner/UltraNest/issues/1#issueco…
JohannesBuchner Oct 17, 2023
66246e5
Bump version: 3.6.2 → 3.6.3
JohannesBuchner Oct 17, 2023
273c8ba
add requirements for doc building
JohannesBuchner Oct 17, 2023
f3b6e82
more libraries for the tests towards a release
JohannesBuchner Oct 17, 2023
623a69c
Merge pull request #110 from gregorydavidmartinez/master
JohannesBuchner Oct 17, 2023
91a8c17
Merge branch 'master' of github.com:JohannesBuchner/UltraNest
JohannesBuchner Oct 17, 2023
6713546
Merge pull request #109 from adipol-ph/master
JohannesBuchner Oct 18, 2023
9f3cacc
remove extraneous doc and test outputs from sdist
JohannesBuchner Oct 19, 2023
1d6edf7
Bump version: 3.6.3 → 3.6.4
JohannesBuchner Oct 19, 2023
1993bcb
Merge branch 'master' of github.com:JohannesBuchner/UltraNest
JohannesBuchner Oct 19, 2023
f3795df
add 2 missing direction proposals to population step sampler
JohannesBuchner Nov 30, 2023
8c5e5b7
whitespace stripping
JohannesBuchner Nov 30, 2023
35a7565
bug fix: pass on user-provided scale
JohannesBuchner Nov 30, 2023
3bf6ee3
add MaxPrincipleGapAffineLayer and test
JohannesBuchner Dec 29, 2023
a9dcfae
use MaxPrincipleGapAffineLayer by default now
JohannesBuchner Dec 29, 2023
2a4743f
Implementation of the vectorised slice sampler with fixed number of l…
Jan 29, 2024
a3c4ea9
Add docs and remove useless output of the update functions for the Sl…
Feb 8, 2024
dcf9093
Add slice size argument for the scale adaptation
Feb 8, 2024
32eaeba
Add the test code update
Feb 8, 2024
248b5d7
Update the regions documentation of the slice sampler
Feb 8, 2024
8b19d92
Change name of the sampler + setup the default as a static slice width
Feb 9, 2024
1c7f79d
some small modificaton
Feb 9, 2024
dd0d867
Correct the default setup to use the bound of the unit cube instead o…
Feb 13, 2024
51e94cb
add test for speed variable generator
JohannesBuchner Feb 14, 2024
83a1b57
higher tolerance on flaky test
JohannesBuchner Feb 15, 2024
a4ee31f
Bump version: 3.6.4 → 3.6.5
JohannesBuchner Feb 15, 2024
50d1753
Merge branch 'feature-maxprinciplegapaffinelayer'
JohannesBuchner Feb 15, 2024
27479f5
Bump version: 3.6.5 → 4.0.0
JohannesBuchner Feb 15, 2024
a07783d
add to changelog
JohannesBuchner Feb 15, 2024
df379fe
add notes for 4.0.0
JohannesBuchner Feb 15, 2024
0cda068
add first version of auto-calibration of nsteps
JohannesBuchner Dec 29, 2023
3f9c0b2
make Calibrator work and provide more useful plots and prints
JohannesBuchner Dec 31, 2023
3c242d2
turn on step sampler diagnostics by default
JohannesBuchner Dec 31, 2023
9e683aa
test that diagnostics work
JohannesBuchner Dec 31, 2023
7bc5f40
distance was erroneuously in squares, now without squares
JohannesBuchner Jan 1, 2024
a32fc9a
add logging of jump distance to population sampler
JohannesBuchner Feb 14, 2024
b4a4a12
Bump version: 4.0.0 → 4.1.0
JohannesBuchner Feb 15, 2024
889becb
update changelog
JohannesBuchner Feb 15, 2024
5560443
fix rst issue on pypi, by removing reference to classes
JohannesBuchner Feb 15, 2024
118c941
rst formatting
JohannesBuchner Feb 15, 2024
141d15b
add more tests and fix newly identified bugs
JohannesBuchner Feb 15, 2024
1e8e907
test plotting and adapting the proposal; change behaviour of CubeSlic…
JohannesBuchner Feb 15, 2024
5cf75ef
test reverse case in crop_bracket_at_unit_cube, hopefully covering th…
JohannesBuchner Feb 15, 2024
3269c74
test verify_gradient function
JohannesBuchner Feb 15, 2024
3c6445c
add more tests for population stepsamplers
JohannesBuchner Feb 15, 2024
22c7f2d
add test for generate_cube_oriented_direction_scaled
JohannesBuchner Feb 15, 2024
6af3a80
fix https://github.com/JohannesBuchner/UltraNest/issues/116
JohannesBuchner Feb 15, 2024
131f3df
improve front-facing docs
JohannesBuchner Feb 15, 2024
9ef0ec1
improve docs for calibrator
JohannesBuchner Feb 15, 2024
7859976
cross-links in docs to ReactiveNestedCalibrator
JohannesBuchner Feb 15, 2024
8cd160d
typo in sphinx conf
JohannesBuchner Feb 15, 2024
89a15ee
add test for _update_region_bootstrap
JohannesBuchner Feb 15, 2024
134280c
update modoverview instead of API.docs
JohannesBuchner Feb 15, 2024
7d2b1e5
update modoverview.py (API.rst is generated)
JohannesBuchner Feb 15, 2024
03d7e6a
fix broken file
JohannesBuchner Feb 15, 2024
8cba314
remove always-false if
JohannesBuchner Feb 15, 2024
6ff29d1
better test coverage by enabling log=True for step sampler, and (doc)…
JohannesBuchner Feb 15, 2024
7c46420
Bump version: 4.1.0 → 4.1.1
JohannesBuchner Feb 15, 2024
af77614
cleaner test expectations for Exceptions
JohannesBuchner Feb 15, 2024
bf78633
avoid LinAlgError in AffineLayer.optimize
JohannesBuchner Feb 15, 2024
036614e
Bump version: 4.1.1 → 4.1.2
JohannesBuchner Feb 16, 2024
7eec8c7
use temporary files for testing, because windows testing breaks
JohannesBuchner Feb 16, 2024
b652868
Bump version: 4.1.2 → 4.1.3
JohannesBuchner Feb 16, 2024
2966747
test had mistake in path filename
JohannesBuchner Feb 16, 2024
2310695
Bump version: 4.1.3 → 4.1.4
JohannesBuchner Feb 17, 2024
152f31d
Bump version: 4.1.4 → 4.1.5
JohannesBuchner Feb 17, 2024
1b19db1
correct dates
JohannesBuchner Feb 18, 2024
2111ea4
Change some notation and how the code was split between different fun…
Feb 23, 2024
eb75841
Clarify the count of the likelihood call that are not used
Feb 23, 2024
51268a2
Remove a file use for testing
Feb 23, 2024
1555cb5
correct typo
Feb 26, 2024
f432b3d
Finish to correct the previous typo
Feb 26, 2024
cfa3cdd
Correct a typo in the update of the slice bounds, the code was only s…
Feb 28, 2024
6a0286a
Remove the assertion that the live point number should be larger than…
Feb 29, 2024
503bc3e
avoid empty warnings; strip whitespace
JohannesBuchner Mar 3, 2024
bb067d2
Bump version: 4.1.5 → 4.1.6
JohannesBuchner Mar 3, 2024
00338bb
closes https://github.com/JohannesBuchner/UltraNest/issues/123
JohannesBuchner Mar 5, 2024
b568f24
Bump version: 4.1.6 → 4.1.7
JohannesBuchner Mar 5, 2024
0199c87
implement HDI
JohannesBuchner Mar 19, 2024
db45aee
simplify code
JohannesBuchner Mar 19, 2024
10015fc
add simpler alternative to MaxPrincipleGapAffineLayer
JohannesBuchner Mar 20, 2024
a7bdb91
remove the last mention of Ellislice in test_popstepsampling.py and a…
Mar 20, 2024
8272923
addressing algorithm performance regression, reverting default to Aff…
JohannesBuchner Mar 20, 2024
cd5b02e
switch default to new local covariance, LocalAffineLayer
JohannesBuchner Mar 21, 2024
2805fa6
update Changelog
JohannesBuchner Mar 21, 2024
19a98c5
fix to avoid NaNs, wrong counting (rejection rate vs acceptance rate)…
JohannesBuchner Mar 22, 2024
ef167dd
corner plot style with higher signal-to-ink ratio
JohannesBuchner Mar 22, 2024
a626571
Bump version: 4.1.7 → 4.2.0
JohannesBuchner Mar 22, 2024
b0ca4d7
Test implementation of a reversibility test for the vectorized slice …
Apr 17, 2024
e049f15
Merge with the last version from github and tentative implementation …
Apr 17, 2024
b5f4e53
Add a sanity check for the vectorised slice sampler, just checking th…
Apr 18, 2024
d106d72
Few changes, mainly docstring and comment in the code
Apr 22, 2024
c8e7adf
Merge pull request #118 from njzifjoiez/fixed-size-vectorised-slice-s…
JohannesBuchner Apr 22, 2024
8137ff7
Bump version: 4.2.0 → 4.3.0
JohannesBuchner Apr 22, 2024
969a66a
An attempt to raise an error if the parameter names forwarded to ultr…
svaverbe May 21, 2024
5445ac0
Merge pull request #133 from svaverbe/patch-1
JohannesBuchner May 21, 2024
ca3a099
use np.int_ instead of np.int_t; improve docs
JohannesBuchner May 26, 2024
4e9f375
try to fix cython int type error; add github CI for quick checks
JohannesBuchner May 26, 2024
18db9fe
skip testing pathsampler in CI
JohannesBuchner May 26, 2024
86f26b1
avoid installing lots of deps
JohannesBuchner May 26, 2024
066def8
[ci] pycodestyle settings
JohannesBuchner May 26, 2024
1b6a887
[ci] pytest args
JohannesBuchner May 26, 2024
6da81d8
skip slow tests
JohannesBuchner May 26, 2024
074accb
remove unnecessay setup.cfg sections
JohannesBuchner May 26, 2024
4ea4a0e
Bump version: 4.3.0 → 4.3.1
JohannesBuchner May 26, 2024
7b01abe
keep number of printed lines consistent
JohannesBuchner May 26, 2024
dacc8dc
fix some string syntax issues in docs, and apply isort
JohannesBuchner May 27, 2024
c2054ef
make flake8 happy
JohannesBuchner May 28, 2024
188895a
docs: draft of results dict explanation
jacopok May 23, 2024
81d87f1
Update draft of results dictionary documentation
jacopok May 28, 2024
d84ddfe
docs: update information on logged files
jacopok May 28, 2024
65d5ca0
add details on the computation of logzerr and ess
jacopok May 28, 2024
629900a
docs: small formatting fixes
jacopok May 28, 2024
c7e66aa
docs: small tweaks to results explanation
jacopok May 28, 2024
c0006be
fix whitespace
jacopok May 29, 2024
6a61fe1
split long lines
jacopok May 29, 2024
af444ea
Comply with pydocstyle
jacopok May 29, 2024
99a2440
Merge pull request #138 from jacopok/document-results
JohannesBuchner May 29, 2024
653d134
rst formatting of lists
JohannesBuchner May 29, 2024
10e1320
prettify the bottom of the README, add contributors
JohannesBuchner May 29, 2024
f0fb12a
rst formatting
JohannesBuchner May 29, 2024
c217841
rst formatting 2
JohannesBuchner May 29, 2024
6c49a7e
added one more contributor
JohannesBuchner May 29, 2024
766392c
doc typo
JohannesBuchner May 29, 2024
ed0dd46
first step to support numpy 2.0
JohannesBuchner Jun 20, 2024
bceff1a
force numpy<2 for now, still errors:
JohannesBuchner Jun 20, 2024
a77b985
Bump version: 4.3.1 → 4.3.2
JohannesBuchner Jun 20, 2024
aae8967
Only import scipy when used
MJKirk Jun 28, 2024
be59148
Merge pull request #141 from MJKirk/conditional-scipy-import
JohannesBuchner Jul 2, 2024
5387e8d
doc: make pydoclint happy
JohannesBuchner Oct 23, 2024
4accb02
Merge branch 'master' of github.com:JohannesBuchner/UltraNest
JohannesBuchner Oct 23, 2024
49401c3
migrate to numpy>=2, using explicit int32 dtype
JohannesBuchner Oct 25, 2024
1d1df26
switch to 64 bit integers
JohannesBuchner Oct 25, 2024
215c1cc
doc: make pydocstyle happy
JohannesBuchner Oct 25, 2024
ebce8ec
remove prints
JohannesBuchner Oct 25, 2024
7b8141b
compile also vol_prefactor
JohannesBuchner Oct 25, 2024
0692ec6
doc: make pydocstyle happy
JohannesBuchner Oct 25, 2024
4748f00
Bump version: 4.3.2 → 4.3.3
JohannesBuchner Oct 26, 2024
760da82
remove numpy<2 requirement
JohannesBuchner Oct 26, 2024
53d6110
Bump version: 4.3.3 → 4.3.4
JohannesBuchner Oct 26, 2024
7681e7d
[ci] reinstall numpy to solve "E ValueError: numpy.dtype size chan…
JohannesBuchner Oct 26, 2024
fbde672
reverting to force numpy<2
JohannesBuchner Oct 26, 2024
5fd2305
remove requiring old numpy
JohannesBuchner Oct 27, 2024
7ac7290
[ci] upgrade base image & don't requiring old numpy version in setup.py
JohannesBuchner Dec 12, 2024
d27d4ae
[ci] do not install python packages via apt
JohannesBuchner Dec 12, 2024
6fe41b0
[ci] sudo install pip
JohannesBuchner Dec 12, 2024
755f52b
[ci] try installing to user directory instead
JohannesBuchner Dec 12, 2024
83dd88f
[ci] remove editable install
JohannesBuchner Dec 12, 2024
881d3f5
make flaky test deterministic; fix error if nsteps is passed
JohannesBuchner Dec 12, 2024
99ebb65
[ci] remove python 3.7 which does not work anymore
JohannesBuchner Dec 12, 2024
9d59a51
Merge branch 'feature-numpy2'
JohannesBuchner Dec 13, 2024
1a9fd91
Bump version: 4.3.4 → 4.4.0
JohannesBuchner Dec 13, 2024
50f9a58
add changelog until 4.3
JohannesBuchner Dec 13, 2024
90d7ac8
bug fix: LocalAffineLayer reverted back to AffineLayer after the firs…
JohannesBuchner Jan 22, 2025
2ecc1c1
doc typos
JohannesBuchner Jan 23, 2025
b127a51
doc fixes
JohannesBuchner Jan 23, 2025
dbf7446
fix calibrator.py for issue#145
Lowerce Dec 11, 2025
f5ba3d7
add test for calibrator.py
Lowerce Dec 11, 2025
ebeb2f1
Address requested changes for PR #174
Lowerce Dec 11, 2025
547a1cf
Follow the style requirements of flake8
Lowerce Dec 11, 2025
c7f011d
Restore the plot function
Lowerce Dec 11, 2025
7b934ed
Merge pull request #174 from Lowerce/cali-fix
JohannesBuchner Dec 11, 2025
f5ec27a
address numpy 2.4 removals
JohannesBuchner Jan 20, 2026
0a35103
doc formatting
JohannesBuchner Jan 20, 2026
4ccfcfb
Bump version: 4.4.0 → 4.5.0
JohannesBuchner Jan 20, 2026
46120ed
[ci] give dirichlet fit more runtime
JohannesBuchner Jan 20, 2026
c8a441c
change quantile computation, print gave an error
JohannesBuchner Jan 22, 2026
29d1f83
Corrected comment that had slipped in from a different example
tom-wood Feb 27, 2026
c24ba60
Merge pull request #179 from tom-wood/intrinsic-dist-tutorial-doc
JohannesBuchner Feb 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 16 additions & 6 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,32 +6,42 @@ jobs:
build:

docker:
- image: circleci/python:3.7.0
- image: cimg/base:2024.12
#- image: cimg/base:2021.04
#- image: circleci/python:3.13.1

steps:

- checkout

- run: sudo apt-get update -y
- run: sudo apt-get install -y python3-dev python3-mpi4py python3-h5py python3-numpy python3-scipy python3-matplotlib python3-pandas openmpi-common libopenmpi-dev libhdf5-dev
- run: sudo ln -s /usr/lib/python3/dist-packages/numpy/core/include/numpy/ /usr/include/numpy
- run: sudo apt-get install -y python3-pip openmpi-common libopenmpi-dev liblapack-dev libopenblas-dev libhdf5-dev

- run: python3 -m pip install --user -r pip-requirements.txt pytest-html coveralls pyyaml mpi4py pydocstyle pycodestyle flake8

- run: sudo pip3 install -r pip-requirements.txt pytest-html coveralls pyyaml mpi4py
- run: mkdir -p test-reports

- run: python3 setup.py install --user
- run: python3 -m pip install --user .
- run: for i in examples/test*.py; do python3 $i --help; done

- run: coverage3 run --parallel-mode setup.py test
- run: |
echo "backend: Agg" > matplotlibrc

- run: python3 examples/testfeatures.py
- run: python3 examples/rundirichlet.py
- run:
no_output_timeout: 20m
command: python3 examples/rundirichlet.py
- run: coverage3 run --parallel-mode docs/simple.py
- run: coverage3 run --parallel-mode docs/gauss.py --x_dim=1 --log_dir=tmp
- run: coverage3 combine
- run: coverage3 report --include="$PWD/*" --omit="$PWD/.eggs/*"
- run: coverage3 html --include="$PWD/*" --omit="$PWD/.eggs/*" && mv htmlcov test-reports

- run: flake8 $(ls ultranest/*.py | grep -Ev '^ultranest/(flatnuts|dychmc|dyhmc).py')
- run: pycodestyle $(ls ultranest/*.py | grep -Ev '^ultranest/(flatnuts|dychmc|dyhmc).py')
- run: pydocstyle $(ls ultranest/*.py | grep -Ev '^ultranest/(flatnuts|dychmc|dyhmc).py')

- run: coveralls

- store_test_results:
Expand Down
44 changes: 44 additions & 0 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# This workflow will install Python dependencies, run tests and lint with a variety of Python versions
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions

name: build

on:
push:
pull_request:
schedule:
- cron: '42 4 5,20 * *'

jobs:
build:

runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version: [3.8, 3.9, "3.10", 3.11, 3.12]

steps:
- uses: actions/checkout@v2
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}

- name: Install dependencies
run: python -m pip install cython numpy scipy matplotlib corner getdist h5py pandas flake8 pycodestyle pydocstyle pytest-html pytest-xdist

- name: Lint with flake8
run: flake8 $(ls ultranest/*.py | grep -Ev '^ultranest/(flatnuts|dychmc|dyhmc|pathsampler).py')

- name: Check code style
run: pycodestyle $(ls ultranest/*.py | grep -Ev '^ultranest/(flatnuts|dychmc|dyhmc|pathsampler).py')

- name: Check doc style
run: pydocstyle $(ls ultranest/*.py | grep -Ev '^ultranest/(flatnuts|dychmc|dyhmc|pathsampler).py')

- name: Install package
run: python -m pip install -e .

- name: Test with pytest
run: pytest -v -k 'not SLOW'
75 changes: 75 additions & 0 deletions HISTORY.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,81 @@
Release Notes
==============

4.4.0 (2024-12-13)
------------------
* Compatible with numpy version 2 and above. Any remaining errors like "ValueError: numpy.dtype size changed, may indicate binary incompatibility. Expected 96 from C header, got 88 from PyObject" are due to ultranest and numpy being installed with different versions. Reinstall numpy and ultranest in that case.

4.3.0 (2024-04-12)
------------------
* added :py:class:`ultranest.popstepsampler.PopulationSimpleSliceSampler`: Vectorized, fixed-batch size slice sampler. (`PR <https://github.com/JohannesBuchner/UltraNest/pull/118>`_ by Benjamin Beauchesne)
* validation of passed parameter names (`PR <https://github.com/JohannesBuchner/UltraNest/pull/133>`_ by svaverbe)
* documentation improvements, including documenting results dictionary (`PR <https://github.com/JohannesBuchner/UltraNest/pull/138>`_ by Jacopo Tissino)
* make scipy actually optional (`PR <https://github.com/JohannesBuchner/UltraNest/pull/141>`_ by Matthew Kirk)
* linting

4.2.0 (2024-02-15)
------------------

* new :py:class:`ultranest.mlfriends.LocalAffineLayer` for metric learning, set as default (see `issue 124 <https://github.com/JohannesBuchner/UltraNest/issues/124>`_)
* add Highest Density Interval function (ultranest.plot.highest_density_interval_from_samples)
* corner plot style with higher signal-to-ink ratio.
* bug fixes in popstepsampler

4.1.0 (2024-02-15)
------------------

* add number of steps calibrator :py:class:`ultranest.calibrator.ReactiveNestedCalibrator`
* add relative jump distance diagnostic for step samplers
* make population step samplers more consistent with other step samplers

4.0.0 (2024-02-15)
------------------

* new :py:class:`ultranest.mlfriends.MaxPrincipleGapAffineLayer` for metric learning, set as default

3.6.5 (2023-07-18)
------------------

* documentation improvements
* logging with MPI fixes `by adipol-ph <https://github.com/JohannesBuchner/UltraNest/issues/109>`_ and `by gregorydavidmartinez <https://github.com/JohannesBuchner/UltraNest/issues/110>`_
* more flexible plotting `by facero <https://github.com/JohannesBuchner/UltraNest/issues/108>`_

3.6.0 (2023-06-22)
------------------

* add PopulationRandomWalkSampler: vectorized Gaussian random walks for GPU/JAX-powered likelihoods
* limit initial widening to escape plateau (issue #81)


3.5.0 (2022-09-05)
------------------

* add hot-resume: resume from a similar fit (with different data)
* fix post_summary.csv column order
* fix build handling for non-pip systems (pyproject.toml)
* more efficient handling of categorical variables


3.4.0 (2022-04-05)
------------------

* add differential evolution proposal for slice sampling, recommend it
* fix revert of step sampler when run out of constraint, in MPI
* add SimpleRegion: axis-aligned ellipsoidal for very high-d.


3.3.3 (2021-09-17)
------------------

* pretty marginal posterior plot to stdout
* avoid non-terminations when logzerr cannot be reached
* add RobustEllipsoidRegion: ellipsoidal without MLFriends for high-d.
* add WrappingEllipsoid: for additional rejection.
* bug fixes on rank order test
* add resume-similar
* modular step samplers


3.0.0 (2020-10-03)
------------------

Expand Down
13 changes: 13 additions & 0 deletions MANIFEST.in
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,21 @@ include README.rst
include requirements_dev.txt
include pip-requirements.txt

recursive-include * *.pyx
recursive-include * *.pxd

recursive-include tests *
recursive-exclude * __pycache__
recursive-exclude * *.py[co]
recursive-exclude * *.c
recursive-exclude * *.orig
recursive-exclude * *.pdf

recursive-include docs *.rst conf.py Makefile make.bat *.jpg *.png *.gif

# remove extraneous doc and test outputs
prune docs/static/mcmc-demo
prune tests/reports
prune tests/.pytype
recursive-exclude tests conetestdata.npz
recursive-exclude tests region-stuck*.npz
31 changes: 23 additions & 8 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
.PHONY: clean clean-test clean-pyc clean-build docs help
.PHONY: clean clean-test clean-pyc clean-build docs servedocs help install release release-test dist
.DEFAULT_GOAL := help

define BROWSER_PYSCRIPT
Expand Down Expand Up @@ -43,6 +43,7 @@ clean-build: ## remove build artifacts
clean-pyc: ## remove Python file artifacts
find . -name '*.pyc' -exec rm -f {} +
find . -name '*.pyo' -exec rm -f {} +
find . -name '*.pyx.py' -exec rm -f {} +
find . -name '*~' -exec rm -f {} +
find . -name '__pycache__' -exec rm -fr {} +
find . -name '*.so' -exec rm -f {} +
Expand All @@ -58,15 +59,22 @@ clean-doc:
rm -rf docs/build
nbstripout docs/*.ipynb

lint: ## check style with flake8
flake8 ultranest tests
SOURCES := $(shell ls ultranest/*.py | grep -Ev '^ultranest/(flatnuts|dychmc|dyhmc|pathsampler).py' | grep -v .pyx.py)

lint: ${SOURCES} ## check style
flake8 ${SOURCES}
pycodestyle ${SOURCES}
pydocstyle ${SOURCES}

test: ## run tests quickly with the default Python
PYTHONPATH=. pytest

test-all: ## run tests on every Python version with tox
tox

build:
$(PYTHON) setup.py build_ext --inplace

coverage: ## check code coverage quickly with the default Python
PYTHONPATH=. coverage run --source ultranest -m pytest
coverage report -m
Expand All @@ -76,27 +84,34 @@ coverage: ## check code coverage quickly with the default Python
docs: ## generate Sphinx HTML documentation, including API docs
rm -f docs/ultranest.rst
rm -f docs/modules.rst
rm -f docs/API.rst
python3 setup.py build_ext --inplace
#nbstripout docs/*.ipynb
sphinx-apidoc -H API -o docs/ ultranest
cd docs; python3 modoverview.py
$(MAKE) -C docs clean
$(MAKE) -C docs html O=-jauto
sed --in-place '/href="ultranest\/mlfriends.html"/d' docs/build/html/_modules/index.html
sed --in-place '/href="ultranest\/stepfuncs.html"/d' docs/build/html/_modules/index.html
$(BROWSER) docs/build/html/index.html

servedocs: docs ## compile the docs watching for changes
watchmedo shell-command -p '*.rst' -c '$(MAKE) -C docs html' -R -D .

release: dist ## package and upload a release
release-test: install
rm -rf logs/features-*
echo testfeatures/runsettings-*-iterated.json | xargs --max-args=1 mpiexec -np 3 coverage run --parallel-mode examples/testfeatures.py
bash -c 'echo $$RANDOM' | xargs mpiexec -np 5 coverage run --parallel-mode examples/testfeatures.py --random --seed
twine upload -s dist/*.tar.gz
grep -v iterated examples/runfeatures.sh | sed 's,python3,mpiexec -np 5 coverage3 run --parallel-mode,g' | OMP_NUM_THREADS=4 bash
grep iterated examples/runfeatures.sh | sed 's,python3,mpiexec -np 3 coverage3 run --parallel-mode,g' | OMP_NUM_THREADS=4 bash
#echo testfeatures/runsettings-*-iterated.json | xargs --max-args=1 mpiexec -np 3 coverage run --parallel-mode examples/testfeatures.py
#grep -- --random examples/runfeatures.sh | sed s,python3,,g | xargs -rt --max-lines=1 mpiexec -np 5 coverage run --parallel-mode

release: release-test dist ## package and upload a release
twine upload --verbose dist/*.tar.gz

dist: clean ## builds source and wheel package
$(PYTHON) setup.py sdist
$(PYTHON) setup.py bdist_wheel
ls -l dist

install: clean ## install the package to the active Python's site-packages
$(PYTHON) setup.py install
$(PYTHON) setup.py install --user
64 changes: 43 additions & 21 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -71,33 +71,25 @@ Features
* Can control the run programmatically and check status
* Reasonable defaults, but customizable
* Thoroughly tested with many unit and integration tests
* NEW: allows likelihood functions written in `Python <https://github.com/JohannesBuchner/UltraNest/tree/master/languages/python>`_, `C <https://github.com/JohannesBuchner/UltraNest/tree/master/languages/c>`_, `C++ <https://github.com/JohannesBuchner/UltraNest/tree/master/languages/c%2B%2B>`_, `Fortran <https://github.com/JohannesBuchner/UltraNest/tree/master/languages/fortran>`_, `Julia <https://github.com/JohannesBuchner/UltraNest/tree/master/languages/julia>`_ and `R <https://github.com/JohannesBuchner/UltraNest/tree/master/languages/r>`_
* NEW: supports likelihood functions written in `Python <https://github.com/JohannesBuchner/UltraNest/tree/master/languages/python>`_, `C <https://github.com/JohannesBuchner/UltraNest/tree/master/languages/c>`_, `C++ <https://github.com/JohannesBuchner/UltraNest/tree/master/languages/c%2B%2B>`_, `Fortran <https://github.com/JohannesBuchner/UltraNest/tree/master/languages/fortran>`_, `Julia <https://github.com/JohannesBuchner/UltraNest/tree/master/languages/julia>`_ and `R <https://github.com/JohannesBuchner/UltraNest/tree/master/languages/r>`_

* Robust exploration easily handles:

* Degenerate parameter spaces such as bananas or tight correlations
* Multiple modes/solutions in the parameter space
* Robust, parameter-free MLFriends algorithm
(metric learning RadFriends, Buchner+14,+19), with new improvements
(region follows new live points, clustering improves metric iteratively).
(region follows new live points, clustering improves metric iteratively,
NEW in v4.0: refined local metric).
* High-dimensional problems with hit-and-run sampling
* Wrapped/circular parameters, derived parameters
* Fast-slow parameters

* strategic nested sampling

* can vary (increase) number of live points (akin to dynamic nested sampling, but with different targets)
* can sample clusters optimally (e.g., at least 50 points per cluster/mode/solution)
* can target minimizing parameter estimation uncertainties
* can target a desired evidence uncertainty threshold
* can target a desired number of effective samples
* or any combination of the above
* Robust ln(Z) uncertainties by bootstrapping live points.

* Lightweight and fast

* some functions implemented in Cython
* `vectorized likelihood function calls <https://johannesbuchner.github.io/UltraNest/performance.html>`__
* `vectorized likelihood function calls <https://johannesbuchner.github.io/UltraNest/performance.html>`__,
optimally supporting models with deep learning emulators
* Use multiple cores, fully parallelizable from laptops to computing clusters
* `MPI support <https://johannesbuchner.github.io/UltraNest/performance.html>`__

Expand All @@ -107,20 +99,28 @@ Features
* Publication-ready visualisations
* Corner plots, run and parameter exploration diagnostic plots
* Checkpointing and resuming, even with different number of live points
* NEW: `Warm-start: resume from modified data / model <https://johannesbuchner.github.io/UltraNest/example-warmstart.html>`__
* `Warm-start: resume from modified data / model <https://johannesbuchner.github.io/UltraNest/example-warmstart.html>`__

Usage
^^^^^
* strategic nested sampling

`Get started! <https://johannesbuchner.github.io/UltraNest/using-ultranest.html>`_
* can vary (increase) number of live points (akin to dynamic nested sampling, but with different targets)
* can sample clusters optimally (e.g., at least 50 points per cluster/mode/solution)
* can target minimizing parameter estimation uncertainties
* can target a desired evidence uncertainty threshold
* can target a desired number of effective samples
* or any combination of the above
* Robust ln(Z) uncertainties by bootstrapping live points.

Read the full documentation with tutorials at:
Usage
^^^^^

https://johannesbuchner.github.io/UltraNest/
* `Get started! <https://johannesbuchner.github.io/UltraNest/using-ultranest.html>`_

`API Reference: <https://johannesbuchner.github.io/UltraNest/ultranest.html#ultranest.integrator.ReactiveNestedSampler>`_.
* Read the full documentation with tutorials at:

`Code repository: https://github.com/JohannesBuchner/UltraNest/ <https://github.com/JohannesBuchner/UltraNest/>`_
* https://johannesbuchner.github.io/UltraNest/
* `API Reference <https://johannesbuchner.github.io/UltraNest/ultranest.html#ultranest.integrator.ReactiveNestedSampler>`_.
* `Code repository: https://github.com/JohannesBuchner/UltraNest/ <https://github.com/JohannesBuchner/UltraNest/>`_

Licence
^^^^^^^
Expand All @@ -130,3 +130,25 @@ How to `cite UltraNest <https://johannesbuchner.github.io/UltraNest/issues.html#
GPLv3 (see LICENCE file). If you require another license, please contact me.

The cute hedgehog icon was made by `Freepik <https://www.flaticon.com/authors/freepik>`_.
It symbolises UltraNest's approach of carefully walking up a likelihood,
ready to defend against any encountered danger.

Contributors
^^^^^^^^^^^^

* Nicholas Susemiehl
* Quinn Gao
* Sigfried Vanaverbeke
* Warrick Ball
* Adipol Phosrisom
* Pieter Vuylsteke
* Alexander Harvey Nitz
* Gregory David Martinez
* Grigorii Smirnov-Pinchukov
* Fabio F Acero
* Jacopo Tissino
* Benjamin Beauchesne
* Kyle Barbary (some ellipsoid code adopted from https://github.com/kbarbary/nestle)
* Adam Moss (some architecture and parallelisation adopted from https://github.com/adammoss/nnest)
* Josh Speagle (some visualisations adopted from https://github.com/joshspeagle/dynesty/)
* Johannes Buchner
Loading