]> gitweb.factorcode.org Git - factor.git/blobdiff - basis/compression/huffman/huffman.factor
Delete empty unit tests files, remove 1- and 1+, reorder IN: lines in a lot of places...
[factor.git] / basis / compression / huffman / huffman.factor
index 6ef9c2fabcd698a539e72c8ab6cc5540cc20f831..2df4dce916a5f5807f54540bb4349188fac608c3 100755 (executable)
@@ -1,6 +1,6 @@
 ! Copyright (C) 2009 Marc Fauconneau.\r
 ! See http://factorcode.org/license.txt for BSD license.\r
-USING: accessors arrays assocs constructors fry\r
+USING: accessors arrays assocs fry\r
 hashtables io kernel locals math math.order math.parser\r
 math.ranges multiline sequences ;\r
 IN: compression.huffman\r
@@ -17,8 +17,8 @@ TUPLE: huffman-code
     { code } ;\r
 \r
 : <huffman-code> ( -- code ) 0 0 0 huffman-code boa ;\r
-: next-size ( code -- ) [ 1+ ] change-size [ 2 * ] change-code drop ;\r
-: next-code ( code -- ) [ 1+ ] change-code drop ;\r
+: next-size ( code -- ) [ 1 + ] change-size [ 2 * ] change-code drop ;\r
+: next-code ( code -- ) [ 1 + ] change-code drop ;\r
 \r
 :: all-patterns ( huff n -- seq )\r
     n log2 huff size>> - :> free-bits\r
@@ -58,7 +58,10 @@ TUPLE: huffman-decoder
     { rtable }\r
     { bits/level } ;\r
 \r
-CONSTRUCTOR: huffman-decoder ( bs tdesc -- decoder )\r
+: <huffman-decoder> ( bs tdesc -- decoder )\r
+    huffman-decoder new\r
+    swap >>tdesc\r
+    swap >>bs\r
     16 >>bits/level\r
     [ ] [ tdesc>> ] [ bits/level>> 2^ ] tri reverse-table >>rtable ;\r
 \r