long popcnt_array ( long *a, int size ) { int w, b; long word; long n; n = 0; for ( w = 0; w < size; w++ ) { word = a[w]; n += word & 1; for ( b = 1; b < 64; b++ ) { n += (word >> b) & 1; } } return n; }