Handbook
Glossary
dist-to-code ( dist -- code )
Vocabulary
compression
.
gzip
.
private
Inputs
dist
an
object
Outputs
code
an
object
Definition
USING:
arrays
bit-arrays
combinators
kernel
math
math.bits
;
IN:
compression.gzip.private
:
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
;