in reply to Re^18: Module for 128-bit integer math? (updated)
in thread Module for 128-bit integer math?

I haven't tried to build this yet, ((I think?)I would need to use MPIR on 64-bit), so I haven't seen the full output, but am I missing something with regard to your use of ior rather than xor?

sub FNV_1_128_gmpn { my $s = shift; mpn_set_str(my $h, '144066263297769815596495629667062367629', 10, +128); mpn_set_str(my $p, '309485009821345068724781371', 10, 128); for (unpack 'C*', $s) { my $h2 = $h; mpn_mul($h, $h2, $p); mpn_ior_uint($h, $h, $_); } return $h; } sub FNV_1a_128_gmpn { my $s = shift; mpn_set_str(my $h, '144066263297769815596495629667062367629', 10, +128); mpn_set_str(my $p, '309485009821345068724781371', 10, 128 ); for (unpack 'C*', $s) { mpn_ior_uint($h, $h, $_); my $h2 = $h; mpn_mul($h, $h2, $p); } return $h; }

Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.

Replies are listed 'Best First'.
Re^20: Module for 128-bit integer math? (updated)
by salva (Canon) on Feb 23, 2011 at 22:35 UTC
    but am I missing something with regard to your use of ior rather than xor?

    Oops, that was an error on the benchmark script. It has been corrected now (and a new version of the module released).