diff options
Diffstat (limited to 'src/tools.cu')
-rw-r--r-- | src/tools.cu | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/src/tools.cu b/src/tools.cu index 3d3fed7..80d06ec 100644 --- a/src/tools.cu +++ b/src/tools.cu @@ -3,15 +3,19 @@ extern "C" { -__global__ void interleave(int nthreads, unsigned long long *x, unsigned long long *y, unsigned long long *z, int bits, unsigned long long *dest) +__global__ void +interleave(int nthreads, unsigned long long *x, unsigned long long *y, + unsigned long long *z, int bits, unsigned long long *dest) { - int id = blockIdx.x*blockDim.x + threadIdx.x; + int id = blockIdx.x*blockDim.x + threadIdx.x; - if (id >= nthreads) - return; + if (id >= nthreads) + return; - for (int i=0; i < bits; i++) - dest[id] |= (x[id] & 1 << i) << (2*i) | (y[id] & 1 << i) << (2*i+1) | (z[id] & 1 << i) << (2*i+2); + for (int i=0; i < bits; i++) + dest[id] |= (x[id] & 1 << i) << (2*i) | + (y[id] & 1 << i) << (2*i+1) | + (z[id] & 1 << i) << (2*i+2); } -} +} // extern "C" |