Fused Kernel or Core: here we will have all the basic components to be able to create an launch Fused CUDA Kernels. That is the GridPatterns, DeviceFunctions, and Operations.
Fused Kernel Algorithms: here we want to create template interfaces to specific functionalities that we want to expose, in a way that is more understandable, that having to compose the kernels by combining DeviceFunctions with Operations.
cvGPUSpeedup: the OpenCV wrapper that allows to use all the rest, from OpenCV, with OpenCV like function names and OpenCV types and enums.
We want to have the code organized in 3 levels: