blob: dbd8dd3eaeeaca6aa5a25386dbb426664dbea201 [file] [log] [blame]
# Feed this file to script/make-artificial.go
# This modifies abraca.txt.bz2.make-artificial.txt to produce the same
# decompressed output, "abraca", but in a more elaborate way. The Huffman codes
# here have the full 258 symbols instead of just 6.
make bzip2
# Bitslices (a) ..= (g)
bits 16 0x425A
bits 8 0x68
bits 8 0x39
bits 48 0x314159265359
bits 32 0x76A70995
bits 1 0x0
bits 24 0x000001
# Bitslices (h) ..= (j)
bits 16 0xFFFF
repeat 16 [
bits 16 0xFFFF
]
# Bitslices (k) ..= (m)
bits 3 0x2
bits 15 0x0001
bits 1 0x0
# Bitslices (n) ..= (o)
#
# Both Huffman codes have 258 symbols: 254 × 8-bit symbols and then 4 × 9-bit
# symbols.
#
# For small XYZ (where XYZ < 253), the mXYZ symbol's bitstring is (XYZ+1) in
# binary. For example, the m099 symbol's bitstring is "01100100", because the
# binary representation of 0d099+1 = 0d100 = 0x64 = 0b01100100.
#
# RUNA is the 8-bit bitstring "00000000".
# RUNB is the 8-bit bitstring "00000001".
# m001 is the 8-bit bitstring "00000010".
# m002 is the 8-bit bitstring "00000011".
# m003 is the 8-bit bitstring "00000100".
# etc
# m250 is the 8-bit bitstring "11111011".
# m251 is the 8-bit bitstring "11111100".
# m252 is the 8-bit bitstring "11111101".
# m253 is the 9-bit bitstring "111111100".
# m254 is the 9-bit bitstring "111111101".
# m255 is the 9-bit bitstring "111111110".
# EOB is the 9-bit bitstring "111111111".
repeat 2 [
bits 5 0x08
repeat 254 [
bits 1 0x0
]
bits 3 0x4
bits 1 0x0
bits 1 0x0
bits 1 0x0
]
# Bitslice (p)
#
# There are 7 symbols.
# Order = [0x00, 0x01, 0x02, 0x03, ... 0xFF] m099 picks 'c'. 0d099+1 = 0x64.
# Order = ['c', 0x00, 0x01, 0x02, ... 0xFF] m098 picks 'a'. 0d098+1 = 0x63.
# Order = ['a', 'c', 0x00, 0x01, ... 0xFF] m114 picks 'r'. 0d114+1 = 0x73.
# Order = ['r', 'a', 'c', 0x00, ... 0xFF] m001 picks 'a'. 0d001+1 = 0x02.
# Order = ['a', 'r', 'c', 0x00, ... 0xFF] RUNA picks 'a'.
# Order = ['a', 'r', 'c', 0x00, ... 0xFF] m100 picks 'b'. 0d100+1 = 0x65.
# Order = ['b', 'a', 'r', 'c', ... 0xFF] EOB.
bits 8 0x64
bits 8 0x63
bits 8 0x73
bits 8 0x02
bits 8 0x00
bits 8 0x65
bits 9 0x1FF
# Bitslices (q) ..= (s)
bits 48 0x177245385090
bits 32 0x76A70995
bits 1 0x0