Lines Matching refs:SoftFloat

34 typedef struct SoftFloat{
37 }SoftFloat;
39 static const SoftFloat FLOAT_0 = { 0, MIN_EXP}; ///< 0.0
40 static const SoftFloat FLOAT_05 = { 0x20000000, 0}; ///< 0.5
41 static const SoftFloat FLOAT_1 = { 0x20000000, 1}; ///< 1.0
42 static const SoftFloat FLOAT_EPSILON = { 0x29F16B12, -16}; ///< A small value
43 static const SoftFloat FLOAT_1584893192 = { 0x32B771ED, 1}; ///< 1.584893192 (10^.2)
44 static const SoftFloat FLOAT_100000 = { 0x30D40000, 17}; ///< 100000
45 static const SoftFloat FLOAT_0999999 = { 0x3FFFFBCE, 0}; ///< 0.999999
46 static const SoftFloat FLOAT_MIN = { 0x20000000, MIN_EXP};
50 * Convert a SoftFloat to a double precision float.
52 static inline av_const double av_sf2double(SoftFloat v) {
57 static av_const SoftFloat av_normalize_sf(SoftFloat a){
79 static inline av_const SoftFloat av_normalize1_sf(SoftFloat a){
90 return (SoftFloat){ a.mant>>t, a.exp+t};
93 return (SoftFloat){a.mant>>t, a.exp+t};
102 static inline av_const SoftFloat av_mul_sf(SoftFloat a, SoftFloat b){
106 a = av_normalize1_sf((SoftFloat){a.mant, a.exp - 1});
116 static inline av_const SoftFloat av_div_sf(SoftFloat a, SoftFloat b){
138 static inline av_const int av_cmp_sf(SoftFloat a, SoftFloat b){
150 static inline av_const int av_gt_sf(SoftFloat a, SoftFloat b)
162 static inline av_const SoftFloat av_add_sf(SoftFloat a, SoftFloat b){
165 else if (t < 0) return av_normalize_sf(av_normalize1_sf((SoftFloat){ b.mant + (a.mant >> (-t)), b.exp}));
166 else if (t < 32) return av_normalize_sf(av_normalize1_sf((SoftFloat){ a.mant + (b.mant >> t ), a.exp}));
173 static inline av_const SoftFloat av_sub_sf(SoftFloat a, SoftFloat b){
174 return av_add_sf(a, (SoftFloat){ -b.mant, b.exp});
180 * Converts a mantisse and exponent to a SoftFloat.
182 * SoftFloat.
183 * @returns a SoftFloat with value v * 2^-frac_bits
185 static inline av_const SoftFloat av_int2sf(int v, int frac_bits){
191 return av_normalize_sf(av_normalize1_sf((SoftFloat){v, ONE_BITS + 1 - frac_bits + exp_offset}));
195 * Converts a SoftFloat to an integer.
198 static inline av_const int av_sf2int(SoftFloat v, int frac_bits){
207 static av_always_inline SoftFloat av_sqrt_sf(SoftFloat val)