diff options
author | Daniel M. Pelt <D.M.Pelt@cwi.nl> | 2015-02-24 12:35:45 +0100 |
---|---|---|
committer | Daniel M. Pelt <D.M.Pelt@cwi.nl> | 2015-02-24 12:35:45 +0100 |
commit | 3cae1d138c53a3fd042de3d2c9d9a07cf0650e0f (patch) | |
tree | 72f1bf197b33cfb64f259089830910a9754e5893 /python/astra/astra_c.pyx | |
parent | e212ab0d4f84adafa0a2fe11f5e16f856504769a (diff) | |
download | astra-3cae1d138c53a3fd042de3d2c9d9a07cf0650e0f.tar.gz astra-3cae1d138c53a3fd042de3d2c9d9a07cf0650e0f.tar.bz2 astra-3cae1d138c53a3fd042de3d2c9d9a07cf0650e0f.tar.xz astra-3cae1d138c53a3fd042de3d2c9d9a07cf0650e0f.zip |
Added Python interface
Diffstat (limited to 'python/astra/astra_c.pyx')
-rw-r--r-- | python/astra/astra_c.pyx | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/python/astra/astra_c.pyx b/python/astra/astra_c.pyx new file mode 100644 index 0000000..342a214 --- /dev/null +++ b/python/astra/astra_c.pyx @@ -0,0 +1,79 @@ +#----------------------------------------------------------------------- +#Copyright 2013 Centrum Wiskunde & Informatica, Amsterdam +# +#Author: Daniel M. Pelt +#Contact: D.M.Pelt@cwi.nl +#Website: http://dmpelt.github.io/pyastratoolbox/ +# +# +#This file is part of the Python interface to the +#All Scale Tomographic Reconstruction Antwerp Toolbox ("ASTRA Toolbox"). +# +#The Python interface to the ASTRA Toolbox is free software: you can redistribute it and/or modify +#it under the terms of the GNU General Public License as published by +#the Free Software Foundation, either version 3 of the License, or +#(at your option) any later version. +# +#The Python interface to the ASTRA Toolbox is distributed in the hope that it will be useful, +#but WITHOUT ANY WARRANTY; without even the implied warranty of +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +#GNU General Public License for more details. +# +#You should have received a copy of the GNU General Public License +#along with the Python interface to the ASTRA Toolbox. If not, see <http://www.gnu.org/licenses/>. +# +#----------------------------------------------------------------------- +# distutils: language = c++ +# distutils: libraries = astra + +include "config.pxi" +import six +from .utils import wrap_from_bytes + +from libcpp.string cimport string +from libcpp cimport bool +cdef extern from "astra/Globals.h" namespace "astra": + int getVersion() + string getVersionString() + bool cudaEnabled() + +IF HAVE_CUDA==True: + cdef extern from "../cuda/2d/darthelper.h" namespace "astraCUDA": + bool setGPUIndex(int) +ELSE: + def setGPUIndex(): + pass + +def credits(): + six.print_(""" +All Scale Tomographic Reconstruction Antwerp Toolbox (ASTRA-Toolbox) +was developed at the University of Antwerp by + * Prof. dr. Joost Batenburg + * Andrei Dabravolski + * Gert Merckx + * Willem Jan Palenstijn + * Tom Roelandts + * Prof. dr. Jan Sijbers + * dr. Wim van Aarle + * Sander van der Maar + * dr. Gert Van Gompel + +Python interface written by + * Daniel M. Pelt (CWI, Amsterdam)""") + + +def use_cuda(): + return cudaEnabled() + + +def version(printToScreen=False): + if printToScreen: + six.print_(wrap_from_bytes(getVersionString())) + else: + return getVersion() + +def set_gpu_index(idx): + if use_cuda()==True: + ret = setGPUIndex(idx) + if not ret: + six.print_("Failed to set GPU " + str(idx)) |