Unified · Split
| @@ -343,11 +343,11 @@ void lsx_apply_kaiser(double h[], const int num_points, double beta) · 342 unmodified lines | |||
| 343 | 343 | ||
| 344 | void lsx_apply_dolph(double h[], const int N, double att) | 344 | void lsx_apply_dolph(double h[], const int N, double att) |
| 345 | { | 345 | { |
| 346 | double b = cosh(acosh(pow(10., att / 20)) / (N - 1)), sum, t, v, c, norm = 0; | 346 | double b = cosh(acosh(pow(10., att/20)) / (N-1)), sum, t, c, norm = 0; |
| 347 | int i, j; | 347 | int i, j; |
| 348 | for (c = 1 - 1 / (b * b), i = (N - 1) / 2; i >= 0; --i) { | 348 | for (c = 1 - 1 / (b*b), i = (N-1) / 2; i >= 0; --i) { |
| 349 | for (sum = !i, b=v=t=j=1; j <= i && sum != t; b = b * (i - j) * (1./j), ++j) | 349 | for (sum = !i, b = t = j = 1; j <= i && sum != t; b *= (i-j) * (1./j), ++j) |
| 350 | t = sum, sum += b * (v *= c * (N - i - j) * (1./j)); | 350 | t = sum, sum += (b *= c * (N - i - j) * (1./j)); |
| 351 | sum /= (N - 1 - i), sum /= (norm = norm? norm : sum); | 351 | sum /= (N - 1 - i), sum /= (norm = norm? norm : sum); |
| 352 | h[i] *= sum, h[N - 1 - i] *= sum; | 352 | h[i] *= sum, h[N - 1 - i] *= sum; |
| 353 | } | 353 | } |