Handbook
Glossary
round-bfloat-intermediate ( exact -- value )
Vocabulary
math
.
floats
.
small
.
bfloat
.
private
Inputs
exact
an
object
Outputs
value
an
object
Definition
USING:
kernel
math
;
IN:
math.floats.small.bfloat.private
::
round-bfloat-intermediate
( exact -- value )
exact 0
<
2147483648 0
?
:>
sign exact
abs
:>
magnitude magnitude
zero?
[
sign
bits>float
]
[
magnitude
numerator
log2
magnitude
denominator
log2
-
:>
exponent! magnitude exponent
rational-power-of-two
<
[
exponent 1
-
exponent!
]
when
exponent -126
<
[
sign
bits>float
]
[
exponent 128
>=
[
sign 2139095040
bitor
bits>float
]
[
magnitude 23 exponent
-
rational-power-of-two
*
:>
scaled scaled
>integer
:>
significand scaled
significand
=
[
significand
]
[
significand 1
bitor
]
if
8388607
bitand
exponent 127
+
23
shift
bitor
sign
bitor
bits>float
]
if
]
if
]
if
;