21 const std::size_t END = std::numeric_limits<std::size_t>::max();
49 std::size_t *buckets =
new size_t[Nbucket];
50 std::size_t *next =
new size_t[size];
51 std::fill(buckets, buckets+Nbucket, END);
52 std::fill(next, next+size, END);
64 int offset[14][3] = {{ 1, 1, 1}, { 0, 1, 1}, {-1, 1, 1},
65 { 1, 0, 1}, { 0, 0, 1}, {-1, 0, 1},
66 { 1,-1, 1}, { 0,-1, 1}, {-1,-1, 1},
67 { 1, 1, 0}, { 0, 1, 0}, {-1, 1, 0},
68 { 1, 0, 0}, { 0, 0, 0}};
71 for(std::size_t i = 0;i<size;++i)
75 next[i] = buckets[bucket_id];
76 buckets[bucket_id] = i;
79 for (std::size_t i=0; i< Nbucket; ++i) {
81 std::size_t j = buckets[i];
95 for (
int n=0; n<neigh;++n){
96 int bx_neigh = bx+offset[n][0];
97 int by_neigh = by+offset[n][1];
98 int bz_neigh = bz+offset[n][2];
106 unsigned bucket_id_neigh =
110 std::size_t i = buckets[bucket_id_self];
119 j = buckets[bucket_id_neigh];
121 for (
int o=0;o<self_offset;o++){
137 if (bucket_id_self==bucket_id_neigh)