📄 softfloat.h
字号:
#endif/*----------------------------------------------------------------------------| Software IEC/IEEE single-precision conversion routines.*----------------------------------------------------------------------------*/int float32_to_int32( float32 STATUS_PARAM );int float32_to_int32_round_to_zero( float32 STATUS_PARAM );unsigned int float32_to_uint32( float32 STATUS_PARAM );unsigned int float32_to_uint32_round_to_zero( float32 STATUS_PARAM );int64_t float32_to_int64( float32 STATUS_PARAM );int64_t float32_to_int64_round_to_zero( float32 STATUS_PARAM );float64 float32_to_float64( float32 STATUS_PARAM );#ifdef FLOATX80floatx80 float32_to_floatx80( float32 STATUS_PARAM );#endif#ifdef FLOAT128float128 float32_to_float128( float32 STATUS_PARAM );#endif/*----------------------------------------------------------------------------| Software IEC/IEEE single-precision operations.*----------------------------------------------------------------------------*/float32 float32_round_to_int( float32 STATUS_PARAM );float32 float32_add( float32, float32 STATUS_PARAM );float32 float32_sub( float32, float32 STATUS_PARAM );float32 float32_mul( float32, float32 STATUS_PARAM );float32 float32_div( float32, float32 STATUS_PARAM );float32 float32_rem( float32, float32 STATUS_PARAM );float32 float32_sqrt( float32 STATUS_PARAM );int float32_eq( float32, float32 STATUS_PARAM );int float32_le( float32, float32 STATUS_PARAM );int float32_lt( float32, float32 STATUS_PARAM );int float32_eq_signaling( float32, float32 STATUS_PARAM );int float32_le_quiet( float32, float32 STATUS_PARAM );int float32_lt_quiet( float32, float32 STATUS_PARAM );int float32_compare( float32, float32 STATUS_PARAM );int float32_compare_quiet( float32, float32 STATUS_PARAM );int float32_is_signaling_nan( float32 );int float64_is_nan( float64 a );INLINE float32 float32_abs(float32 a){ return a & 0x7fffffff;}INLINE float32 float32_chs(float32 a){ return a ^ 0x80000000;}/*----------------------------------------------------------------------------| Software IEC/IEEE double-precision conversion routines.*----------------------------------------------------------------------------*/int float64_to_int32( float64 STATUS_PARAM );int float64_to_int32_round_to_zero( float64 STATUS_PARAM );unsigned int float64_to_uint32( float64 STATUS_PARAM );unsigned int float64_to_uint32_round_to_zero( float64 STATUS_PARAM );int64_t float64_to_int64( float64 STATUS_PARAM );int64_t float64_to_int64_round_to_zero( float64 STATUS_PARAM );float32 float64_to_float32( float64 STATUS_PARAM );#ifdef FLOATX80floatx80 float64_to_floatx80( float64 STATUS_PARAM );#endif#ifdef FLOAT128float128 float64_to_float128( float64 STATUS_PARAM );#endif/*----------------------------------------------------------------------------| Software IEC/IEEE double-precision operations.*----------------------------------------------------------------------------*/float64 float64_round_to_int( float64 STATUS_PARAM );float64 float64_trunc_to_int( float64 STATUS_PARAM );float64 float64_add( float64, float64 STATUS_PARAM );float64 float64_sub( float64, float64 STATUS_PARAM );float64 float64_mul( float64, float64 STATUS_PARAM );float64 float64_div( float64, float64 STATUS_PARAM );float64 float64_rem( float64, float64 STATUS_PARAM );float64 float64_sqrt( float64 STATUS_PARAM );int float64_eq( float64, float64 STATUS_PARAM );int float64_le( float64, float64 STATUS_PARAM );int float64_lt( float64, float64 STATUS_PARAM );int float64_eq_signaling( float64, float64 STATUS_PARAM );int float64_le_quiet( float64, float64 STATUS_PARAM );int float64_lt_quiet( float64, float64 STATUS_PARAM );int float64_compare( float64, float64 STATUS_PARAM );int float64_compare_quiet( float64, float64 STATUS_PARAM );int float64_is_signaling_nan( float64 );INLINE float64 float64_abs(float64 a){ return a & 0x7fffffffffffffffLL;}INLINE float64 float64_chs(float64 a){ return a ^ 0x8000000000000000LL;}#ifdef FLOATX80/*----------------------------------------------------------------------------| Software IEC/IEEE extended double-precision conversion routines.*----------------------------------------------------------------------------*/int floatx80_to_int32( floatx80 STATUS_PARAM );int floatx80_to_int32_round_to_zero( floatx80 STATUS_PARAM );int64_t floatx80_to_int64( floatx80 STATUS_PARAM );int64_t floatx80_to_int64_round_to_zero( floatx80 STATUS_PARAM );float32 floatx80_to_float32( floatx80 STATUS_PARAM );float64 floatx80_to_float64( floatx80 STATUS_PARAM );#ifdef FLOAT128float128 floatx80_to_float128( floatx80 STATUS_PARAM );#endif/*----------------------------------------------------------------------------| Software IEC/IEEE extended double-precision operations.*----------------------------------------------------------------------------*/floatx80 floatx80_round_to_int( floatx80 STATUS_PARAM );floatx80 floatx80_add( floatx80, floatx80 STATUS_PARAM );floatx80 floatx80_sub( floatx80, floatx80 STATUS_PARAM );floatx80 floatx80_mul( floatx80, floatx80 STATUS_PARAM );floatx80 floatx80_div( floatx80, floatx80 STATUS_PARAM );floatx80 floatx80_rem( floatx80, floatx80 STATUS_PARAM );floatx80 floatx80_sqrt( floatx80 STATUS_PARAM );int floatx80_eq( floatx80, floatx80 STATUS_PARAM );int floatx80_le( floatx80, floatx80 STATUS_PARAM );int floatx80_lt( floatx80, floatx80 STATUS_PARAM );int floatx80_eq_signaling( floatx80, floatx80 STATUS_PARAM );int floatx80_le_quiet( floatx80, floatx80 STATUS_PARAM );int floatx80_lt_quiet( floatx80, floatx80 STATUS_PARAM );int floatx80_is_signaling_nan( floatx80 );INLINE floatx80 floatx80_abs(floatx80 a){ a.high &= 0x7fff; return a;}INLINE floatx80 floatx80_chs(floatx80 a){ a.high ^= 0x8000; return a;}#endif#ifdef FLOAT128/*----------------------------------------------------------------------------| Software IEC/IEEE quadruple-precision conversion routines.*----------------------------------------------------------------------------*/int float128_to_int32( float128 STATUS_PARAM );int float128_to_int32_round_to_zero( float128 STATUS_PARAM );int64_t float128_to_int64( float128 STATUS_PARAM );int64_t float128_to_int64_round_to_zero( float128 STATUS_PARAM );float32 float128_to_float32( float128 STATUS_PARAM );float64 float128_to_float64( float128 STATUS_PARAM );#ifdef FLOATX80floatx80 float128_to_floatx80( float128 STATUS_PARAM );#endif/*----------------------------------------------------------------------------| Software IEC/IEEE quadruple-precision operations.*----------------------------------------------------------------------------*/float128 float128_round_to_int( float128 STATUS_PARAM );float128 float128_add( float128, float128 STATUS_PARAM );float128 float128_sub( float128, float128 STATUS_PARAM );float128 float128_mul( float128, float128 STATUS_PARAM );float128 float128_div( float128, float128 STATUS_PARAM );float128 float128_rem( float128, float128 STATUS_PARAM );float128 float128_sqrt( float128 STATUS_PARAM );int float128_eq( float128, float128 STATUS_PARAM );int float128_le( float128, float128 STATUS_PARAM );int float128_lt( float128, float128 STATUS_PARAM );int float128_eq_signaling( float128, float128 STATUS_PARAM );int float128_le_quiet( float128, float128 STATUS_PARAM );int float128_lt_quiet( float128, float128 STATUS_PARAM );int float128_is_signaling_nan( float128 );INLINE float128 float128_abs(float128 a){ a.high &= 0x7fffffffffffffffLL; return a;}INLINE float128 float128_chs(float128 a){ a.high ^= 0x8000000000000000LL; return a;}#endif#else /* CONFIG_SOFTFLOAT */#include "softfloat-native.h"#endif /* !CONFIG_SOFTFLOAT */#endif /* !SOFTFLOAT_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -