static ERL_NIF_TERM register_sum()

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);
}