12 unsigned long hashcode (const cl_I& x)
14 var unsigned long code = 0x814BE3A5;
15 // We walk through all limbs. It may take some time for very large
16 // integers, but it's better than completely ignoring some limbs.
18 #if (cl_value_len <= intLsize)
20 #elif (cl_word_size==64)
26 var const uintD* MSDptr;
28 BN_to_NDS_nocopy(x, MSDptr=,len=,);
29 for (; len > 0; len--) {
30 var uintD c = msprefnext(MSDptr);
31 code = (code << 5) | (code >> 27); // rotate left 5 bits
32 code += (long)c << 16;