44 #define MULT16_16SU(a,b) ((opus_val32)(opus_val16)(a)*(opus_val32)(opus_uint16)(b)) 45 #define MULT32_32_Q31(a,b) ADD32(ADD32(SHL32(MULT16_16(SHR32((a),16),SHR((b),16)),1), SHR32(MULT16_16SU(SHR32((a),16),((b)&0x0000ffff)),15)), SHR32(MULT16_16SU(SHR32((b),16),((a)&0x0000ffff)),15)) 48 #define MULT16_32_Q16(a,b) ADD32(MULT16_16((a),SHR32((b),16)), SHR32(MULT16_16SU((a),((b)&0x0000ffff)),16)) 50 #define MULT16_32_P16(a,b) MULT16_32_PX(a,b,16) 52 #define QCONST16(x,bits) ((opus_val16)(.5+(x)*(((opus_val32)1)<<(bits)))) 53 #define QCONST32(x,bits) ((opus_val32)(.5+(x)*(((opus_val32)1)<<(bits)))) 55 #define VERIFY_SHORT(x) ((x)<=32767&&(x)>=-32768) 56 #define VERIFY_INT(x) ((x)<=2147483647LL&&(x)>=-2147483648LL) 57 #define VERIFY_UINT(x) ((x)<=(2147483647LLU<<1)) 59 #define SHR(a,b) SHR32(a,b) 60 #define PSHR(a,b) PSHR32(a,b) 62 static OPUS_INLINE
short NEG16(
int x)
67 fprintf (
stderr,
"NEG16: input is not short: %d\n", (
int)x);
68 #ifdef FIXED_DEBUG_ASSERT 75 fprintf (
stderr,
"NEG16: output is not short: %d\n", (
int)res);
76 #ifdef FIXED_DEBUG_ASSERT 88 fprintf (
stderr,
"NEG16: input is not int: %d\n", (
int)x);
89 #ifdef FIXED_DEBUG_ASSERT 96 fprintf (
stderr,
"NEG16: output is not int: %d\n", (
int)res);
97 #ifdef FIXED_DEBUG_ASSERT 105 #define EXTRACT16(x) EXTRACT16_(x, __FILE__, __LINE__) 106 static OPUS_INLINE
short EXTRACT16_(
int x,
char *
file,
int line)
111 fprintf (
stderr,
"EXTRACT16: input is not short: %d in %s: line %d\n", x, file, line);
112 #ifdef FIXED_DEBUG_ASSERT 121 #define EXTEND32(x) EXTEND32_(x, __FILE__, __LINE__) 122 static OPUS_INLINE
int EXTEND32_(
int x,
char *
file,
int line)
127 fprintf (
stderr,
"EXTEND32: input is not short: %d in %s: line %d\n", x, file, line);
128 #ifdef FIXED_DEBUG_ASSERT 137 #define SHR16(a, shift) SHR16_(a, shift, __FILE__, __LINE__) 138 static OPUS_INLINE
short SHR16_(
int a,
int shift,
char *
file,
int line)
143 fprintf (
stderr,
"SHR16: inputs are not short: %d >> %d in %s: line %d\n", a, shift, file, line);
144 #ifdef FIXED_DEBUG_ASSERT 151 fprintf (
stderr,
"SHR16: output is not short: %d in %s: line %d\n", res, file, line);
152 #ifdef FIXED_DEBUG_ASSERT 159 #define SHL16(a, shift) SHL16_(a, shift, __FILE__, __LINE__) 160 static OPUS_INLINE
short SHL16_(
int a,
int shift,
char *
file,
int line)
165 fprintf (
stderr,
"SHL16: inputs are not short: %d %d in %s: line %d\n", a, shift, file, line);
166 #ifdef FIXED_DEBUG_ASSERT 173 fprintf (
stderr,
"SHL16: output is not short: %d in %s: line %d\n", res, file, line);
174 #ifdef FIXED_DEBUG_ASSERT 187 fprintf (
stderr,
"SHR32: inputs are not int: %d %d\n", (
int)
a, shift);
188 #ifdef FIXED_DEBUG_ASSERT 195 fprintf (
stderr,
"SHR32: output is not int: %d\n", (
int)res);
196 #ifdef FIXED_DEBUG_ASSERT 203 #define SHL32(a, shift) SHL32_(a, shift, __FILE__, __LINE__) 209 fprintf (
stderr,
"SHL32: inputs are not int: %lld %d in %s: line %d\n", a, shift, file, line);
210 #ifdef FIXED_DEBUG_ASSERT 217 fprintf (
stderr,
"SHL32: output is not int: %lld<<%d = %lld in %s: line %d\n", a, shift, res, file, line);
218 #ifdef FIXED_DEBUG_ASSERT 226 #define PSHR32(a,shift) (celt_mips--,SHR32(ADD32((a),(((opus_val32)(1)<<((shift))>>1))),shift)) 227 #define VSHR32(a, shift) (((shift)>0) ? SHR32(a, shift) : SHL32(a, -(shift))) 229 #define ROUND16(x,a) (celt_mips--,EXTRACT16(PSHR32((x),(a)))) 230 #define HALF16(x) (SHR16(x,1)) 231 #define HALF32(x) (SHR32(x,1)) 236 #define ADD16(a, b) ADD16_(a, b, __FILE__, __LINE__) 237 static OPUS_INLINE
short ADD16_(
int a,
int b,
char *
file,
int line)
242 fprintf (
stderr,
"ADD16: inputs are not short: %d %d in %s: line %d\n", a, b, file, line);
243 #ifdef FIXED_DEBUG_ASSERT 250 fprintf (
stderr,
"ADD16: output is not short: %d+%d=%d in %s: line %d\n", a,b,res, file, line);
251 #ifdef FIXED_DEBUG_ASSERT 259 #define SUB16(a, b) SUB16_(a, b, __FILE__, __LINE__) 260 static OPUS_INLINE
short SUB16_(
int a,
int b,
char *
file,
int line)
265 fprintf (
stderr,
"SUB16: inputs are not short: %d %d in %s: line %d\n", a, b, file, line);
266 #ifdef FIXED_DEBUG_ASSERT 273 fprintf (
stderr,
"SUB16: output is not short: %d in %s: line %d\n", res, file, line);
274 #ifdef FIXED_DEBUG_ASSERT 282 #define ADD32(a, b) ADD32_(a, b, __FILE__, __LINE__) 288 fprintf (
stderr,
"ADD32: inputs are not int: %d %d in %s: line %d\n", (
int)a, (
int)b, file, line);
289 #ifdef FIXED_DEBUG_ASSERT 296 fprintf (
stderr,
"ADD32: output is not int: %d in %s: line %d\n", (
int)res, file, line);
297 #ifdef FIXED_DEBUG_ASSERT 305 #define SUB32(a, b) SUB32_(a, b, __FILE__, __LINE__) 311 fprintf (
stderr,
"SUB32: inputs are not int: %d %d in %s: line %d\n", (
int)a, (
int)b, file, line);
312 #ifdef FIXED_DEBUG_ASSERT 319 fprintf (
stderr,
"SUB32: output is not int: %d in %s: line %d\n", (
int)res, file, line);
320 #ifdef FIXED_DEBUG_ASSERT 329 #define UADD32(a, b) UADD32_(a, b, __FILE__, __LINE__) 335 fprintf (
stderr,
"UADD32: inputs are not uint32: %llu %llu in %s: line %d\n", a, b, file, line);
336 #ifdef FIXED_DEBUG_ASSERT 343 fprintf (
stderr,
"UADD32: output is not uint32: %llu in %s: line %d\n", res, file, line);
344 #ifdef FIXED_DEBUG_ASSERT 353 #define USUB32(a, b) USUB32_(a, b, __FILE__, __LINE__) 359 fprintf (
stderr,
"USUB32: inputs are not uint32: %llu %llu in %s: line %d\n", a, b, file, line);
360 #ifdef FIXED_DEBUG_ASSERT 366 fprintf (
stderr,
"USUB32: inputs underflow: %llu < %llu in %s: line %d\n", a, b, file, line);
367 #ifdef FIXED_DEBUG_ASSERT 374 fprintf (
stderr,
"USUB32: output is not uint32: %llu - %llu = %llu in %s: line %d\n", a, b, res, file, line);
375 #ifdef FIXED_DEBUG_ASSERT 389 fprintf (
stderr,
"MULT16_16_16: inputs are not short: %d %d\n",
a, b);
390 #ifdef FIXED_DEBUG_ASSERT 397 fprintf (
stderr,
"MULT16_16_16: output is not short: %d\n", res);
398 #ifdef FIXED_DEBUG_ASSERT 406 #define MULT16_16(a, b) MULT16_16_(a, b, __FILE__, __LINE__) 407 static OPUS_INLINE
int MULT16_16_(
int a,
int b,
char *
file,
int line)
412 fprintf (
stderr,
"MULT16_16: inputs are not short: %d %d in %s: line %d\n", a, b, file, line);
413 #ifdef FIXED_DEBUG_ASSERT 420 fprintf (
stderr,
"MULT16_16: output is not int: %d in %s: line %d\n", (
int)res, file, line);
421 #ifdef FIXED_DEBUG_ASSERT 429 #define MAC16_16(c,a,b) (celt_mips-=2,ADD32((c),MULT16_16((a),(b)))) 431 #define MULT16_32_QX(a, b, Q) MULT16_32_QX_(a, b, Q, __FILE__, __LINE__) 437 fprintf (
stderr,
"MULT16_32_Q%d: inputs are not short+int: %d %d in %s: line %d\n", Q, (
int)a, (
int)b, file, line);
438 #ifdef FIXED_DEBUG_ASSERT 444 fprintf (
stderr,
"MULT16_32_Q%d: second operand too large: %d %d in %s: line %d\n", Q, (
int)a, (
int)b, file, line);
445 #ifdef FIXED_DEBUG_ASSERT 452 fprintf (
stderr,
"MULT16_32_Q%d: output is not int: %d*%d=%d in %s: line %d\n", Q, (
int)a, (
int)b,(
int)res, file, line);
453 #ifdef FIXED_DEBUG_ASSERT 464 #define MULT16_32_PX(a, b, Q) MULT16_32_PX_(a, b, Q, __FILE__, __LINE__) 470 fprintf (
stderr,
"MULT16_32_P%d: inputs are not short+int: %d %d in %s: line %d\n\n", Q, (
int)a, (
int)b, file, line);
471 #ifdef FIXED_DEBUG_ASSERT 477 fprintf (
stderr,
"MULT16_32_Q%d: second operand too large: %d %d in %s: line %d\n\n", Q, (
int)a, (
int)b,file, line);
478 #ifdef FIXED_DEBUG_ASSERT 485 fprintf (
stderr,
"MULT16_32_P%d: output is not int: %d*%d=%d in %s: line %d\n\n", Q, (
int)a, (
int)b,(
int)res, file, line);
486 #ifdef FIXED_DEBUG_ASSERT 497 #define MULT16_32_Q15(a,b) MULT16_32_QX(a,b,15) 498 #define MAC16_32_Q15(c,a,b) (celt_mips-=2,ADD32((c),MULT16_32_Q15((a),(b)))) 499 #define MAC16_32_Q16(c,a,b) (celt_mips-=2,ADD32((c),MULT16_32_Q16((a),(b)))) 526 fprintf (
stderr,
"MULT16_16_Q11: inputs are not short: %d %d\n",
a, b);
527 #ifdef FIXED_DEBUG_ASSERT 535 fprintf (
stderr,
"MULT16_16_Q11: output is not short: %d*%d=%d\n", (
int)
a, (
int)b, (
int)res);
536 #ifdef FIXED_DEBUG_ASSERT 548 fprintf (
stderr,
"MULT16_16_Q13: inputs are not short: %d %d\n",
a, b);
549 #ifdef FIXED_DEBUG_ASSERT 557 fprintf (
stderr,
"MULT16_16_Q13: output is not short: %d*%d=%d\n",
a, b, (
int)res);
558 #ifdef FIXED_DEBUG_ASSERT 570 fprintf (
stderr,
"MULT16_16_Q14: inputs are not short: %d %d\n",
a, b);
571 #ifdef FIXED_DEBUG_ASSERT 579 fprintf (
stderr,
"MULT16_16_Q14: output is not short: %d\n", (
int)res);
580 #ifdef FIXED_DEBUG_ASSERT 588 #define MULT16_16_Q15(a, b) MULT16_16_Q15_(a, b, __FILE__, __LINE__) 589 static OPUS_INLINE
short MULT16_16_Q15_(
int a,
int b,
char *
file,
int line)
594 fprintf (
stderr,
"MULT16_16_Q15: inputs are not short: %d %d in %s: line %d\n", a, b, file, line);
595 #ifdef FIXED_DEBUG_ASSERT 603 fprintf (
stderr,
"MULT16_16_Q15: output is not short: %d in %s: line %d\n", (
int)res, file, line);
604 #ifdef FIXED_DEBUG_ASSERT 617 fprintf (
stderr,
"MULT16_16_P13: inputs are not short: %d %d\n",
a, b);
618 #ifdef FIXED_DEBUG_ASSERT 626 fprintf (
stderr,
"MULT16_16_P13: overflow: %d*%d=%d\n",
a, b, (
int)res);
627 #ifdef FIXED_DEBUG_ASSERT 634 fprintf (
stderr,
"MULT16_16_P13: output is not short: %d*%d=%d\n",
a, b, (
int)res);
635 #ifdef FIXED_DEBUG_ASSERT 647 fprintf (
stderr,
"MULT16_16_P14: inputs are not short: %d %d\n",
a, b);
648 #ifdef FIXED_DEBUG_ASSERT 656 fprintf (
stderr,
"MULT16_16_P14: overflow: %d*%d=%d\n",
a, b, (
int)res);
657 #ifdef FIXED_DEBUG_ASSERT 664 fprintf (
stderr,
"MULT16_16_P14: output is not short: %d*%d=%d\n",
a, b, (
int)res);
665 #ifdef FIXED_DEBUG_ASSERT 677 fprintf (
stderr,
"MULT16_16_P15: inputs are not short: %d %d\n",
a, b);
678 #ifdef FIXED_DEBUG_ASSERT 686 fprintf (
stderr,
"MULT16_16_P15: overflow: %d*%d=%d\n",
a, b, (
int)res);
687 #ifdef FIXED_DEBUG_ASSERT 694 fprintf (
stderr,
"MULT16_16_P15: output is not short: %d*%d=%d\n",
a, b, (
int)res);
695 #ifdef FIXED_DEBUG_ASSERT 703 #define DIV32_16(a, b) DIV32_16_(a, b, __FILE__, __LINE__) 710 fprintf(
stderr,
"DIV32_16: divide by zero: %d/%d in %s: line %d\n", (
int)a, (
int)b, file, line);
711 #ifdef FIXED_DEBUG_ASSERT 718 fprintf (
stderr,
"DIV32_16: inputs are not int/short: %d %d in %s: line %d\n", (
int)a, (
int)b, file, line);
719 #ifdef FIXED_DEBUG_ASSERT 726 fprintf (
stderr,
"DIV32_16: output is not short: %d / %d = %d in %s: line %d\n", (
int)a,(
int)b,(
int)res, file, line);
731 #ifdef FIXED_DEBUG_ASSERT 739 #define DIV32(a, b) DIV32_(a, b, __FILE__, __LINE__) 745 fprintf(
stderr,
"DIV32: divide by zero: %d/%d in %s: line %d\n", (
int)a, (
int)b, file, line);
746 #ifdef FIXED_DEBUG_ASSERT 754 fprintf (
stderr,
"DIV32: inputs are not int/short: %d %d in %s: line %d\n", (
int)a, (
int)b, file, line);
755 #ifdef FIXED_DEBUG_ASSERT 762 fprintf (
stderr,
"DIV32: output is not int: %d in %s: line %d\n", (
int)res, file, line);
763 #ifdef FIXED_DEBUG_ASSERT 774 x =
MAX32(x, -32768);
778 #define SIG2WORD16(x) (SIG2WORD16_generic(x)) 782 #define PRINT_MIPS(file) do {fprintf (file, "total complexity = %llu MIPS\n", celt_mips);} while (0); #define opus_uint64
Definition: opus_types.h:156
#define NEG16(x)
Definition: arch.h:187
line
Definition: buildtests.py:37
#define MULT16_16_16(a, b)
Definition: arch.h:212
#define MULT16_16_P15(a, b)
Definition: arch.h:229
float celt_sig
Definition: arch.h:151
#define MIN32(a, b)
Definition: arch.h:74
short opus_int16
Definition: opus_types.h:144
#define celt_assert(cond)
Definition: arch.h:66
#define MULT16_16_P14(a, b)
Definition: arch.h:231
#define SATURATE16(x)
Definition: arch.h:202
#define VERIFY_SHORT(x)
Definition: fixed_debug.h:55
#define MULT16_16_Q13(a, b)
Definition: arch.h:226
Opus reference implementation constants.
float opus_val16
Definition: arch.h:148
#define PSHR32(a, shift)
Definition: fixed_debug.h:226
VoEFile * file
Definition: voe_cmd_test.cc:59
stderr
Definition: barcode_decoder.py:21
EGLSurface EGLint x
Definition: eglext.h:950
#define NEG32(x)
Definition: arch.h:188
#define MULT16_16_P13(a, b)
Definition: arch.h:230
int opus_int32
Definition: opus_types.h:146
#define MULT16_16_Q14(a, b)
Definition: arch.h:227
void shift(ExecState *exec, JSObject *thisObj, unsigned header, unsigned currentCount, unsigned resultCount, unsigned length)
Definition: ArrayPrototype.cpp:291
GLboolean GLboolean GLboolean GLboolean a
Definition: gl2ext.h:306
#define MULT16_16_Q11_32(a, b)
Definition: arch.h:224
#define MAX32(a, b)
Definition: arch.h:75
#define SATURATE(x, a)
Definition: arch.h:201
#define SHR32(a, shift)
Definition: arch.h:193
GLboolean GLboolean GLboolean b
Definition: gl2ext.h:306
float opus_val32
Definition: arch.h:149
res
Definition: harness.py:111
#define EXTRACT16(x)
Definition: fixed_debug.h:105
#define VERIFY_INT(x)
Definition: fixed_debug.h:56
#define ABS32(x)
Definition: arch.h:182
#define opus_int64
Definition: opus_types.h:152
#define VERIFY_UINT(x)
Definition: fixed_debug.h:57