Handbook
Glossary
scaled-integer>half ( n -- raw )
Vocabulary
math
.
floats
.
small
.
private
Inputs
n
an
object
Outputs
raw
an
object
Definition
USING:
kernel
math
;
IN:
math.floats.small.private
::
scaled-integer>half
( n -- raw )
n 0
<
32768 0
?
:>
sign n
abs
:>
magnitude magnitude
zero?
[
sign
]
[
magnitude
log2
:>
top top 33
-
:>
exponent! exponent 0
<=
[
magnitude -24
round-binary-shift
sign
bitor
]
[
magnitude 10 top
-
round-binary-shift
:>
significand! significand 2048
>=
[
significand -1
shift
significand! exponent 1
+
exponent!
]
when
exponent 31
>=
[
sign 31744
bitor
]
[
sign exponent 10
shift
bitor
significand 1024
-
bitor
]
if
]
if
]
if
;