6 #include "specialize.h"
9 uint_fast16_t f64_classify( float64_t a
)
17 uint_fast16_t infOrNaN
= expF64UI( uiA
) == 0x7FF;
18 uint_fast16_t subnormalOrZero
= expF64UI( uiA
) == 0;
19 bool sign
= signF64UI( uiA
);
22 ( sign
&& infOrNaN
&& fracF64UI( uiA
) == 0 ) << 0 |
23 ( sign
&& !infOrNaN
&& !subnormalOrZero
) << 1 |
24 ( sign
&& subnormalOrZero
&& fracF64UI( uiA
) ) << 2 |
25 ( sign
&& subnormalOrZero
&& fracF64UI( uiA
) == 0 ) << 3 |
26 ( !sign
&& infOrNaN
&& fracF64UI( uiA
) == 0 ) << 7 |
27 ( !sign
&& !infOrNaN
&& !subnormalOrZero
) << 6 |
28 ( !sign
&& subnormalOrZero
&& fracF64UI( uiA
) ) << 5 |
29 ( !sign
&& subnormalOrZero
&& fracF64UI( uiA
) == 0 ) << 4 |
30 ( isNaNF64UI( uiA
) && softfloat_isSigNaNF64UI( uiA
)) << 8 |
31 ( isNaNF64UI( uiA
) && !softfloat_isSigNaNF64UI( uiA
)) << 9;