]> gitweb.factorcode.org Git - factor.git/blob - basis/checksums/internet/internet.factor
use radix literals
[factor.git] / basis / checksums / internet / internet.factor
1 ! Copyright (C) 2010 John Benediktsson
2 ! See http://factorcode.org/license.txt for BSD license
3
4 USING: checksums grouping io.binary kernel math sequences ;
5
6 IN: checksums.internet
7
8 SINGLETON: internet ! RFC 1071
9
10 INSTANCE: internet checksum
11
12 M: internet checksum-bytes
13     drop 0 swap 2 <sliced-groups> [ le> + ] each
14     [ -16 shift ] [ 0xffff bitand ] bi +
15     [ -16 shift ] keep + bitnot 2 >le ;
16