From b9ee6fad5b3119e738f6999eb4dd78bafb98a7cd Mon Sep 17 00:00:00 2001 From: vagrant Date: Mon, 21 Jan 2019 17:07:25 +0000 Subject: test --- build/jenkins-build.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/build/jenkins-build.sh b/build/jenkins-build.sh index 6965180..8c10484 100755 --- a/build/jenkins-build.sh +++ b/build/jenkins-build.sh @@ -46,6 +46,7 @@ conda build Wrappers/Python/conda-recipe export REG_FILES=`conda build Wrappers/Python/conda-recipe --output` # REG_FILES variable should contain output files echo files created: $REG_FILES + #upload to anaconda if [[ -n ${CCPI_CONDA_TOKEN} ]] then -- cgit v1.2.3 From 6c497653590f6c916496f1eb2f464d97d63b1ae9 Mon Sep 17 00:00:00 2001 From: Tomas Kulhanek Date: Tue, 22 Jan 2019 11:57:50 +0000 Subject: Update jenkins-build.sh --- build/jenkins-build.sh | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/build/jenkins-build.sh b/build/jenkins-build.sh index ca5b57a..de22368 100755 --- a/build/jenkins-build.sh +++ b/build/jenkins-build.sh @@ -5,19 +5,19 @@ then echo Using defined version: $CIL_VERSION else - #get tag, remove first char ('v') and leave rest - export CIL_VERSION=`git describe --tags | tail -c +2` - if [[ ${CIL_VERSION} == *"-"* ]]; then - # detected dash means that it is dev version - # version is then string-string and all after second dash is ignored (usually commit sha) - export CIL_VERSION=`echo ${CIL_VERSION} | cut -d "-" -f -2` - # but dash is prohibited for conda build - export CIL_VERSION=`echo ${CIL_VERSION} | tr - _` - echo Building dev version ${CIL_VERSION} - else - echo Defining version from last git tag and commit: $CIL_VERSION - fi -fi +#get tag, remove first char ('v') and leave rest +export CIL_VERSION=`git describe --tags | tail -c +2` +if [[ ${CIL_VERSION} == *"-"* ]]; then + # detected dash means that it is dev version + # version is then string-string and all after second dash is ignored (usually commit sha) + export CIL_VERSION=`echo ${CIL_VERSION} | cut -d "-" -f -2` + # but dash is prohibited for conda build, replace with underscore + export CIL_VERSION=`echo ${CIL_VERSION} | tr - _` + echo Building dev version ${CIL_VERSION} +else + echo Defining version from last git tag and commit: $CIL_VERSION +fi + # Script to builds source code in Jenkins environment # module try-load conda -- cgit v1.2.3 From ec5d74d59a26192288f1430581e2a27567f91b86 Mon Sep 17 00:00:00 2001 From: Tomas Kulhanek Date: Tue, 22 Jan 2019 12:05:16 +0000 Subject: Update jenkins-build.sh --- build/jenkins-build.sh | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/build/jenkins-build.sh b/build/jenkins-build.sh index de22368..e440717 100755 --- a/build/jenkins-build.sh +++ b/build/jenkins-build.sh @@ -4,19 +4,20 @@ if [[ -n ${CIL_VERSION} ]] then echo Using defined version: $CIL_VERSION else - -#get tag, remove first char ('v') and leave rest -export CIL_VERSION=`git describe --tags | tail -c +2` -if [[ ${CIL_VERSION} == *"-"* ]]; then - # detected dash means that it is dev version - # version is then string-string and all after second dash is ignored (usually commit sha) - export CIL_VERSION=`echo ${CIL_VERSION} | cut -d "-" -f -2` - # but dash is prohibited for conda build, replace with underscore - export CIL_VERSION=`echo ${CIL_VERSION} | tr - _` - echo Building dev version ${CIL_VERSION} -else - echo Defining version from last git tag and commit: $CIL_VERSION -fi + # define CIL_VERSION from last git tag, remove first char ('v') and leave rest + export CIL_VERSION=`git describe --tags | tail -c +2` + # dash means that it's some commit after tag release -thus will be treated as dev + if [[ ${CIL_VERSION} == *"-"* ]]; then + # detected dash means that it is dev version + # version is then string-string and all after second dash is ignored (usually commit sha) + export CIL_VERSION=`echo ${CIL_VERSION} | cut -d "-" -f -2` + # but dash is prohibited for conda build, replace with underscore + export CIL_VERSION=`echo ${CIL_VERSION} | tr - _` + echo Building dev version ${CIL_VERSION} + else + echo Defining version from last git tag and commit: $CIL_VERSION + fi +fi # Script to builds source code in Jenkins environment # module try-load conda @@ -49,7 +50,7 @@ then conda install anaconda-client while read -r outfile; do #if 0 commit after tag then call anaconda without --label dev - #TODO if pull request??? do not upload + #TODO pull request not to upload if [[ $CIL_VERSION == *"_"* ]]; then # upload with dev label anaconda -v -t ${CCPI_CONDA_TOKEN} upload $outfile --force --label dev -- cgit v1.2.3 From 19fce0003d558b4eb9dadfb6aef7c79deef13489 Mon Sep 17 00:00:00 2001 From: Tomas Kulhanek Date: Tue, 22 Jan 2019 12:13:01 +0000 Subject: Update jenkins-build.sh --- build/jenkins-build.sh | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/build/jenkins-build.sh b/build/jenkins-build.sh index e440717..6c863c0 100755 --- a/build/jenkins-build.sh +++ b/build/jenkins-build.sh @@ -8,14 +8,13 @@ else export CIL_VERSION=`git describe --tags | tail -c +2` # dash means that it's some commit after tag release -thus will be treated as dev if [[ ${CIL_VERSION} == *"-"* ]]; then - # detected dash means that it is dev version - # version is then string-string and all after second dash is ignored (usually commit sha) - export CIL_VERSION=`echo ${CIL_VERSION} | cut -d "-" -f -2` - # but dash is prohibited for conda build, replace with underscore - export CIL_VERSION=`echo ${CIL_VERSION} | tr - _` - echo Building dev version ${CIL_VERSION} + # detected dash means that it is dev version, + # get first and second part between first dash and ignore all after other dash (usually sha) + # and as dash is prohibited for conda build, replace with underscore + export CIL_VERSION=`echo ${CIL_VERSION} | cut -d "-" -f -2 | tr - _` + echo Building dev version: ${CIL_VERSION} else - echo Defining version from last git tag and commit: $CIL_VERSION + echo Building release version: $CIL_VERSION fi fi -- cgit v1.2.3 From 84811ac4418fb7f72dfcb7cb8329cf05ed0fb538 Mon Sep 17 00:00:00 2001 From: Tomas Kulhanek Date: Tue, 22 Jan 2019 12:52:34 +0000 Subject: Update jenkins-build.sh --- build/jenkins-build.sh | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/build/jenkins-build.sh b/build/jenkins-build.sh index 6c863c0..a808699 100755 --- a/build/jenkins-build.sh +++ b/build/jenkins-build.sh @@ -43,13 +43,15 @@ conda build Wrappers/Python/conda-recipe export REG_FILES=`conda build Wrappers/Python/conda-recipe --output` # REG_FILES variable should contain output files echo files created: $REG_FILES -#upload to anaconda + +# upload to anaconda only if token is defined +# and TODO pull request not to upload if [[ -n ${CCPI_CONDA_TOKEN} ]] then conda install anaconda-client while read -r outfile; do #if 0 commit after tag then call anaconda without --label dev - #TODO pull request not to upload + if [[ $CIL_VERSION == *"_"* ]]; then # upload with dev label anaconda -v -t ${CCPI_CONDA_TOKEN} upload $outfile --force --label dev -- cgit v1.2.3 From 440693750ee94044f4f0bcd7c5e737487bfb6e64 Mon Sep 17 00:00:00 2001 From: Tomas Kulhanek Date: Tue, 22 Jan 2019 13:20:04 +0000 Subject: Update jenkins-build.sh --- build/jenkins-build.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/build/jenkins-build.sh b/build/jenkins-build.sh index e4a0535..7ac4539 100755 --- a/build/jenkins-build.sh +++ b/build/jenkins-build.sh @@ -23,7 +23,7 @@ fi # install miniconda if the module is not present if hash conda 2>/dev/null; then - echo using conda + echo using installed conda else if [ ! -f Miniconda3-latest-Linux-x86_64.sh ]; then wget -q https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh @@ -44,7 +44,6 @@ export REG_FILES=`conda build Wrappers/Python/conda-recipe --output` # REG_FILES variable should contain output files echo files created: $REG_FILES - # upload to anaconda only if token is defined # and TODO pull request not to upload -- cgit v1.2.3 From 74bfad3cfa5462856d03872c02229423f9a36b9f Mon Sep 17 00:00:00 2001 From: Tomas Kulhanek Date: Tue, 22 Jan 2019 14:14:33 +0000 Subject: UPDATE: check git branch, upload master build --- build/jenkins-build.sh | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/build/jenkins-build.sh b/build/jenkins-build.sh index 7ac4539..840afac 100755 --- a/build/jenkins-build.sh +++ b/build/jenkins-build.sh @@ -32,6 +32,7 @@ else ./Miniconda3-latest-Linux-x86_64.sh -u -b -p . PATH=$PATH:./bin fi + # presume that git clone is done before this script is launched, if not, uncomment #git clone https://github.com/vais-ral/CCPi-Regularisation-Toolkit conda install -y conda-build @@ -46,8 +47,10 @@ echo files created: $REG_FILES # upload to anaconda only if token is defined # and TODO pull request not to upload +GIT_BRANCH=`git rev-parse --abbrev-ref HEAD` +echo on branch ${GIT_BRANCH} -if [[ -n ${CCPI_CONDA_TOKEN} ]] +if [[ -n ${CCPI_CONDA_TOKEN} && ${GIT_BRANCH}=="master" ]] then conda install anaconda-client while read -r outfile; do @@ -61,5 +64,5 @@ then fi done <<< "$REG_FILES" else - echo CCPI_CONDA_TOKEN not defined, will not upload to anaconda. + echo CCPI_CONDA_TOKEN not defined or git branch is not master, will not upload to anaconda. fi -- cgit v1.2.3 From e7f26cab5e6522d521c6b0e42f1991c3e7c0ac7d Mon Sep 17 00:00:00 2001 From: Tomas Kulhanek Date: Tue, 22 Jan 2019 14:43:14 +0000 Subject: UPDATE 2: check git branch, upload master build --- build/jenkins-build.sh | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/build/jenkins-build.sh b/build/jenkins-build.sh index 840afac..03de4e6 100755 --- a/build/jenkins-build.sh +++ b/build/jenkins-build.sh @@ -50,19 +50,21 @@ echo files created: $REG_FILES GIT_BRANCH=`git rev-parse --abbrev-ref HEAD` echo on branch ${GIT_BRANCH} -if [[ -n ${CCPI_CONDA_TOKEN} && ${GIT_BRANCH}=="master" ]] -then - conda install anaconda-client - while read -r outfile; do - #if 0 commit after tag then call anaconda without --label dev - - if [[ $CIL_VERSION == *"_"* ]]; then - # upload with dev label - anaconda -v -t ${CCPI_CONDA_TOKEN} upload $outfile --force --label dev - else - anaconda -v -t ${CCPI_CONDA_TOKEN} upload $outfile --force - fi - done <<< "$REG_FILES" +if [[ -n ${CCPI_CONDA_TOKEN} ]]; then + if [[ ${GIT_BRANCH}=="master" ]]; then + conda install anaconda-client + while read -r outfile; do + #if >0 commit (some _ in version) then marking as dev build + if [[ $CIL_VERSION == *"_"* ]]; then + # upload with dev label + anaconda -v -t ${CCPI_CONDA_TOKEN} upload $outfile --force --label dev + else + anaconda -v -t ${CCPI_CONDA_TOKEN} upload $outfile --force + fi + done <<< "$REG_FILES" + else + echo git branch is not master, will not upload to anaconda. + fi else - echo CCPI_CONDA_TOKEN not defined or git branch is not master, will not upload to anaconda. + echo CCPI_CONDA_TOKEN not defined, will not upload to anaconda. fi -- cgit v1.2.3 From b63188fc01a6c0a2bf9637ed1660d0dbdd48e6fe Mon Sep 17 00:00:00 2001 From: Tomas Kulhanek Date: Tue, 22 Jan 2019 15:03:38 +0000 Subject: UPDATE 2: check git branch, upload master build --- build/jenkins-build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/jenkins-build.sh b/build/jenkins-build.sh index 03de4e6..b8b2aef 100755 --- a/build/jenkins-build.sh +++ b/build/jenkins-build.sh @@ -47,7 +47,7 @@ echo files created: $REG_FILES # upload to anaconda only if token is defined # and TODO pull request not to upload -GIT_BRANCH=`git rev-parse --abbrev-ref HEAD` +GIT_BRANCH=`git symbolic-ref --short HEAD` echo on branch ${GIT_BRANCH} if [[ -n ${CCPI_CONDA_TOKEN} ]]; then -- cgit v1.2.3 From 93224f30e5072ec0b19958f053e2f58d07bf1f4b Mon Sep 17 00:00:00 2001 From: Tomas Kulhanek Date: Tue, 22 Jan 2019 15:29:16 +0000 Subject: UPDATE 3: check git branch --- build/jenkins-build.sh | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/build/jenkins-build.sh b/build/jenkins-build.sh index b8b2aef..4f96194 100755 --- a/build/jenkins-build.sh +++ b/build/jenkins-build.sh @@ -33,6 +33,9 @@ else PATH=$PATH:./bin fi +GIT_BRANCH=`git rev-parse --abbrev-ref HEAD` +echo on branch ${GIT_BRANCH} + # presume that git clone is done before this script is launched, if not, uncomment #git clone https://github.com/vais-ral/CCPi-Regularisation-Toolkit conda install -y conda-build @@ -46,9 +49,7 @@ export REG_FILES=`conda build Wrappers/Python/conda-recipe --output` echo files created: $REG_FILES # upload to anaconda only if token is defined -# and TODO pull request not to upload -GIT_BRANCH=`git symbolic-ref --short HEAD` -echo on branch ${GIT_BRANCH} +# and TODO pull request not to upload if [[ -n ${CCPI_CONDA_TOKEN} ]]; then if [[ ${GIT_BRANCH}=="master" ]]; then -- cgit v1.2.3 From 53cbfdca7373b86fcf2f1a2ae8618265a628bc05 Mon Sep 17 00:00:00 2001 From: Tomas Kulhanek Date: Tue, 22 Jan 2019 16:03:22 +0000 Subject: UPDATE 4: check git branch --- build/jenkins-build.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/build/jenkins-build.sh b/build/jenkins-build.sh index 4f96194..87ca54f 100755 --- a/build/jenkins-build.sh +++ b/build/jenkins-build.sh @@ -35,6 +35,7 @@ fi GIT_BRANCH=`git rev-parse --abbrev-ref HEAD` echo on branch ${GIT_BRANCH} +cat .git/HEAD # presume that git clone is done before this script is launched, if not, uncomment #git clone https://github.com/vais-ral/CCPi-Regularisation-Toolkit @@ -52,7 +53,7 @@ echo files created: $REG_FILES # and TODO pull request not to upload if [[ -n ${CCPI_CONDA_TOKEN} ]]; then - if [[ ${GIT_BRANCH}=="master" ]]; then + if [[ ${GIT_BRANCH} == "master" ]]; then conda install anaconda-client while read -r outfile; do #if >0 commit (some _ in version) then marking as dev build -- cgit v1.2.3 From 450ee88cb6a7dd48cd0911937a8a0ed309b5392d Mon Sep 17 00:00:00 2001 From: Tomas Kulhanek Date: Tue, 22 Jan 2019 16:24:46 +0000 Subject: UPDATE 5: minor --- build/jenkins-build.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/build/jenkins-build.sh b/build/jenkins-build.sh index 87ca54f..2936fed 100755 --- a/build/jenkins-build.sh +++ b/build/jenkins-build.sh @@ -20,7 +20,6 @@ fi # Script to builds source code in Jenkins environment # module try-load conda - # install miniconda if the module is not present if hash conda 2>/dev/null; then echo using installed conda -- cgit v1.2.3 From 952e9f45b04a42d5b8ef6ce3fbc50046c00e61b9 Mon Sep 17 00:00:00 2001 From: Tomas Kulhanek Date: Tue, 22 Jan 2019 16:27:06 +0000 Subject: UPDATE 6: minor --- build/jenkins-build.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/build/jenkins-build.sh b/build/jenkins-build.sh index 2936fed..87ca54f 100755 --- a/build/jenkins-build.sh +++ b/build/jenkins-build.sh @@ -20,6 +20,7 @@ fi # Script to builds source code in Jenkins environment # module try-load conda + # install miniconda if the module is not present if hash conda 2>/dev/null; then echo using installed conda -- cgit v1.2.3 From 00bcc569758d9429ecb3234e64c7ac05b3f8e3c1 Mon Sep 17 00:00:00 2001 From: Tomas Kulhanek Date: Wed, 23 Jan 2019 10:08:11 +0000 Subject: Update Readme.md --- Readme.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Readme.md b/Readme.md index 70c9e13..f155c16 100644 --- a/Readme.md +++ b/Readme.md @@ -1,4 +1,5 @@ -[![Build Status](https://anvil.softeng-support.ac.uk/jenkins/buildStatus/icon?job=CILsingle/CCPi-Regularisation-Toolkit)](https://anvil.softeng-support.ac.uk/jenkins/job/CILsingle/job/CCPi-Regularisation-Toolkit/) +Master: [![Build Status](https://anvil.softeng-support.ac.uk/jenkins/buildStatus/icon?job=CILsingle/CCPi-Regularisation-Toolkit)](https://anvil.softeng-support.ac.uk/jenkins/job/CILsingle/job/CCPi-Regularisation-Toolkit/) +Development status (PR, non-master branch): [![Build Status](https://anvil.softeng-support.ac.uk/jenkins/job/CILsingle/job/CCPi-Regularisation-Toolkit-dev/badge/icon)](https://anvil.softeng-support.ac.uk/jenkins/job/CILsingle/job/CCPi-Regularisation-Toolkit-dev/) # CCPi-Regularisation Toolkit (CCPi-RGL) **Iterative image reconstruction (IIR) methods normally require regularisation to stabilise the convergence and make the reconstruction problem (inverse problem) more well-posed. The CCPi-RGL software provides 2D/3D and multi-channel regularisation strategies to ensure better performance of IIR methods. The regularisation modules are well-suited to use with [splitting algorithms](https://en.wikipedia.org/wiki/Augmented_Lagrangian_method#Alternating_direction_method_of_multipliers), such as, [ADMM](https://github.com/dkazanc/ADMM-tomo) and [FISTA](https://github.com/dkazanc/FISTA-tomo). Furthermore, the toolkit can be used for simpler inversion tasks, such as, image denoising, inpaiting, deconvolution etc. The core modules are written in C-OMP and CUDA languages and wrappers for Matlab and Python are provided.** -- cgit v1.2.3 From b9b1254ea345330326db3883aafd8a8a66c6c67a Mon Sep 17 00:00:00 2001 From: Tomas Kulhanek Date: Wed, 23 Jan 2019 10:09:32 +0000 Subject: Update Readme.md --- Readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Readme.md b/Readme.md index f155c16..e7cc1f0 100644 --- a/Readme.md +++ b/Readme.md @@ -1,5 +1,5 @@ Master: [![Build Status](https://anvil.softeng-support.ac.uk/jenkins/buildStatus/icon?job=CILsingle/CCPi-Regularisation-Toolkit)](https://anvil.softeng-support.ac.uk/jenkins/job/CILsingle/job/CCPi-Regularisation-Toolkit/) -Development status (PR, non-master branch): [![Build Status](https://anvil.softeng-support.ac.uk/jenkins/job/CILsingle/job/CCPi-Regularisation-Toolkit-dev/badge/icon)](https://anvil.softeng-support.ac.uk/jenkins/job/CILsingle/job/CCPi-Regularisation-Toolkit-dev/) +Development status (PR, non-master branch): [![Build Status](https://anvil.softeng-support.ac.uk/jenkins/buildStatus/icon?job=CILsingle/CCPi-Regularisation-Toolkit-dev)](https://anvil.softeng-support.ac.uk/jenkins/job/CILsingle/job/CCPi-Regularisation-Toolkit-dev/) # CCPi-Regularisation Toolkit (CCPi-RGL) **Iterative image reconstruction (IIR) methods normally require regularisation to stabilise the convergence and make the reconstruction problem (inverse problem) more well-posed. The CCPi-RGL software provides 2D/3D and multi-channel regularisation strategies to ensure better performance of IIR methods. The regularisation modules are well-suited to use with [splitting algorithms](https://en.wikipedia.org/wiki/Augmented_Lagrangian_method#Alternating_direction_method_of_multipliers), such as, [ADMM](https://github.com/dkazanc/ADMM-tomo) and [FISTA](https://github.com/dkazanc/FISTA-tomo). Furthermore, the toolkit can be used for simpler inversion tasks, such as, image denoising, inpaiting, deconvolution etc. The core modules are written in C-OMP and CUDA languages and wrappers for Matlab and Python are provided.** -- cgit v1.2.3 From 06771c554d4c1ecd1e4a38a600e530222b86b28d Mon Sep 17 00:00:00 2001 From: Tomas Kulhanek Date: Wed, 23 Jan 2019 10:24:48 +0000 Subject: Update Readme.md --- Readme.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Readme.md b/Readme.md index e7cc1f0..1745b9e 100644 --- a/Readme.md +++ b/Readme.md @@ -1,5 +1,6 @@ -Master: [![Build Status](https://anvil.softeng-support.ac.uk/jenkins/buildStatus/icon?job=CILsingle/CCPi-Regularisation-Toolkit)](https://anvil.softeng-support.ac.uk/jenkins/job/CILsingle/job/CCPi-Regularisation-Toolkit/) -Development status (PR, non-master branch): [![Build Status](https://anvil.softeng-support.ac.uk/jenkins/buildStatus/icon?job=CILsingle/CCPi-Regularisation-Toolkit-dev)](https://anvil.softeng-support.ac.uk/jenkins/job/CILsingle/job/CCPi-Regularisation-Toolkit-dev/) +| Master | Development | +|--------|-------------| +| [![Build Status](https://anvil.softeng-support.ac.uk/jenkins/buildStatus/icon?job=CILsingle/CCPi-Regularisation-Toolkit)](https://anvil.softeng-support.ac.uk/jenkins/job/CILsingle/job/CCPi-Regularisation-Toolkit/) | [![Build Status](https://anvil.softeng-support.ac.uk/jenkins/buildStatus/icon?job=CILsingle/CCPi-Regularisation-Toolkit-dev)](https://anvil.softeng-support.ac.uk/jenkins/job/CILsingle/job/CCPi-Regularisation-Toolkit-dev/) | # CCPi-Regularisation Toolkit (CCPi-RGL) **Iterative image reconstruction (IIR) methods normally require regularisation to stabilise the convergence and make the reconstruction problem (inverse problem) more well-posed. The CCPi-RGL software provides 2D/3D and multi-channel regularisation strategies to ensure better performance of IIR methods. The regularisation modules are well-suited to use with [splitting algorithms](https://en.wikipedia.org/wiki/Augmented_Lagrangian_method#Alternating_direction_method_of_multipliers), such as, [ADMM](https://github.com/dkazanc/ADMM-tomo) and [FISTA](https://github.com/dkazanc/FISTA-tomo). Furthermore, the toolkit can be used for simpler inversion tasks, such as, image denoising, inpaiting, deconvolution etc. The core modules are written in C-OMP and CUDA languages and wrappers for Matlab and Python are provided.** -- cgit v1.2.3