#include <spectralUtilsCUDA.h>
template<typename T, unsigned int N>
class hpp::SpectralDatabaseCUDA< T, N >
- Author
- Michael Malahe
- Date
- 04/04/17
template<typename T, unsigned int N>
template<typename T, unsigned int N>
template<typename T, unsigned int N>
template<typename T, unsigned int N>
template<typename T, unsigned int N>
template<typename T , unsigned int N>
template<typename T, unsigned int N>
Device IDFTD.
The grid dimension must be a power of two. For performance reasons this is not checked in this function. The particular optimisation is to replace the modulo in the range reduction step with the following bitwise operation trick for powers of two. Suppose we want yx, and x is a power of two: \(x = 2^z\). The binary representation of x has the digit 1 in the z position and zeroes elsewhere. Now \( x - 1 = 2^z - 1 \) has a 0 in the z position and a 1 in every lower bit. If we then take y&(x-1), all of the bits of y above and including the z position represent values that are divisible by x, and are accordingly zeroed in the result. All of the bits below the z position are left intact (being bitwise & with all 1's), leaving us with the remainder.
- Parameters
-
| dsetIdx | |
| spatialCoord | |
| nShared | |
| sharedCoords | |
| sharedCoeffs | |
template<typename T, unsigned int N>
template<typename T, unsigned int N>
template<typename T, unsigned int N>
template<typename T, unsigned int N>
template<typename T, unsigned int N>
template<typename T, unsigned int N>
template<typename T, unsigned int N>
template<typename T, unsigned int N>
template<typename T, unsigned int N>
template<typename T, unsigned int N>
template<typename T, unsigned int N>
template<typename T, unsigned int N>
template<typename T, unsigned int N>
template<typename T, unsigned int N>
template<typename T, unsigned int N>
The documentation for this class was generated from the following file: