From 3cae1d138c53a3fd042de3d2c9d9a07cf0650e0f Mon Sep 17 00:00:00 2001 From: "Daniel M. Pelt" Date: Tue, 24 Feb 2015 12:35:45 +0100 Subject: Added Python interface --- python/astra/astra_c.pyx | 79 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 python/astra/astra_c.pyx (limited to 'python/astra/astra_c.pyx') 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 . +# +#----------------------------------------------------------------------- +# 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)) -- cgit v1.2.3