Unified · Split
| @@ -16,6 +16,8 @@ · 15 unmodified lines | |||
| 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
| 17 | */ | 17 | */ |
| 18 | 18 | ||
| 19 | #undef ZERO | ||
| 20 | #undef HALF | ||
| 19 | #undef ONE | 21 | #undef ONE |
| 20 | #undef ftype | 22 | #undef ftype |
| 21 | #undef SAMPLE_FORMAT | 23 | #undef SAMPLE_FORMAT |
| @@ -23,10 +25,14 @@ · 1 unmodified line | |||
| 23 | #define SAMPLE_FORMAT float | 25 | #define SAMPLE_FORMAT float |
| 24 | #define ftype float | 26 | #define ftype float |
| 25 | #define ONE 1.f | 27 | #define ONE 1.f |
| 28 | #define HALF 0.5f | ||
| 29 | #define ZERO 0.f | ||
| 26 | #else | 30 | #else |
| 27 | #define SAMPLE_FORMAT double | 31 | #define SAMPLE_FORMAT double |
| 28 | #define ftype double | 32 | #define ftype double |
| 29 | #define ONE 1.0 | 33 | #define ONE 1.0 |
| 34 | #define HALF 0.5 | ||
| 35 | #define ZERO 0.0 | ||
| 30 | #endif | 36 | #endif |
| 31 | 37 | ||
| 32 | #define fn3(a,b) a##_##b | 38 | #define fn3(a,b) a##_##b |
| @@ -92,21 +98,21 @@ static ftype fn(process_sample)(AudioRLSContext *s, ftype input, ftype desired, · 59 unmodified lines | |||
| 92 | for (int i = 0, pos = offset; i < order; i++, pos++) { | 98 | for (int i = 0, pos = offset; i < order; i++, pos++) { |
| 93 | const int ikernel_size = i * kernel_size; | 99 | const int ikernel_size = i * kernel_size; |
| 94 | 100 | ||
| 95 | u[i] = 0.f; | 101 | u[i] = ZERO; |
| 96 | for (int k = 0, pos = offset; k < order; k++, pos++) | 102 | for (int k = 0, pos = offset; k < order; k++, pos++) |
| 97 | u[i] += p[ikernel_size + k] * delay[pos]; | 103 | u[i] += p[ikernel_size + k] * delay[pos]; |
| 98 | 104 | ||
| 99 | g += u[i] * delay[pos]; | 105 | g += u[i] * delay[pos]; |
| 100 | } | 106 | } |
| 101 | 107 | ||
| 102 | g = 1.f / g; | 108 | g = ONE / g; |
| 103 | 109 | ||
| 104 | for (int i = 0; i < order; i++) { | 110 | for (int i = 0; i < order; i++) { |
| 105 | const int ikernel_size = i * kernel_size; | 111 | const int ikernel_size = i * kernel_size; |
| 106 | 112 | ||
| 107 | gains[i] = u[i] * g; | 113 | gains[i] = u[i] * g; |
| 108 | coeffs[i] = coeffs[order + i] = coeffs[i] + gains[i] * e; | 114 | coeffs[i] = coeffs[order + i] = coeffs[i] + gains[i] * e; |
| 109 | tmp[i] = 0.f; | 115 | tmp[i] = ZERO; |
| 110 | for (int k = 0, pos = offset; k < order; k++, pos++) | 116 | for (int k = 0, pos = offset; k < order; k++, pos++) |
| 111 | tmp[i] += p[ikernel_size + k] * delay[pos]; | 117 | tmp[i] += p[ikernel_size + k] * delay[pos]; |
| 112 | } | 118 | } |
| @@ -122,7 +128,7 @@ static ftype fn(process_sample)(AudioRLSContext *s, ftype input, ftype desired, · 9 unmodified lines | |||
| 122 | const int ikernel_size = i * kernel_size; | 128 | const int ikernel_size = i * kernel_size; |
| 123 | 129 | ||
| 124 | for (int k = 0; k < order; k++) | 130 | for (int k = 0; k < order; k++) |
| 125 | p[ikernel_size + k] = (p[ikernel_size + k] - (dp[ikernel_size + k] + dp[kernel_size * k + i]) * 0.5f) * lambda; | 131 | p[ikernel_size + k] = (p[ikernel_size + k] - (dp[ikernel_size + k] + dp[kernel_size * k + i]) * HALF) * lambda; |
| 126 | } | 132 | } |
| 127 | 133 | ||
| 128 | switch (s->output_mode) { | 134 | switch (s->output_mode) { |