summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Adjust linear/cuda kernels to line integral scalingWillem Jan Palenstijn2019-09-254-23/+12
|
* Adjust line kernels to line integral scalingWillem Jan Palenstijn2019-09-253-19/+7
|
* Merge pull request #214 from ahendriksen/CI-use-conda-c-compiler-toolchainWillem Jan Palenstijn2019-09-259-29/+52
|\ | | | | Use conda compiler toolchain for conda builds
| * Use conda compiler toolchain for conda buildsAllard Hendriksen2019-09-209-29/+52
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Fix Travis CUDA setupWillem Jan Palenstijn2019-09-181-2/+0
|
* Fix clang buildWillem Jan Palenstijn2019-09-171-1/+3
|
* Merge pull request #213 from ahendriksen/CI-update-condaWillem Jan Palenstijn2019-09-171-1/+8
|\ | | | | Use recent version of conda during linux conda-build
| * Use recent version of conda during linux conda-buildAllard Hendriksen2019-09-171-1/+8
|/ | | | | | 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.
* Improve logging of mex detection to config.logWillem Jan Palenstijn2019-08-161-2/+2
|
* Check for the mex -R2017b option in configureWillem Jan Palenstijn2019-08-163-4/+37
| | | | | | | | | 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.
* Replace signal-based abort handling by query-based handlingWillem Jan Palenstijn2019-08-1428-188/+48
| | | | | | | | 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.
* Build updates for Debian 8 + CUDA10.1Willem Jan Palenstijn2019-07-084-40/+17
| | | | | | | 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.
* Build updates for Win10 + VS2017 + CUDA9 + Matlab R2018bWillem Jan Palenstijn2019-07-0823-150/+151
|
* Update matlab function signatureWillem Jan Palenstijn2019-07-081-2/+2
| | | | The previous one was an undocumented educated guess.
* Replace absolute path by relative path in builder.pyWillem Jan Palenstijn2019-07-081-3/+3
| | | | | | 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.
* Fix composite EMode enum order in experimental.pyxWillem Jan Palenstijn2019-06-182-3/+3
|
* Update conda builds for cuda 10 and numpy 1.16Willem Jan Palenstijn2019-04-128-10/+43
|
* Fix scaling for fan/strip projectorWillem Jan Palenstijn2019-03-292-9/+72
| | | | | | | | | | | | 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.
* Clean up projector unit testsWillem Jan Palenstijn2019-03-251-151/+191
|
* Add linear projector testsWillem Jan Palenstijn2019-03-231-15/+90
|
* Flip wrong detector orientation for fan2d_stripWillem Jan Palenstijn2019-03-231-2/+2
| | | | | | There are still some remaining fan2d_strip unit test failures, with suspicious slightly too large numerical deviations around 45 degree projections.
* Add strip projector testsWillem Jan Palenstijn2019-03-231-0/+89
|
* Make ParStripProjector2D::getProjectionWeightsCount safer for very thin stripsWillem Jan Palenstijn2019-03-131-1/+1
|
* Fix rounding error in ParStripProjector2D::getProjectionWeightsCountWillem Jan Palenstijn2019-03-121-2/+2
| | | | | | | | | 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.
* Regenerate Windows build filesWillem Jan Palenstijn2019-03-053-0/+13
|
* Merge pull request #183 from wjp/par2d_ddWillem Jan Palenstijn2019-02-1926-716/+764
|\ | | | | Add basic implementation of par2d CPU Distance Driven projector
| * test_line2d: Add tests for distance_driven projectorWillem Jan Palenstijn2019-01-301-73/+174
| |
| * Some basic optimizationsWillem Jan Palenstijn2019-01-241-46/+41
| |
| * Remove largely unimplemented CProjector2D::projectPoint methodWillem Jan Palenstijn2019-01-2421-667/+6
| | | | | | | | This includes the astra_mex_projector('splat') matlab function.
| * Add basic implementation of par2d CPU Distance Driven projectorWillem Jan Palenstijn2019-01-247-2/+615
|/
* Add DartMask helper connectivity option checkWillem Jan Palenstijn2018-12-232-3/+5
|
* Add error checking to numeric vector config parsingWillem Jan Palenstijn2018-12-231-0/+2
|
* Fix exception propagation in python dictToConfigWillem Jan Palenstijn2018-12-232-7/+10
|
* Improve config error handlingWillem Jan Palenstijn2018-12-2324-118/+264
|
* More gracefully handle config errors in geometriesWillem Jan Palenstijn2018-12-2318-123/+259
|
* Remove unused fileWillem Jan Palenstijn2018-12-231-285/+0
|
* Fix return value order in sampleWillem Jan Palenstijn2018-12-231-1/+1
|
* Install DART algorithmWillem Jan Palenstijn2018-12-121-1/+1
|
* Merge branch 'geom_visualizer'Willem Jan Palenstijn2018-12-1238-0/+2112
|\ | | | | | | This adds a matlab geometry visualizer, and a sample showing how to use it.
| * Reorganize functions into packages/private functionsWillem Jan Palenstijn2018-12-1237-81/+41
| | | | | | | | This also replaces modifying the path with a request to the user to modify the path.
| * add astra_plot_geom command and sample s024Tim2018-12-1215-154/+181
| | | | | | | | Signed-off-by: Tim <tim.elberfeld@uantwerpen.be>
| * copy plot_geom files in correct folders when installingTim2018-12-121-0/+22
| |
| * add geometry draw files without changesTim2018-12-1239-0/+2103
| |
* | Remove unused array allocation in data3d.get_sharedWillem Jan Palenstijn2018-12-121-1/+0
| | | | | | | | Thanks to @ahendriksen.
* | Add new CUDA compute modelsWillem Jan Palenstijn2018-12-121-2/+2
| |
* | Merge pull request #180 from wjp/filter_configWillem Jan Palenstijn2018-12-077-50/+98
|\ \ | |/ |/| Read filter config for FBP from cfg.options
| * Improve detection of unused config options for filtersWillem Jan Palenstijn2018-12-062-34/+67
| | | | | | | | | | The FilterSinogramId, FilterParameter and FilterD options now only get marked used if they are actually used, based on the value of FilterType.
| * Read filter config for FBP from cfg.optionsWillem Jan Palenstijn2018-12-066-44/+59
|/ | | | | | | Since these settings are optional, they should have been in cfg.options instead of directly in cfg. The old syntax remains a fallback. This has the side-effect that the tomopy/astra interface can also supply them.
* Add install-dev to READMEWillem Jan Palenstijn2018-11-132-0/+28
|
* Add install-dev make target for installing headers/pkgconfig/libraryWillem Jan Palenstijn2018-11-133-7/+55
|