NickKarpowicz / LightwaveExplorer

An efficient, user-friendly solver for nonlinear light-matter interaction
MIT License
60 stars 8 forks source link

Macros to functors #13

Closed NickKarpowicz closed 1 year ago

NickKarpowicz commented 1 year ago

Replace the function-like macros used to generate the headers to kernels. Previously, all kernels were functions in CUDA and C++, and lambdas in SYCL, with the former being passed to their respective kernel launches via function pointers. This necessitated the use of macros around the function name and arguments. By changing the kernels to functors, they can be passed in the same way to all platforms, with better readability and fewer IDE-problems from the heavy preprocessing.