Bug fixes for lcs.diff2html; xml.writer
[factor/jcg.git] / basis / checksums / adler-32 / adler-32.factor
blob1be4bfb58421efbe5a7ca48185bb871490e9bc26
1 ! Copyright (C) 2008 Doug Coleman.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: checksums classes.singleton kernel math math.ranges
4 math.vectors sequences ;
5 IN: checksums.adler-32
7 SINGLETON: adler-32
9 : adler-32-modulus 65521 ; inline
11 M: adler-32 checksum-bytes ( bytes checksum -- value )
12     drop
13     [ sum 1+ ]
14     [ [ dup length [1,b] <reversed> v. ] [ length ] bi + ] bi
15     [ adler-32-modulus mod ] bi@ 16 shift bitor ;