dist-to-code ( dist -- code )


Vocabulary
compression.gzip.private

Inputs
distan object


Outputs
codean object


Definition


: dist-to-code ( dist -- code )
{
{ [ dup 5 < ] [ -1 + ] }
{
[ dup 9 < ]
[
[ 5 - 2 /i 4 + ]
[ 5 - 2 mod 1 <bits> >bit-array ] bi 2array
]
}
{
[ dup 17 < ]
[
[ 9 - 4 /i 6 + ]
[ 9 - 4 mod 2 <bits> >bit-array ] bi 2array
]
}
{
[ dup 33 < ]
[
[ 17 - 8 /i 8 + ]
[ 17 - 8 mod 3 <bits> >bit-array ] bi 2array
]
}
{
[ dup 65 < ]
[
[ 33 - 16 /i 10 + ]
[ 33 - 16 mod 4 <bits> >bit-array ] bi 2array
]
}
{
[ dup 129 < ]
[
[ 65 - 32 /i 12 + ]
[ 65 - 32 mod 5 <bits> >bit-array ] bi 2array
]
}
{
[ dup 257 < ]
[
[ 129 - 64 /i 14 + ]
[ 129 - 64 mod 6 <bits> >bit-array ] bi 2array
]
}
{
[ dup 513 < ]
[
[ 257 - 128 /i 16 + ]
[ 257 - 128 mod 7 <bits> >bit-array ] bi 2array
]
}
{
[ dup 1025 < ]
[
[ 513 - 256 /i 18 + ]
[ 513 - 256 mod 8 <bits> >bit-array ] bi 2array
]
}
{
[ dup 2049 < ]
[
[ 1025 - 512 /i 20 + ]
[ 1025 - 512 mod 9 <bits> >bit-array ] bi 2array
]
}
{
[ dup 4097 < ]
[
[ 2049 - 1024 /i 22 + ]
[ 2049 - 1024 mod 10 <bits> >bit-array ] bi
2array
]
}
{
[ dup 8193 < ]
[
[ 4097 - 2048 /i 24 + ]
[ 4097 - 2048 mod 11 <bits> >bit-array ] bi
2array
]
}
{
[ dup 16385 < ]
[
[ 8193 - 4096 /i 26 + ]
[ 8193 - 4096 mod 12 <bits> >bit-array ] bi
2array
]
}
[
[ 8193 - 4096 /i 28 + ]
[ 8193 - 4096 mod 13 <bits> >bit-array ] bi 2array
]
} cond ;