21 #ifndef AVCODEC_DCAMATH_H 22 #define AVCODEC_DCAMATH_H 30 return (
int32_t)((a + (INT64_C(1) << (bits - 1))) >> bits);
37 return norm__((int64_t)a * b, bits);
static int32_t mul22(int32_t a, int32_t b)
The reader does not expect b to be semantically here and if the code is changed by maybe adding a a division or other the signedness will almost certainly be mistaken To avoid this confusion a new type was SUINT is the C unsigned type but it holds a signed int to use the same example SUINT a
static int32_t mul15(int32_t a, int32_t b)
static int32_t norm16(int64_t a)
static int32_t clip23(int32_t a)
static int32_t mul23(int32_t a, int32_t b)
static int32_t mul16(int32_t a, int32_t b)
static int32_t norm20(int64_t a)
static int32_t mul31(int32_t a, int32_t b)
static int32_t mul32(int32_t a, int32_t b)
static int32_t norm21(int64_t a)
common internal and external API header
static int32_t norm__(int64_t a, int bits)
static int32_t mul17(int32_t a, int32_t b)
static int32_t norm23(int64_t a)
static int32_t norm13(int64_t a)
static int32_t mul__(int32_t a, int32_t b, int bits)