blob: 94a81fc6cddc89a05c613cbfa58ebe984738630b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
#pragma OPENCL EXTENSION cl_intel_printf : enable
__kernel void check(__global unsigned long* permutations, __global int* results,
unsigned long mask, unsigned int n, unsigned int w, unsigned long offset) {
int id = get_global_id(0);
unsigned long curr_mask = mask | permutations[id + offset];
unsigned long tmask, sum, stones;
stones = tmask = sum = 0;
for (int i = 1; i <= w + 1; i++) {
if ((curr_mask & (1 << i)) == 0) {
stones += 1;
tmask |= 1 << (i - sum);
sum = i;
}
}
if (tmask == (1 << (n + 1)) - 2 && stones == n) {
printf("test");
results[id] = id;
}
}
|