summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-09-25Add test for reconstruction scalingWillem Jan Palenstijn
2019-09-25Fix fan-beam FBP scalingWillem Jan Palenstijn
2019-09-25Add error check for non-parallel FBPWillem Jan Palenstijn
2019-09-25Work around some warningsWillem Jan Palenstijn
2019-09-25Adjust SART to line integral scalingWillem Jan Palenstijn
2019-09-25Clean up outputscale naming confusion in cuda::algoWillem Jan Palenstijn
2019-09-25Adjust FBP to line integral scalingWillem Jan Palenstijn
2019-09-25Adjust adjoint to line integral scalingWillem Jan Palenstijn
2019-09-25Dynamically create python test functionsWillem Jan Palenstijn
2019-09-25Check if boost and CUDA versions are compatibleWillem Jan Palenstijn
See https://github.com/astra-toolbox/astra-toolbox/issues/163 and https://github.com/boostorg/config/pull/175 .
2019-09-25Adjust strip kernels to line integral scalingWillem Jan Palenstijn
2019-09-25Adjust distance driven kernels to line integral scalingWillem Jan Palenstijn
2019-09-25Adjust linear/cuda kernels to line integral scalingWillem Jan Palenstijn
2019-09-25Adjust line kernels to line integral scalingWillem Jan Palenstijn
2019-09-25Merge pull request #214 from ahendriksen/CI-use-conda-c-compiler-toolchainWillem Jan Palenstijn
Use conda compiler toolchain for conda builds
2019-09-20Use conda compiler toolchain for conda buildsAllard Hendriksen
For both libastra and astra-toolbox: 1) We do not use script_env to set CC/CXX anymore, since the compilers are installed by conda. 2) The build string is made useful by including either the python+numpy version or the cudatoolkit version that the package was built with. 3) Some clean-up of build.sh in buildenv/ For libastra: 1) The libastra.so is built with the conda C/C++ compiler toolchain. This has two benefits: 1) The rpath of libastra.so is set to $ORIGIN, which makes linking easier for dependent packages. 2) libastra.so is linkable against ancient versions of glibc. With old versions of memcpy. 2) The C/C++ compiler version is fixed to 5.4.0 3) In libastra/build.sh, we rename $CONDA_PREFIX to $PREFIX. Apparently, this is how it is supposed to be done. For me, $CONDA_PREFIX was suddenly undefined. Why this was not a problem before, is unclear to me. 4) The cudatoolkit runtime dependency is pinned with pin_compatible 5) The libastra conda package now provides headers and .pc file. This is useful for building C++ packages that depend on astra. 6) Remove some old code related to cudatoolkit<8.0. For astra-toolbox: 1) astra-toolbox uses the conda-provided compilers 2) The compilers are fixed to version 7.3 3) Add boost to host requirements of astra-toolbox Notes on testing: - The libastra build has been tested with all versions of cudatoolkit - The astra-toolbox build has been tested with all provided versions of python after building a single cudatoolkit version of libastra. How to test this branch: - It should work by just editing `python/conda/linux_release/buildenv/build.sh`. Set BRANCH=CI-use-conda-c-compiler-toolchain URL=https://github.com/ahendriksen/astra-toolbox and run release.sh from the `python/conda/linux_release` directory.
2019-09-18Fix Travis CUDA setupWillem Jan Palenstijn
2019-09-17Fix clang buildWillem Jan Palenstijn
2019-09-17Merge pull request #213 from ahendriksen/CI-update-condaWillem Jan Palenstijn
Use recent version of conda during linux conda-build
2019-09-17Use recent version of conda during linux conda-buildAllard Hendriksen
This fixes the issue where cudatoolkit=8.0 would not install any more with recent versions of conda. Also, no corruption appears to take place while downloading packages.
2019-08-16Improve logging of mex detection to config.logWillem Jan Palenstijn
2019-08-16Check for the mex -R2017b option in configureWillem Jan Palenstijn
Since we use mex for linking, but CXX for compiling, we also need to set a preprocessor macro to emulate the -R2017b option. Currently we use -DMATLAB_MEXCMD_RELEASE=700, but it is unclear if this is the recommended way. This is required to build with Matlab R2018a and newer.
2019-08-14Replace signal-based abort handling by query-based handlingWillem Jan Palenstijn
The abort handling is currently only used to process Ctrl-C from Matlab. Since Matlab R2019a, it appears that calling utIsInterruptPending() from a thread other than the main thread will crash. The previous approach of checking utIsInterruptPending() in a thread, and then signalling the running algorithm was therefore broken.
2019-07-08Build updates for Debian 8 + CUDA10.1Willem Jan Palenstijn
Debian 7 is EOL, and CUDA 10.1 doesn't support its version of glibc. Hardcoded conda=4.6.14 for now, since 4.7.5 seems to be downloading corrupted packages when running in docker/linux-64.
2019-07-08Build updates for Win10 + VS2017 + CUDA9 + Matlab R2018bWillem Jan Palenstijn
2019-07-08Update matlab function signatureWillem Jan Palenstijn
The previous one was an undocumented educated guess.
2019-07-08Replace absolute path by relative path in builder.pyWillem Jan Palenstijn
A recent setuptools is using the full path as part of the name of the temporary build directory, which made the full temp path too long when called from conda-build in Windows.
2019-06-18Fix composite EMode enum order in experimental.pyxWillem Jan Palenstijn
2019-04-12Update conda builds for cuda 10 and numpy 1.16Willem Jan Palenstijn
2019-03-29Fix scaling for fan/strip projectorWillem Jan Palenstijn
The strip model for a fan beam geometry wasn't taking pixel magnification into account. Among other things, this resulted in diagonals through rectangles being weighted the same as hor/ver lines. This commit fixes this by scaling each pixel contribution by its magnification on the detector. This is only an approximation (since the magnification isn't constant inside the pixel), but since pixels are usually small, the error is also small. Unfortunately, computing this scaling factor is relatively expensive because it introduces a square root in the inner loop.
2019-03-25Clean up projector unit testsWillem Jan Palenstijn
2019-03-23Add linear projector testsWillem Jan Palenstijn
2019-03-23Flip wrong detector orientation for fan2d_stripWillem Jan Palenstijn
There are still some remaining fan2d_strip unit test failures, with suspicious slightly too large numerical deviations around 45 degree projections.
2019-03-23Add strip projector testsWillem Jan Palenstijn
2019-03-13Make ParStripProjector2D::getProjectionWeightsCount safer for very thin stripsWillem Jan Palenstijn
2019-03-12Fix rounding error in ParStripProjector2D::getProjectionWeightsCountWillem Jan Palenstijn
In the worst case this would lead to (nearly) empty storage for getMatrix(), resulting in (near) explicit projection matrices. (These are only used for exporting explicit sparse projection matrices to matlab/python; not for FP/BP/reconstruction.) This is a quick fix; ideally the affected code would use dynamic storage.
2019-03-05Regenerate Windows build filesWillem Jan Palenstijn
2019-02-19Merge pull request #183 from wjp/par2d_ddWillem Jan Palenstijn
Add basic implementation of par2d CPU Distance Driven projector
2019-01-30test_line2d: Add tests for distance_driven projectorWillem Jan Palenstijn
2019-01-24Some basic optimizationsWillem Jan Palenstijn
2019-01-24Remove largely unimplemented CProjector2D::projectPoint methodWillem Jan Palenstijn
This includes the astra_mex_projector('splat') matlab function.
2019-01-24Add basic implementation of par2d CPU Distance Driven projectorWillem Jan Palenstijn
2018-12-23Add DartMask helper connectivity option checkWillem Jan Palenstijn
2018-12-23Add error checking to numeric vector config parsingWillem Jan Palenstijn
2018-12-23Fix exception propagation in python dictToConfigWillem Jan Palenstijn
2018-12-23Improve config error handlingWillem Jan Palenstijn
2018-12-23More gracefully handle config errors in geometriesWillem Jan Palenstijn
2018-12-23Remove unused fileWillem Jan Palenstijn
2018-12-23Fix return value order in sampleWillem Jan Palenstijn
2018-12-12Install DART algorithmWillem Jan Palenstijn