#include #include #include "minwise.h" /* generate a approx min-wise permutation for [2^n] within 2^-e and with restriction 2^k */ mwPermutation::mwPermutation(int n_, int k_, int e_){ n=n_; k=k_; e=e_; /* construct a series of kwhashfunctions */ ki=new int[k]; ri=new int[k]; int r=0; for(d=0;(d>ki[d]); if(ri[d]==2) ri[d]++; r+=ri[d]; } for(int i=0;r2^%d (k=2^%d,e=2^-%d)\n",n,ri[i],ki[i],e+1+k); #endif h[i]=new kwHashFunction(n , ri[i] , ki[i], e+1+k); } #ifdef DEBUG printf("2^%d mwPermutation(k=2^%d,e=2^-%d) constructed.\n",n,k,e); #endif } mwPermutation::~mwPermutation(){ for(int i=0;ihash(k,buf+r); r+=ri[i]; } for(int i=0;i