Is a refactoring pattern. It aims to keep the Functor operator() allocation free and the Functor body free of references. The strict memory is adressed entirely as a stack, as heap (size known at compile time), but not as free-store.
The refactoring pattern.
A related GPU refactoring pattern for invertible functions. Here, the memory requirements are relaxed. Not in the original sense of stack.
Defunct.
CPU Mode
cmake -B build . -DSFA_BACKEND=CPU
cmake --build buildGoopax Mode: Download and extract Goopax to the directory above the project directory.
cmake -B build . -DSFA_BACKEND=GOOPAX
cmake --build buildSyCL Mode: Set a SyCL compatible clang compiler in your path.
cmake -B build . -DCMAKE_C_COMPILER=icx -DCMAKE_CXX_COMPILER=icpx -DSFA_BACKEND=INTELSYCL -GNinja
cmake --build build