1 ! (c)2009 Joe Groff bsd license
2 USING: accessors alien.c-types alien.syntax kernel math math.order ;
5 : half>bits ( float -- bits )
7 [ -31 shift 15 shift ] [
10 dup HEX: 7f800000 >= [ -13 shift HEX: 7fff bitand ] [
18 : bits>half ( bits -- float )
19 [ -15 shift 31 shift ] [
22 dup HEX: 7c00 >= [ 13 shift HEX: 7f800000 bitor ] [
27 ] bi bitor bits>float ;
29 C-STRUCT: half { "ushort" "(bits)" } ;
34 [ half>bits <ushort> ] >>unboxer-quot
35 [ *ushort bits>half ] >>boxer-quot