private static void JenkinsLookup3Mix(ref uint a, ref uint b, ref uint c) { a -= c; a ^= ChecksumUtils.JenkinsLookup3Rot(c, 4); c += b; b -= a; b ^= ChecksumUtils.JenkinsLookup3Rot(a, 6); a += c; c -= b; c ^= ChecksumUtils.JenkinsLookup3Rot(b, 8); b += a; a -= c; a ^= ChecksumUtils.JenkinsLookup3Rot(c, 16); c += b; b -= a; b ^= ChecksumUtils.JenkinsLookup3Rot(a, 19); a += c; c -= b; c ^= ChecksumUtils.JenkinsLookup3Rot(b, 4); b += a; }
private static void JenkinsLookup3Final(ref uint a, ref uint b, ref uint c) { c ^= b; c -= ChecksumUtils.JenkinsLookup3Rot(b, 14); a ^= c; a -= ChecksumUtils.JenkinsLookup3Rot(c, 11); b ^= a; b -= ChecksumUtils.JenkinsLookup3Rot(a, 25); c ^= b; c -= ChecksumUtils.JenkinsLookup3Rot(b, 16); a ^= c; a -= ChecksumUtils.JenkinsLookup3Rot(c, 4); b ^= a; b -= ChecksumUtils.JenkinsLookup3Rot(a, 14); c ^= b; c -= ChecksumUtils.JenkinsLookup3Rot(b, 24); }