--- a/UninterpretedBytes.st Sun Apr 03 07:04:52 2016 +0200
+++ b/UninterpretedBytes.st Fri Apr 08 07:02:36 2016 +0100
@@ -467,7 +467,6 @@
"Modified: / 5.3.1998 / 14:56:22 / stefan"
! !
-
!UninterpretedBytes methodsFor:'Compatibility'!
doubleWordAt:index
@@ -4235,6 +4234,25 @@
#[1 2 3 4 1 2 3 4] computeXorHashFrom:1 to:8.
#[1 2 3 4 5 6 7 8] computeXorHashFrom:2 to:8.
#[2 3 4 5 6 7 8] computeXorHashFrom:1 to:7.
+ #[2 3 4 5 6 7 8] computeXorHashFrom:1 to:8.
+ "
+!
+
+hash
+ |sz|
+
+ sz := self size.
+ sz <= 32 ifTrue:[
+ ^ self computeXorHashFrom:1 to:sz.
+ ].
+ ^ (sz bitXor:(self computeXorHashFrom:1 to:16)) bitXor:(self computeXorHashFrom:sz-16 to:sz)
+
+ "
+ #[1 2 3 4] hash
+ #[1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4
+ 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 ] hash
+ #[1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4
+ 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1] hash
"
! !