Skip to content

Commit b98ce8a

Browse files
Merge remote-tracking branch 'origin/master' into safir_updates
2 parents 46e1b98 + 5d12267 commit b98ce8a

10,159 files changed

Lines changed: 1425988 additions & 2229 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎.appveyor.yml‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ version: '{build}'
1414
os:
1515
- Visual Studio 2022
1616
- Visual Studio 2019
17-
- Visual Studio 2015
1817

1918
platform:
2019
- x64

‎.git-blame-ignore-revs‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# change to Apache 2.0 license
2+
47d1aa5f302c5b6b579de176535e01aa97d1ff27
3+
# run clang-tidy --modernize-use-override
4+
8af125617a113724f52d26e991bfc6c36abb952f
5+
# manual fixes in stir_experimental and clang-tidy modernize-use-override
6+
c5a1c6bc29d3f24d8fdb5c198946ec9580947257
7+
# stir_maintenance run pre-commit
8+
88f4ce70929a41c745fc39030e90c87bfaf046b7

‎.github/workflows/build-test.yml‎

Lines changed: 85 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ jobs:
7070
compiler: gcc
7171
compiler_version: 12
7272
cuda_version: "0"
73-
BUILD_FLAGS: "-DSTIR_OPENMP=ON -DCMAKE_CXX_STANDARD=14"
73+
BUILD_FLAGS: "-DSTIR_OPENMP=ON -DCMAKE_CXX_STANDARD=20"
7474
BUILD_TYPE: "RelWithDebInfo"
7575
parallelproj: "ON"
7676
ROOT: "OFF"
@@ -79,14 +79,14 @@ jobs:
7979
compiler: gcc
8080
compiler_version: 12
8181
cuda_version: "12.1.0"
82-
BUILD_FLAGS: "-DSTIR_OPENMP=ON -DCMAKE_CXX_STANDARD=14"
82+
BUILD_FLAGS: "-DSTIR_OPENMP=ON -DCMAKE_CXX_STANDARD=17"
8383
BUILD_TYPE: "Release"
8484
parallelproj: "ON"
8585
ROOT: "OFF"
8686
ITK: "ON"
8787
- os: macOS-latest
8888
compiler: gcc
89-
compiler_version: 11
89+
# compiler_version: 11
9090
cuda_version: "0"
9191
BUILD_FLAGS: "-DSTIR_OPENMP=OFF"
9292
parallelproj: "OFF"
@@ -162,9 +162,6 @@ jobs:
162162
CXX=${CXX}-${{ matrix.compiler_version }}
163163
fi
164164
if test 'XX${{ matrix.os }}' = 'XXmacOS-latest'; then
165-
# need to force XCode version for the moment due to a linker bug
166-
# see https://github.com/UCL/STIR/issues/1103
167-
echo DEVELOPER_DIR="/Applications/Xcode_14.1.app/Contents/Developer" >> $GITHUB_ENV
168165
if test 'XX${{ matrix.compiler }}' = 'XXclang'; then
169166
brew install llvm@${{ matrix.compiler_version }}
170167
if test XX${HOMEBREW_PREFIX} = XX; then
@@ -211,7 +208,7 @@ jobs:
211208
sudo apt install libinsighttoolkit5-dev
212209
fi
213210
# free up some disk space
214-
sudo apt clean
211+
apt autoremove --purge && sudo apt clean
215212
PYTHON_EXECUTABLE=$(which python3)
216213
;;
217214
(macOS*)
@@ -255,12 +252,15 @@ jobs:
255252
cmake .. -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} ${extra_args}
256253
cmake --build . --target install --config Release
257254
cd ../..
255+
rm -rf parallelproj
258256
fi
259257
260258
# Install ROOT (warning: currently only valid on Ubuntu)
261259
if test "${{matrix.ROOT}}XX" == "ONXX"; then
262-
wget https://root.cern/download/root_v6.24.02.Linux-ubuntu20-x86_64-gcc9.3.tar.gz
263-
tar -xzvf root_v6.24.02.Linux-ubuntu20-x86_64-gcc9.3.tar.gz
260+
ROOT_file=root_v6.28.12.Linux-ubuntu20-x86_64-gcc9.4.tar.gz
261+
wget https://root.cern/download/"$ROOT_file"
262+
tar -xzvf "$ROOT_file"
263+
rm "$ROOT_file"
264264
source root/bin/thisroot.sh
265265
fi
266266
@@ -330,6 +330,12 @@ jobs:
330330
source ${GITHUB_WORKSPACE}/my-env/bin/activate
331331
cmake --build . -j 2 --config ${BUILD_TYPE}} --target install
332332
333+
# Enable tmate debugging of manually-triggered workflows if the input option was provided
334+
- name: Setup tmate session if triggered
335+
uses: mxschmitt/action-tmate@v3
336+
timeout-minutes: 15
337+
if: ${{ github.event_name == 'workflow_dispatch' && inputs.debug_enabled == 'true' }}
338+
333339
- name: ctest
334340
shell: bash
335341
env:
@@ -344,7 +350,10 @@ jobs:
344350
fi
345351
# don't run all of them in Debug mode as it takes too long
346352
if test ${BUILD_TYPE} = Debug; then
347-
EXCLUDE_Debug="test_data_processor_projectors|test_export_array|test_ArcCorrection"
353+
# Also excluding test_PoissonLogLikelihoodWithLinearModelForMeanAndListModeDataWithProjMatrixByBin
354+
# as it is a bit slow. Moreover it fails on MacOS (Debug)
355+
# https://github.com/UCL/STIR/pull/1418#issuecomment-2109518132
356+
EXCLUDE_Debug="test_data_processor_projectors|test_export_array|test_ArcCorrection|test_PoissonLogLikelihoodWithLinearModelForMeanAndListModeWithProjMatrixByBin"
348357
EXCLUDE="${EXCLUDE_Debug}${EXCLUDE:+"|"}${EXCLUDE}"
349358
fi
350359
# prepend -E
@@ -354,47 +363,20 @@ jobs:
354363
# execute tests
355364
ctest --output-on-failure -C ${BUILD_TYPE} ${EXCLUDE}
356365
357-
- name: recon_test_pack
358-
shell: bash
359-
env:
360-
BUILD_FLAGS: ${{ matrix.BUILD_FLAGS }}
361-
BUILD_TYPE: ${{ matrix.BUILD_TYPE }}
362-
run: |
363-
set -ex;
364-
PATH=${CMAKE_INSTALL_PREFIX}/bin:$PATH
365-
cd ${GITHUB_WORKSPACE}/recon_test_pack
366-
./run_tests.sh --nointbp
367-
# don't run all of them in Debug mode as it takes too long
368-
if test ${BUILD_TYPE} != Debug; then
369-
./run_test_simulate_and_recon.sh
370-
./run_test_listmode_recon.sh
371-
./run_test_simulate_and_recon_with_motion.sh
372-
./run_scatter_tests.sh
373-
./run_test_zoom_image.sh
374-
./run_ML_norm_tests.sh
375-
if test "${{matrix.ROOT}}XX" == "ONXX"; then ./run_root_GATE.sh; fi
376-
./run_tests_modelling.sh
377-
cd ${GITHUB_WORKSPACE}/recon_test_pack/SPECT
378-
./run_SPECT_tests.sh
379-
fi
380-
381-
- name: Upload log files for debugging
382-
uses: actions/upload-artifact@v3
366+
- name: Upload ctest log files for debugging
367+
uses: actions/upload-artifact@v4
383368
if: failure()
384369
with:
385-
name: recon_test_pack_log_files-${{ matrix.os }}-${{ matrix.compiler }}${{ matrix.compiler_version }}-cuda${{ matrix.cuda_version }}-${{ matrix.BUILD_TYPE }}-pp=${{ matrix.parallelproj }}-ROOT=${{ matrix.ROOT }}
386-
path: ${{ github.workspace }}/recon_test_pack/**/*.log
387-
${{ github.workspace }}/recon_test_pack/**/my_*v
388-
${{ github.workspace }}/recon_test_pack/**/my_*s
370+
name: ctest_log_files-${{ matrix.os }}-${{ matrix.compiler }}${{ matrix.compiler_version }}-cuda${{ matrix.cuda_version }}-${{ matrix.BUILD_TYPE }}-pp=${{ matrix.parallelproj }}-ROOT=${{ matrix.ROOT }}
371+
path: |
372+
${{ github.workspace }}/build/**/*.log
373+
${{ github.workspace }}/build/**/*.hv
374+
${{ github.workspace }}/build/**/*.v
375+
${{ github.workspace }}/build/**/*.hs
376+
${{ github.workspace }}/build/**/*.s
389377
retention-days: 7
390378

391-
# Enable tmate debugging of manually-triggered workflows if the input option was provided
392-
- name: Setup tmate session if triggered
393-
uses: mxschmitt/action-tmate@v3
394-
timeout-minutes: 15
395-
if: ${{ github.event_name == 'workflow_dispatch' && inputs.debug_enabled == 'true' }}
396-
397-
- name: examples
379+
- name: C++ examples with STIR_LOCAL
398380
shell: bash
399381
run: |
400382
set -ex;
@@ -416,14 +398,70 @@ jobs:
416398
${EXE_LOC}/demo4_obj_fun demo4_obj_fun.par
417399
${EXE_LOC}/demo5_line_search demo5_line_search.par
418400
401+
- name: remove build
402+
shell: bash
403+
# remove to create some disk space
404+
run: |
405+
set -x
406+
cd ${GITHUB_WORKSPACE}
407+
df -h .
408+
rm -rf ./build
409+
df -h .
410+
411+
- name: C++ examples with installed STIR
412+
shell: bash
413+
run: |
414+
set -ex;
419415
# build and run C++/using_installed_STIR
416+
PATH=${CMAKE_INSTALL_PREFIX}/bin:$PATH
420417
cd ${GITHUB_WORKSPACE}/examples/C++/using_installed_STIR
421418
cmake -S . -B build/ -DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_INSTALL_PREFIX}
422419
cmake --build build/ --config Release --target install
423420
# run demo
424421
demo_create_image
425422
# just check if its output makes sense
426423
list_image_info test.hv
424+
rm -rf build
425+
426+
- name: recon_test_pack
427+
shell: bash
428+
env:
429+
BUILD_FLAGS: ${{ matrix.BUILD_FLAGS }}
430+
BUILD_TYPE: ${{ matrix.BUILD_TYPE }}
431+
run: |
432+
set -ex;
433+
PATH=${CMAKE_INSTALL_PREFIX}/bin:$PATH
434+
cd ${GITHUB_WORKSPACE}/recon_test_pack
435+
./run_tests.sh --nointbp
436+
# don't run all of them in Debug mode as it takes too long
437+
if test ${BUILD_TYPE} != Debug; then
438+
./run_test_simulate_and_recon.sh
439+
./run_test_listmode_recon.sh
440+
./run_test_simulate_and_recon_with_motion.sh
441+
./run_scatter_tests.sh
442+
./run_test_zoom_image.sh
443+
./run_ML_norm_tests.sh
444+
if test "${{matrix.ROOT}}XX" == "ONXX"; then ./run_root_GATE.sh; fi
445+
./run_tests_modelling.sh
446+
cd ${GITHUB_WORKSPACE}/recon_test_pack/SPECT
447+
./run_SPECT_tests.sh
448+
fi
449+
450+
- name: Upload recon_test_pack log files for debugging
451+
uses: actions/upload-artifact@v4
452+
if: failure()
453+
with:
454+
name: recon_test_pack_log_files-${{ matrix.os }}-${{ matrix.compiler }}${{ matrix.compiler_version }}-cuda${{ matrix.cuda_version }}-${{ matrix.BUILD_TYPE }}-pp=${{ matrix.parallelproj }}-ROOT=${{ matrix.ROOT }}
455+
path: |
456+
${{ github.workspace }}/recon_test_pack/**/*.log
457+
${{ github.workspace }}/recon_test_pack/**/my_*v
458+
${{ github.workspace }}/recon_test_pack/**/my_*s
459+
retention-days: 7
460+
461+
- name: remove recon_test_pack
462+
shell: bash
463+
run: |
464+
rm -rf ${GITHUB_WORKSPACE}/recon_test_pack
427465
428466
- name: Python
429467
shell: bash

‎.github/workflows/pre-commit-check.yml‎

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@ jobs:
88
name: pre-commit
99
steps:
1010
- uses: actions/checkout@v4
11-
- uses: actions/setup-python@v5
12-
- run: sudo apt-get install -yqq clang-format
11+
- uses: conda-incubator/setup-miniconda@v3
12+
with:
13+
activate-environment: pre-commit-env
14+
environment-file: pre-commit-environment.yml
15+
auto-activate-base: false
1316
- uses: pre-commit/action@v3.0.0

‎.gitignore‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ install_manifest.txt
5757
~$*
5858
*~
5959
*.bak
60+
\#*#
6061

6162
# Ignore Visual Studio User-specific files
6263
*.suo

‎.mailmap‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ Matthias Ehrhardt <m.ehrhardt@bath.ac.uk> <m.ehrhardt@bath.ac.uk>
3737
Matthias Ehrhardt <m.ehrhardt@bath.ac.uk> <m.j.ehrhardt@damtp.cam.ac.uk>
3838
Nikos Efthimiou <nikos.efthimiou@gmail.com> <nikos.efthimiou@gmail.com>
3939
Nikos Efthimiou <nikos.efthimiou@gmail.com> <NikEfth@users.noreply.github.com>
40+
Nikos Efthimiou <nikos.efthimiou@gmail.com> <n.efthymiou@hull.ac.uk>
4041
Ottavia Bertolli <ottavia.bertolli.13@ucl.ac.uk>
4142
Palak Wadhwa <pwadhwa351@gmail.com> <38861704+pwadhwa351@users.noreply.github.com>
4243
Palak Wadhwa <pwadhwa351@gmail.com> <medpwad@leeds.ac.uk>
@@ -67,3 +68,5 @@ Sam D Porter <92305641+samdporter@users.noreply.github.com>
6768
Sam D Porter <92305641+samdporter@users.noreply.github.com> <porter.samd@gmail.com>
6869
Matthew Strugari <matthew.strugari@dal.ca>
6970
Matthew Strugari <matthew.strugari@dal.ca> <56315593+mastergari@users.noreply.github.com>
71+
Imraj Singh <imraj.singh.20@ucl.ac.uk>
72+
Imraj Singh <imraj.singh.20@ucl.ac.uk> <72553490+Imraj-Singh@users.noreply.github.com>

‎.pre-commit-config.yaml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@ repos:
33
rev: '62302476'
44
hooks:
55
- id: clang-format
6-
files: \.(c|cc|cxx|cpp|h|hpp|hxx|inl|txx)$
6+
files: \.(c|cc|cxx|cpp|cu|h|hpp|hxx|inl|txx)$

‎CITATION.cff‎

Lines changed: 27 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -32,31 +32,31 @@ authors:
3232
- family-names: Jehl
3333
given-names: Markus
3434
affiliation: Positrigo
35+
- family-names: Borgeaud
36+
given-names: Tim
37+
affiliation: Hammersmith Imanet Ltd
3538
- family-names: Strugari
3639
given-names: Matthew
3740
affiliation: Dalhousie University (Canada)
3841
- family-names: Khateri
3942
given-names: Parisa
4043
affiliation: ETH Zuerich
41-
- family-names: Beisel
42-
given-names: Tobias
4344
- family-names: Wadhwa
4445
given-names: Palak
4546
affiliation: University of Leeds (UK)
46-
- family-names: Borgeaud
47-
given-names: Tim
48-
affiliation: Hammersmith Imanet Ltd
47+
- family-names: Beisel
48+
given-names: Tobias
4949
- family-names: Emond
5050
given-names: Elise
5151
affiliation: University College London
52-
- family-names: Jacobson
53-
given-names: Matthew
5452
- family-names: Gillman
5553
given-names: Ashley
5654
orcid: 'https://orcid.org/0000-0001-9130-1092'
5755
affiliation: >-
5856
Commonwealth Scientific and Industrial Research
5957
Organisation, and University of Queensland
58+
- family-names: Jacobson
59+
given-names: Matthew
6060
- family-names: Zverovich
6161
given-names: Alexey
6262
affiliation: Brunel University (UK)
@@ -81,23 +81,21 @@ authors:
8181
- family-names: Brusaferri
8282
given-names: Ludovica
8383
affiliation: University College London
84-
- family-names: Pasca
85-
given-names: Edoardo
86-
affiliation: UK Research & Innovation
87-
orcid: 'https://orcid.org/0000-0001-6957-2160'
8884
- family-names: Thomas
8985
given-names: Benjamin
9086
orcid: 'https://orcid.org/0000-0002-9784-1177'
9187
affiliation: University College London
88+
- family-names: Pasca
89+
given-names: Edoardo
90+
affiliation: UK Research & Innovation
91+
orcid: 'https://orcid.org/0000-0001-6957-2160'
9292
- family-names: Aguiar
9393
given-names: Pablo
9494
- family-names: Niknejad
9595
given-names: Tahereh
9696
- family-names: Sadki
9797
given-names: Mustapha
9898
affiliation: Brunel University (UK)
99-
- family-names: Schmidtlein
100-
given-names: C Ross
10199
- family-names: Kerrouche
102100
given-names: Nacer
103101
affiliation: Hammersmith Imanet Ltd
@@ -110,13 +108,22 @@ authors:
110108
- family-names: Ehrhardt
111109
given-names: Matthias J.
112110
orcid: 'https://orcid.org/0000-0001-8523-353X'
113-
- family-names: Valente
114-
given-names: Patrick
115-
affiliation: Brunel University (UK)
111+
- family-names: Singh
112+
given-names: Imraj
113+
orcid: 'https://orcid.org/0000-0003-2186-0977'
114+
affiliation: University College London (UK)
115+
- family-names: Schmidtlein
116+
given-names: C Ross
116117
- family-names: Ovtchinnikov
117118
given-names: Evgueni
118119
orcid: 'https://orcid.org/0000-0002-9359-6514'
119120
affiliation: UK Research & Innovation
121+
- family-names: Valente
122+
given-names: Patrick
123+
affiliation: Brunel University (UK)
124+
- family-names: Jurjew
125+
given-names: Nicole
126+
affiliation: University College London
120127
- family-names: Schramm
121128
given-names: Georg
122129
affiliation: Katholieke Universiteit Leuven (Belgium)
@@ -127,9 +134,6 @@ authors:
127134
- family-names: Belluzzo
128135
given-names: Damiano
129136
affiliation: Hospedale San Raffaele Milano (Italy)
130-
- family-names: Jurjew
131-
given-names: Nicole
132-
affiliation: University College London
133137
- family-names: Ching
134138
given-names: Daniel
135139
- family-names: Hague
@@ -178,10 +182,14 @@ authors:
178182
identifiers:
179183
- type: doi
180184
value: 10.1088/0031-9155/57/4/867
185+
- type: doi
186+
value: 10.3389/fnume.2023.1134774
181187
- type: doi
182188
value: 10.1186/s40658-019-0248-9
183189
- type: doi
184190
value: 10.3390/jimaging8060172
191+
- type: doi
192+
value: 10.1088/1361-6560/aaf9b9
185193
- type: doi
186194
value: 10.1109/NSSMIC.2018.8824341
187195
- type: doi

0 commit comments

Comments
 (0)