#include "libavutil/intmath.h"
#include "mathops.h"
+void ff_mdct_calcw_c(FFTContext *s, FFTDouble *output, const FFTSample *input);
+
#define SCALE_FLOAT(a, bits) lrint((a) * (double)(1 << (bits)))
#define FIX15(a) av_clip(SCALE_FLOAT(a, 15), -32767, 32767)
y = (a + b) >> 1; \
} while (0)
-#define CMUL(dre, dim, are, aim, bre, bim) do { \
- (dre) = (MUL16(are, bre) - MUL16(aim, bim)) >> 15; \
- (dim) = (MUL16(are, bim) + MUL16(aim, bre)) >> 15; \
+#define CMULS(dre, dim, are, aim, bre, bim, sh) do { \
+ (dre) = (MUL16(are, bre) - MUL16(aim, bim)) >> sh; \
+ (dim) = (MUL16(are, bim) + MUL16(aim, bre)) >> sh; \
} while (0)
+#define CMUL(dre, dim, are, aim, bre, bim) \
+ CMULS(dre, dim, are, aim, bre, bim, 15)
+
+#define CMULL(dre, dim, are, aim, bre, bim) \
+ CMULS(dre, dim, are, aim, bre, bim, 0)
+
#endif /* CONFIG_FFT_FLOAT */
#define ff_imdct_calc_c FFT_NAME(ff_imdct_calc_c)