|
31 | 31 | #ifndef RENAMENOISE_FFT_GUTS_H |
32 | 32 | #define RENAMENOISE_FFT_GUTS_H |
33 | 33 |
|
34 | | -#define RENAMENOISE_MIN(a,b) ((a)<(b) ? (a):(b)) |
35 | | -#define RENAMENOISE_MAX(a,b) ((a)>(b) ? (a):(b)) |
36 | | - |
37 | | -/* renamenoise_fft.h |
38 | | - defines renamenoise_fft_scalar as either short or a float type |
39 | | - and defines |
40 | | - typedef struct { renamenoise_fft_scalar r; renamenoise_fft_scalar i; }renamenoise_fft_cpx; */ |
| 34 | +#define RENAMENOISE_MIN(a, b) ((a) < (b) ? (a) : (b)) |
| 35 | +#define RENAMENOISE_MAX(a, b) ((a) > (b) ? (a) : (b)) |
| 36 | + |
| 37 | +/** |
| 38 | + renamenoise_fft.h |
| 39 | + Defines renamenoise_fft_scalar as either short or a float type |
| 40 | + and defines |
| 41 | + typedef struct { |
| 42 | + renamenoise_fft_scalar r; |
| 43 | + renamenoise_fft_scalar i; |
| 44 | + } renamenoise_fft_cpx; |
| 45 | +**/ |
41 | 46 | #include "renamenoise_fft.h" |
42 | 47 |
|
43 | 48 | /* |
|
48 | 53 | C_SUB( res, a,b) : res = a - b |
49 | 54 | C_SUBFROM( res , a) : res -= a |
50 | 55 | C_ADDTO( res , a) : res += a |
51 | | - * */ |
| 56 | + */ |
| 57 | + |
| 58 | +#define RENAMENOISE_S_MUL(a, b) ((a) * (b)) |
| 59 | + |
| 60 | +#define RENAMENOISE_C_MUL(m, a, b) \ |
| 61 | + do { \ |
| 62 | + (m).r = (a).r * (b).r - (a).i * (b).i; \ |
| 63 | + (m).i = (a).r * (b).i + (a).i * (b).r; \ |
| 64 | + } while (0) |
| 65 | + |
| 66 | +#define RENAMENOISE_C_MULC(m, a, b) \ |
| 67 | + do { \ |
| 68 | + (m).r = (a).r * (b).r + (a).i * (b).i; \ |
| 69 | + (m).i = (a).i * (b).r - (a).r * (b).i; \ |
| 70 | + } while (0) |
52 | 71 |
|
53 | | -# define RENAMENOISE_S_MUL(a,b) ( (a)*(b) ) |
54 | | -#define RENAMENOISE_C_MUL(m,a,b) \ |
55 | | - do{ (m).r = (a).r*(b).r - (a).i*(b).i;\ |
56 | | - (m).i = (a).r*(b).i + (a).i*(b).r; }while(0) |
57 | | -#define RENAMENOISE_C_MULC(m,a,b) \ |
58 | | - do{ (m).r = (a).r*(b).r + (a).i*(b).i;\ |
59 | | - (m).i = (a).i*(b).r - (a).r*(b).i; }while(0) |
| 72 | +#define RENAMENOISE_C_MUL4(m, a, b) RENAMENOISE_C_MUL(m, a, b) |
60 | 73 |
|
61 | | -#define RENAMENOISE_C_MUL4(m,a,b) RENAMENOISE_C_MUL(m,a,b) |
| 74 | +#define RENAMENOISE_C_FIXDIV(c, div) /* NOOP */ |
62 | 75 |
|
63 | | -# define RENAMENOISE_C_FIXDIV(c,div) /* NOOP */ |
64 | | -# define RENAMENOISE_C_MULBYSCALAR( c, s ) \ |
65 | | - do{ (c).r *= (s);\ |
66 | | - (c).i *= (s); }while(0) |
| 76 | +#define RENAMENOISE_C_MULBYSCALAR(c, s) \ |
| 77 | + do { \ |
| 78 | + (c).r *= (s); \ |
| 79 | + (c).i *= (s); \ |
| 80 | + } while (0) |
67 | 81 |
|
68 | 82 | #ifndef RENAMENOISE_CHECK_OVERFLOW_OP |
69 | | -# define RENAMENOISE_CHECK_OVERFLOW_OP(a,op,b) /* noop */ |
| 83 | +# define RENAMENOISE_CHECK_OVERFLOW_OP(a, op, b) /* NOOP */ |
70 | 84 | #endif |
71 | 85 |
|
72 | 86 | #ifndef RENAMENOISE_C_ADD |
73 | | -#define RENAMENOISE_C_ADD( res, a,b)\ |
74 | | - do { \ |
75 | | - RENAMENOISE_CHECK_OVERFLOW_OP((a).r,+,(b).r)\ |
76 | | - RENAMENOISE_CHECK_OVERFLOW_OP((a).i,+,(b).i)\ |
77 | | - (res).r=(a).r+(b).r; (res).i=(a).i+(b).i; \ |
78 | | - }while(0) |
79 | | -#define RENAMENOISE_C_SUB( res, a,b)\ |
80 | | - do { \ |
81 | | - RENAMENOISE_CHECK_OVERFLOW_OP((a).r,-,(b).r)\ |
82 | | - RENAMENOISE_CHECK_OVERFLOW_OP((a).i,-,(b).i)\ |
83 | | - (res).r=(a).r-(b).r; (res).i=(a).i-(b).i; \ |
84 | | - }while(0) |
85 | | -#define RENAMENOISE_C_ADDTO( res , a)\ |
86 | | - do { \ |
87 | | - RENAMENOISE_CHECK_OVERFLOW_OP((res).r,+,(a).r)\ |
88 | | - RENAMENOISE_CHECK_OVERFLOW_OP((res).i,+,(a).i)\ |
89 | | - (res).r += (a).r; (res).i += (a).i;\ |
90 | | - }while(0) |
91 | | - |
92 | | -#define RENAMENOISE_C_SUBFROM( res , a)\ |
93 | | - do {\ |
94 | | - RENAMENOISE_CHECK_OVERFLOW_OP((res).r,-,(a).r)\ |
95 | | - RENAMENOISE_CHECK_OVERFLOW_OP((res).i,-,(a).i)\ |
96 | | - (res).r -= (a).r; (res).i -= (a).i; \ |
97 | | - }while(0) |
98 | | -#endif /* RENAMENOISE_C_ADD defined */ |
| 87 | +# define RENAMENOISE_C_ADD(res, a, b) \ |
| 88 | + do { \ |
| 89 | + RENAMENOISE_CHECK_OVERFLOW_OP((a).r, +, (b).r) \ |
| 90 | + RENAMENOISE_CHECK_OVERFLOW_OP((a).i, +, (b).i) \ |
| 91 | + (res).r = (a).r + (b).r; \ |
| 92 | + (res).i = (a).i + (b).i; \ |
| 93 | + } while (0) |
| 94 | + |
| 95 | +# define RENAMENOISE_C_SUB(res, a, b) \ |
| 96 | + do { \ |
| 97 | + RENAMENOISE_CHECK_OVERFLOW_OP((a).r, -, (b).r) \ |
| 98 | + RENAMENOISE_CHECK_OVERFLOW_OP((a).i, -, (b).i) \ |
| 99 | + (res).r = (a).r - (b).r; \ |
| 100 | + (res).i = (a).i - (b).i; \ |
| 101 | + } while (0) |
| 102 | + |
| 103 | +# define RENAMENOISE_C_ADDTO(res, a) \ |
| 104 | + do { \ |
| 105 | + RENAMENOISE_CHECK_OVERFLOW_OP((res).r, +, (a).r) \ |
| 106 | + RENAMENOISE_CHECK_OVERFLOW_OP((res).i, +, (a).i) \ |
| 107 | + (res).r += (a).r; \ |
| 108 | + (res).i += (a).i; \ |
| 109 | + } while (0) |
| 110 | + |
| 111 | +# define RENAMENOISE_C_SUBFROM(res, a) \ |
| 112 | + do { \ |
| 113 | + RENAMENOISE_CHECK_OVERFLOW_OP((res).r, -, (a).r) \ |
| 114 | + RENAMENOISE_CHECK_OVERFLOW_OP((res).i, -, (a).i) \ |
| 115 | + (res).r -= (a).r; \ |
| 116 | + (res).i -= (a).i; \ |
| 117 | + } while (0) |
| 118 | +#endif /* !RENAMENOISE_C_ADD defined */ |
99 | 119 |
|
100 | 120 | #ifdef USE_SIMD |
101 | | -# define RENAMENOISE_FFT_COS(phase) _mm_set1_ps( cos(phase) ) |
102 | | -# define RENAMENOISE_FFT_SIN(phase) _mm_set1_ps( sin(phase) ) |
103 | | -# define RENAMENOISE_HALF_OF(x) ((x)*_mm_set1_ps(.5f)) |
| 121 | +# define RENAMENOISE_FFT_COS(phase) _mm_set1_ps(cos(phase)) |
| 122 | +# define RENAMENOISE_FFT_SIN(phase) _mm_set1_ps(sin(phase)) |
| 123 | +# define RENAMENOISE_HALF_OF(x) ((x) *_mm_set1_ps(.5f)) |
104 | 124 | #else |
105 | | -# define RENAMENOISE_FFT_COS(phase) (renamenoise_fft_scalar) cos(phase) |
106 | | -# define RENAMENOISE_FFT_SIN(phase) (renamenoise_fft_scalar) sin(phase) |
107 | | -# define RENAMENOISE_HALF_OF(x) ((x)*.5f) |
| 125 | +# define RENAMENOISE_FFT_COS(phase) (renamenoise_fft_scalar) cos(phase) |
| 126 | +# define RENAMENOISE_FFT_SIN(phase) (renamenoise_fft_scalar) sin(phase) |
| 127 | +# define RENAMENOISE_HALF_OF(x) ((x) *.5f) |
108 | 128 | #endif |
109 | 129 |
|
110 | | -#define renamenoise_kf_cexp(x,phase) \ |
111 | | - do{ \ |
112 | | - (x)->r = RENAMENOISE_FFT_COS(phase);\ |
113 | | - (x)->i = RENAMENOISE_FFT_SIN(phase);\ |
114 | | - }while(0) |
| 130 | +#define renamenoise_kf_cexp(x, phase) \ |
| 131 | + do { \ |
| 132 | + (x)->r = RENAMENOISE_FFT_COS(phase); \ |
| 133 | + (x)->i = RENAMENOISE_FFT_SIN(phase); \ |
| 134 | + } while (0) |
115 | 135 |
|
116 | 136 | #endif /* RENAMENOISE_FFT_GUTS_H */ |
0 commit comments