#define SIZE 16 #define DEFSTYLE STYLE_PRUNE|STYLE_NOFORK #define SSIZE 4 /* sqrt(SIZE) */ #define SIZEBITS 4 /* ceil(lg(SIZE)) */ #define SIZE1BITS 5 /* ceil(lg(SIZE+1)) */ static char fillchar(int fill) { return("?0123456789ABCDEF"[fill]); } #define bitcount(x) ((const char *)&bitcount_[0])[(x)] static char bitcount_[65536]; static void bitcount_init(void) { int i; int v; for (i=0;i<65536;i++) { v = (i & 0x5555) + ((i >> 1) & 0x5555); v = (v & 0x3333) + ((v >> 2) & 0x3333); v = (v & 0x0f0f) + ((v >> 4) & 0x0f0f); bitcount_[i] = (v & 0x00ff) + ((v >> 8) & 0x00ff); } } #define FILLEDFMT " %x " #define MASKFMT "%04x" #define SEP " " #define VECTYPE unsigned long long int #define SUMDECL unsigned char sum[16]; #define SUMINIT bzero(&sum[0],sizeof(sum)) #define SUMADD(vec) do { int i_; typeof((vec)) v_ = (vec); \ for (i_=15;i_>=0;i_--) { sum[i_] += (v_ >> i_) & 1; } } while (0) #define SUMGET(inx) sum[(inx)] #include "gen.c"