diff --git a/celt/arch.h b/celt/arch.h index 3bbcd3663a24b3a08190dd9c7e9ae7d4495e4034..dcfba763b8b9ad9b62cfa24fc551a002564a379c 100644 --- a/celt/arch.h +++ b/celt/arch.h @@ -69,11 +69,8 @@ static OPUS_INLINE void _celt_fatal(const char *str, const char *file, int line) #define IMUL32(a,b) ((a)*(b)) -#define ABS(x) ((x) < 0 ? (-(x)) : (x)) /**< Absolute integer value. */ -#define ABS16(x) ((x) < 0 ? (-(x)) : (x)) /**< Absolute 16-bit value. */ #define MIN16(a,b) ((a) < (b) ? (a) : (b)) /**< Minimum 16-bit value. */ #define MAX16(a,b) ((a) > (b) ? (a) : (b)) /**< Maximum 16-bit value. */ -#define ABS32(x) ((x) < 0 ? (-(x)) : (x)) /**< Absolute 32-bit value. */ #define MIN32(a,b) ((a) < (b) ? (a) : (b)) /**< Minimum 32-bit value. */ #define MAX32(a,b) ((a) > (b) ? (a) : (b)) /**< Maximum 32-bit value. */ #define IMIN(a,b) ((a) < (b) ? (a) : (b)) /**< Minimum int value. */ @@ -108,6 +105,9 @@ typedef opus_val32 celt_ener; #define SCALEIN(a) (a) #define SCALEOUT(a) (a) +#define ABS16(x) ((x) < 0 ? (-(x)) : (x)) +#define ABS32(x) ((x) < 0 ? (-(x)) : (x)) + #ifdef FIXED_DEBUG #include "fixed_debug.h" #else @@ -146,6 +146,10 @@ typedef float celt_ener; #define VERY_LARGE16 1e15f #define Q15_ONE ((opus_val16)1.f) +/* This appears to be the same speed as C99's fabsf() but it's more portable. */ +#define ABS16(x) ((float)fabs(x)) +#define ABS32(x) ((float)fabs(x)) + #define QCONST16(x,bits) (x) #define QCONST32(x,bits) (x) diff --git a/celt/tests/test_unit_cwrs32.c b/celt/tests/test_unit_cwrs32.c index ac2a8d129c95d305b804dabb51246a76a14c0235..36dd8af5f5c4469217c9440fffd4668415ee9acb 100644 --- a/celt/tests/test_unit_cwrs32.c +++ b/celt/tests/test_unit_cwrs32.c @@ -127,7 +127,7 @@ int main(void){ cwrsi(n,k,i,y); #endif sy=0; - for(j=0;j<n;j++)sy+=ABS(y[j]); + for(j=0;j<n;j++)sy+=abs(y[j]); if(sy!=k){ fprintf(stderr,"N=%d Pulse count mismatch in cwrsi (%d!=%d).\n", n,sy,k);