Ticket #1433: HashStr.hs

File HashStr.hs, 476 bytes (added by sorear, 8 years ago)

source code

Line 
1module HashStr where
2
3import Data.Bits
4import Data.Word
5
6data Triple1 = Triple1 !Word32 !Word32 !Word32
7
8mix1 :: Triple1 -> Triple1
9mix1 = (\(Triple1 a b c) -> Triple1 a (b `xor` (a `shiftL` 9)) c) .
10       (\(Triple1 a b c) -> Triple1 a (b `xor` (a `shiftL` 9)) c)
11
12data Triple2 = Triple2 !Word64 !Word64 !Word64
13
14mix2 :: Triple2 -> Triple2
15mix2 = (\(Triple2 a b c) -> Triple2 a (b `xor` (a `shiftL` 9)) c) .
16       (\(Triple2 a b c) -> Triple2 a (b `xor` (a `shiftL` 9)) c)