Handbook
Glossary
small-bits>float ( raw fraction-bits exponent-bits -- x )
Vocabulary
math
.
floats
.
small
.
private
Inputs
raw
an
object
fraction-bits
an
object
exponent-bits
an
object
Outputs
x
an
object
Definition
USING:
kernel
math
math.bitwise
;
IN:
math.floats.small.private
::
small-bits>float
( raw fraction-bits exponent-bits -- x )
raw 32768
bitand
48
shift
:>
sign exponent-bits
2^
1
-
:>
max-exponent raw fraction-bits
neg
shift
max-exponent
bitand
:>
exponent raw fraction-bits
bits
:>
fraction exponent-bits 1
-
2^
1
-
:>
bias exponent max-exponent
=
[
fraction
zero?
[
sign 9218868437227405312
bitor
]
[
9221120237041090560
]
if
bits>double
]
[
exponent
zero?
[
fraction 1 bias
-
fraction-bits
-
]
[
fraction fraction-bits
2^
bitor
exponent bias
-
fraction-bits
-
]
if
:>
( significand power ) significand
zero?
[
sign
bits>double
]
[
significand
log2
:>
top sign top power
+
1023
+
52
shift
bitor
significand top
2^
-
52 top
-
shift
bitor
bits>double
]
if
]
if
;