21 #ifndef AVUTIL_SOFTFLOAT_H
22 #define AVUTIL_SOFTFLOAT_H
42 while((a.
mant + 0x1FFFFFFFU)<0x3FFFFFFFU){
70 int t= a.
mant + 0x40000000 < 0;
73 int t= (a.
mant + 0x3FFFFFFF
U)>>31;
102 if(t<0)
return (a.
mant >> (-t)) - b.
mant ;
109 if(t<0)
return (a.
mant >> (-t)) > b.
mant ;
115 if (t <-31)
return b;
155 tabIndex = (val.
mant - 0x20000000) >> 20;
157 rem = val.
mant & 0xFFFFF;
164 if (val.
mant < 0x40000000)
169 val.
exp = (val.
exp >> 1) + 1;
static av_always_inline SoftFloat av_sqrt_sf(SoftFloat val)
Rounding-to-nearest used.
const char const char void * val
static av_const SoftFloat av_div_sf(SoftFloat a, SoftFloat b)
b has to be normalized and not zero.
#define av_assert2(cond)
assert() equivalent, that does lie in speed critical code.
static av_const SoftFloat av_normalize_sf(SoftFloat a)
simple assert() macros that are a bit more flexible than ISO C assert().
static av_const int av_cmp_sf(SoftFloat a, SoftFloat b)
static av_const int av_gt_sf(SoftFloat a, SoftFloat b)
static av_const SoftFloat av_normalize1_sf(SoftFloat a)
static const int32_t av_sqrttbl_sf[512+1]
static av_const int av_sf2int(SoftFloat v, int frac_bits)
Rounding is to -inf.
static av_const SoftFloat av_sub_sf(SoftFloat a, SoftFloat b)
static av_const SoftFloat av_add_sf(SoftFloat a, SoftFloat b)
static const int32_t av_sqr_exp_multbl_sf[2]
common internal and external API header
static av_const SoftFloat av_mul_sf(SoftFloat a, SoftFloat b)
void av_sincos_sf(int a, int *s, int *c)
Rounding-to-nearest used.
static av_const SoftFloat av_int2sf(int v, int frac_bits)
Converts a mantisse and exponent to a SoftFloat.