Prefix the CUDA code
Talking with @hyllios, we agreed to move forward by making it possible to link CPU and GPU versions of libxc together by adding prefixes throughout the code. This will also enable us to add further acceleration modes in the future.
Libxc will not deal with memory management; if necessary, data should be moved between the CPU and the GPU by the calling program.
The prefixing could look something like
-
xc_init_func
: CPU version -
xc_cuda_init_func
: CUDA version -
xc_opencl_init_func
: OpenCL version (if we ever get one)
and analogously for other routines.