45 #include "constants.h"
86 C[i][j] = C[i-1][j-1] + C[i-1][j];
124 intercept(&(PTS[i+1]), one, &(PS[idx[i]]));
126 res += HV(zero, &(PTS[i]));
132 memcpy(&counts[1], &C[n][0], (n+1)*
sizeof(
int));
139 C2P[i] = counts[ones];
141 intercept(&(PTS[C2P[i]]), &(PTS[C2P[
Rbit(i)]]), &(PTS[C2P[
Rpop(i)]]));
143 res += HV(zero, &(PTS[C2P[i]]));
145 res -= HV(zero, &(PTS[C2P[i]]));
This returns iterators for diferent type. WARNING, these objects are singleton, so new overwrites exi...
Simple point interface. Contains simple point manipulation functions.
double InExClusion(point *zero, point *one, int n, int *idx, point *PS)
Inclusion Exclusion Algorithm better than HSO for high d and small n.
struct point __attribute__((aligned(16))) point
All points must be aligned for SSE2.
Point is an array of coordinates, in a struct for simple and fast copy.