in c_src/hyper_carray.c [230:246]
static ERL_NIF_TERM register_sum(ErlNifEnv * env, int argc,
const ERL_NIF_TERM argv[])
{
carray_ptr arr = NULL;
HYPER_CARRAY_OR_BADARG(argv[0], arr);
int currval = 0;
double sum = 0.0;
unsigned int size = arr->size;
for (int i = 0; i < size; ++i) {
currval = arr->items[i];
sum += 1.0 / (double) (0x01 << currval);
}
return enif_make_double(env, sum);
}