add isl_sample_piplib.h to the distribution
[isl.git] / isl_gmp.c
blob062276314227eac43f6424cfc30b5b984c0c85d7
1 #include "isl_int.h"
3 u_int32_t isl_gmp_hash(mpz_t v, u_int32_t hash)
5 int sa = v[0]._mp_size;
6 int abs_sa = sa < 0 ? -sa : sa;
7 unsigned char *data = (unsigned char *)v[0]._mp_d;
8 unsigned char *end = data + abs_sa * sizeof(v[0]._mp_d[0]);
10 if (sa < 0) {
11 hash *= 16777619;
12 hash ^= 0xFF;
14 for (; data < end; ++data) {
15 hash *= 16777619;
16 hash ^= *data;
18 return hash;