git.iko.soy/typeable/attoparsec
on master help sign in
Update FastSet.hs
commitdfe8cdd3d576ac310e19302c021cfdc715c036e5 authorSeanRBurton <burton.seanr@gmail.com> dateFri 28 Nov 2014, 10:12 (12 years ago) parent1f1d8a6
1 file changed+3−7
Data/Attoparsec/Text/FastSet.hs+3−7
Data/Attoparsec/Text/FastSet.hs+3−7
@@ -46,13 +46,6 @@ data Entry = Entry {key :: {-# UNPACK #-} !Char,
4646probe :: Entry -> Int
4747probe e = offset e - initialOffset e
4848
49−fastHash :: Char -> Int
50−fastHash :: Char -> Int
51−fastHash c = v `xor` (v `shiftR` 27) + 1858994727
52− where x = fromEnum c
53− u = x `xor` (x `shiftR` 12) + 942815629
54− v = u `xor` (u `shiftL` 25) * 260401194
55−
5649resolveCollisions :: [Entry] -> [Entry]
5750resolveCollisions [] = []
5851resolveCollisions [x] = [x]
@@ -76,6 +69,9 @@ nextPowerOf2 x = go (x - 1) 1
7669 where go y 32 = y + 1
7770 go y k = go (y .|. (y `shiftR` k)) $ k * 2
7871
72+fastHash :: Char -> Int
73+fastHash c = fromEnum
74+
7975fromList :: String -> FastSet
8076fromList s = FastSet (arr key) (arr initialOffset) mask'
8177 where l = length s