mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-08-30 08:48:07 -07:00
Closes: https://bugs.gentoo.org/919719 Closes: https://bugs.gentoo.org/830049 Closes: https://bugs.gentoo.org/731040 Signed-off-by: LinuxUserGD <hugegameartgd@gmail.com> Part-of: https://codeberg.org/gentoo/gentoo/pulls/314 Merges: https://codeberg.org/gentoo/gentoo/pulls/314 Signed-off-by: Sam James <sam@gentoo.org>
387 lines
8.8 KiB
Diff
387 lines
8.8 KiB
Diff
The register keyword is unused since C++17.
|
|
Reserved typedefs are renamed to fixed width integer types (C++11).
|
|
For each math operation, v4f_map is replaced with a non-template function.
|
|
Bug: https://bugs.gentoo.org/919719
|
|
Bug: https://bugs.gentoo.org/830049
|
|
Bug: https://bugs.gentoo.org/731040
|
|
--- a/CabIII.cc
|
|
+++ b/CabIII.cc
|
|
@@ -78,7 +78,7 @@ CabinetIII::cycle (uint frames)
|
|
|
|
for (uint i = 0; i < frames; ++i)
|
|
{
|
|
- register cabinet_float acc = s[i] + normal;
|
|
+ cabinet_float acc = s[i] + normal;
|
|
|
|
x[h] = acc;
|
|
acc *= a[0];
|
|
--- a/Reverb.cc
|
|
+++ b/Reverb.cc
|
|
@@ -247,8 +247,8 @@ PlateStub::process(sample_t x, sample_t decay, sample_t * _xl, sample_t * _xr)
|
|
x = input.lattice[3].process(x, indiff2);
|
|
|
|
/* summation point */
|
|
- register double xl = x + decay*tank.delay[3].get();
|
|
- register double xr = x + decay*tank.delay[1].get();
|
|
+ double xl = x + decay*tank.delay[3].get();
|
|
+ double xr = x + decay*tank.delay[1].get();
|
|
|
|
/* lh */
|
|
xl = tank.mlattice[0].process(xl, dediff1);
|
|
--- a/basics.h
|
|
+++ b/basics.h
|
|
@@ -49,14 +49,14 @@
|
|
|
|
#include "ladspa.h"
|
|
|
|
-typedef __int8_t int8;
|
|
-typedef __uint8_t uint8;
|
|
-typedef __int16_t int16;
|
|
-typedef __uint16_t uint16;
|
|
-typedef __int32_t int32;
|
|
-typedef __uint32_t uint32;
|
|
-typedef __int64_t int64;
|
|
-typedef __uint64_t uint64;
|
|
+typedef int8_t int8;
|
|
+typedef uint8_t uint8;
|
|
+typedef int16_t int16;
|
|
+typedef uint16_t uint16;
|
|
+typedef int32_t int32;
|
|
+typedef uint32_t uint32;
|
|
+typedef int64_t int64;
|
|
+typedef uint64_t uint64;
|
|
|
|
#define MIN_GAIN 1e-6 /* -120 dB */
|
|
/* smallest non-denormal 32 bit IEEE float is 1.18e-38 */
|
|
--- a/dsp/Delay.h
|
|
+++ b/dsp/Delay.h
|
|
@@ -101,11 +101,11 @@ class Delay
|
|
sample_t x2 = (*this) [n + 2];
|
|
|
|
/* sample_t (32bit) quicker than double here */
|
|
- register sample_t a =
|
|
+ sample_t a =
|
|
(3 * (x0 - x1) - x_1 + x2) * .5;
|
|
- register sample_t b =
|
|
+ sample_t b =
|
|
2 * x1 + x_1 - (5 * x0 + x2) * .5;
|
|
- register sample_t c =
|
|
+ sample_t c =
|
|
(x1 - x_1) * .5;
|
|
|
|
return x0 + (((a * f) + b) * f + c) * f;
|
|
--- a/dsp/IIR2.h
|
|
+++ b/dsp/IIR2.h
|
|
@@ -107,9 +107,9 @@ class IIR2
|
|
|
|
inline T process (T s)
|
|
{
|
|
- register int z = h;
|
|
+ int z = h;
|
|
|
|
- register T r = s * a[0];
|
|
+ T r = s * a[0];
|
|
|
|
r += a[1] * x[z];
|
|
r += b[1] * y[z];
|
|
@@ -128,9 +128,9 @@ class IIR2
|
|
|
|
inline T process_bp (T s)
|
|
{
|
|
- register int z = h;
|
|
+ int z = h;
|
|
|
|
- register T r = s * a[0];
|
|
+ T r = s * a[0];
|
|
|
|
r += b[1] * y[z];
|
|
|
|
@@ -151,9 +151,9 @@ class IIR2
|
|
* case */
|
|
inline T process_0_1()
|
|
{
|
|
- register int z = h;
|
|
+ int z = h;
|
|
|
|
- register T r = 0;
|
|
+ T r = 0;
|
|
|
|
r += a[1] * x[z];
|
|
r += b[1] * y[z];
|
|
@@ -172,9 +172,9 @@ class IIR2
|
|
|
|
inline T process_0_2()
|
|
{
|
|
- register int z = h;
|
|
+ int z = h;
|
|
|
|
- register T r = 0;
|
|
+ T r = 0;
|
|
|
|
r += b[1] * y[z];
|
|
|
|
@@ -192,9 +192,9 @@ class IIR2
|
|
|
|
inline T process_0_3()
|
|
{
|
|
- register int z = h;
|
|
+ int z = h;
|
|
|
|
- register T r = 0;
|
|
+ T r = 0;
|
|
|
|
r += b[1] * y[z];
|
|
|
|
--- a/dsp/Sine.h
|
|
+++ b/dsp/Sine.h
|
|
@@ -72,7 +72,7 @@ class Sine
|
|
/* advance and return 1 sample */
|
|
inline double get()
|
|
{
|
|
- register double s = b*y[z];
|
|
+ double s = b*y[z];
|
|
z ^= 1;
|
|
s -= y[z];
|
|
return y[z] = s;
|
|
@@ -101,7 +101,7 @@ class DampedSine
|
|
|
|
inline double get()
|
|
{
|
|
- register double s = b * y[z];
|
|
+ double s = b * y[z];
|
|
z ^= 1;
|
|
s -= d * y[z];
|
|
return y[z] = d * s;
|
|
--- a/dsp/v4f.h
|
|
+++ b/dsp/v4f.h
|
|
@@ -71,17 +71,53 @@ inline float v4f_sum (v4f_t v)
|
|
return f[0]+f[1]+f[2]+f[3];
|
|
}
|
|
|
|
-/* mapping a float to float function [e.g. sinf() e.a.] to a vector */
|
|
-typedef float (*f2f_fn) (float f);
|
|
+inline v4f_t v4f_map_builtin_sinf (v4f_t x)
|
|
+{
|
|
+ v4f_t y;
|
|
+ float * s = (float *) &x;
|
|
+ float * d = (float *) &y;
|
|
+ for (uint i = 0; i < 4; ++i)
|
|
+ d[i] = __builtin_sinf(s[i]);
|
|
+ return y;
|
|
+}
|
|
+
|
|
+inline v4f_t v4f_map_builtin_cosf (v4f_t x)
|
|
+{
|
|
+ v4f_t y;
|
|
+ float * s = (float *) &x;
|
|
+ float * d = (float *) &y;
|
|
+ for (uint i = 0; i < 4; ++i)
|
|
+ d[i] = __builtin_cosf(s[i]);
|
|
+ return y;
|
|
+}
|
|
+
|
|
+inline v4f_t v4f_map_exp10f (v4f_t x)
|
|
+{
|
|
+ v4f_t y;
|
|
+ float * s = (float *) &x;
|
|
+ float * d = (float *) &y;
|
|
+ for (uint i = 0; i < 4; ++i)
|
|
+ d[i] = exp10f(s[i]);
|
|
+ return y;
|
|
+}
|
|
+
|
|
+inline v4f_t v4f_map_sqrtf (v4f_t x)
|
|
+{
|
|
+ v4f_t y;
|
|
+ float * s = (float *) &x;
|
|
+ float * d = (float *) &y;
|
|
+ for (uint i = 0; i < 4; ++i)
|
|
+ d[i] = sqrtf(s[i]);
|
|
+ return y;
|
|
+}
|
|
|
|
-template <f2f_fn fn>
|
|
-v4f_t v4f_map (v4f_t x)
|
|
+inline v4f_t v4f_map_cosf (v4f_t x)
|
|
{
|
|
v4f_t y;
|
|
float * s = (float *) &x;
|
|
float * d = (float *) &y;
|
|
for (uint i = 0; i < 4; ++i)
|
|
- d[i] = fn(s[i]);
|
|
+ d[i] = cosf(s[i]);
|
|
return y;
|
|
}
|
|
|
|
@@ -155,17 +191,17 @@ class Sin4f
|
|
{
|
|
v4f_t *y = data();
|
|
v4f_t w = -v4f_pi * f;
|
|
- y[0] = v4f_map<__builtin_sinf> (w);
|
|
- y[1] = v4f_map<__builtin_sinf> (v4f_2 * w);
|
|
+ y[0] = v4f_map_builtin_sinf (w);
|
|
+ y[1] = v4f_map_builtin_sinf (v4f_2 * w);
|
|
/* b in above scalar implementation is y[2] in the flat data */
|
|
- y[2] = v4f_2 * v4f_map<__builtin_cosf> (w); /* b */
|
|
+ y[2] = v4f_2 * v4f_map_builtin_cosf (w); /* b */
|
|
z = 0;
|
|
}
|
|
|
|
inline v4f_t get()
|
|
{
|
|
v4f_t *y = data();
|
|
- register v4f_t s = y[2] * y[z];
|
|
+ v4f_t s = y[2] * y[z];
|
|
z ^= 1;
|
|
s -= y[z];
|
|
return y[z] = s;
|
|
--- a/dsp/v4f_IIR2.h
|
|
+++ b/dsp/v4f_IIR2.h
|
|
@@ -45,8 +45,8 @@ class RBJv4
|
|
{
|
|
v4f_t w = v4f_2pi * f;
|
|
|
|
- sin = v4f_map<__builtin_sinf> (w);
|
|
- cos = v4f_map<__builtin_cosf> (w);
|
|
+ sin = v4f_map_builtin_sinf (w);
|
|
+ cos = v4f_map_builtin_cosf (w);
|
|
|
|
alpha = sin / (v4f_2 * Q);
|
|
}
|
|
@@ -142,7 +142,7 @@ class IIR2v4
|
|
/* A = pow (10, gain / 40) */
|
|
v4f_t A = (v4f_t) {.025,.025,.025,.025};
|
|
A *= gain;
|
|
- A = v4f_map<exp10f> (A);
|
|
+ A = v4f_map_exp10f (A);
|
|
|
|
RBJv4 p (f, Q);
|
|
|
|
@@ -182,7 +182,7 @@ class IIR2v4
|
|
{
|
|
v4f_t *a = data(), *b = a + 2, *x = a + 5, *y = a + 7;
|
|
|
|
- register v4f_t r = s * a[0];
|
|
+ v4f_t r = s * a[0];
|
|
|
|
r += a[1] * x[h];
|
|
r += b[1] * y[h];
|
|
@@ -198,11 +198,11 @@ class IIR2v4
|
|
}
|
|
|
|
/* the production version with less pointer arithmetic in the prologue */
|
|
- inline v4f_t process (register v4f_t s)
|
|
+ inline v4f_t process (v4f_t s)
|
|
{
|
|
v4f_t *a = data();
|
|
|
|
- register v4f_t r = s * a[0];
|
|
+ v4f_t r = s * a[0];
|
|
|
|
r += a[1] * a[5+h]; /* a[1] * x[h] */
|
|
r += a[2+1] * a[7+h]; /* b[1] * y[h] */
|
|
@@ -223,7 +223,7 @@ class IIR2v4
|
|
{
|
|
v4f_t *a = data();
|
|
|
|
- register v4f_t r = s * a[0];
|
|
+ v4f_t r = s * a[0];
|
|
|
|
r += a[2+1] * a[7+h]; /* b[1] * y[h] */
|
|
|
|
@@ -323,10 +323,10 @@ class IIR2v4Bank
|
|
|
|
v4f_t acc = v4f_0;
|
|
|
|
- register uint h2 = h1 ^ 1;
|
|
+ uint h2 = h1 ^ 1;
|
|
for (uint i = 0; i < n; ++i, a += 7)
|
|
{
|
|
- register v4f_t r = s * a[0];
|
|
+ v4f_t r = s * a[0];
|
|
|
|
r += a[1] * x[h1];
|
|
r += a[2+1] * a[5+h1]; /* b[1] * y[h1] */
|
|
@@ -350,10 +350,10 @@ class IIR2v4Bank
|
|
|
|
v4f_t acc = v4f_0;
|
|
|
|
- register uint h2 = h1 ^ 1;
|
|
+ uint h2 = h1 ^ 1;
|
|
for (uint i = 0; i < N; ++i, a += 7)
|
|
{
|
|
- register v4f_t r;
|
|
+ v4f_t r;
|
|
|
|
r = a[1] * x[h1];
|
|
r += a[2+1] * a[5+h1]; /* b[1] * y[h1] */
|
|
@@ -377,10 +377,10 @@ class IIR2v4Bank
|
|
|
|
v4f_t acc = v4f_0;
|
|
|
|
- register uint h2 = h1 ^ 1;
|
|
+ uint h2 = h1 ^ 1;
|
|
for (uint i = 0; i < n; ++i, a += 7)
|
|
{
|
|
- register v4f_t r = s * a[0];
|
|
+ v4f_t r = s * a[0];
|
|
|
|
r += a[2+1] * a[5+h1]; /* b[1] * y[h1] */
|
|
|
|
@@ -429,7 +429,7 @@ class IIR2v4Bank
|
|
/* A = pow (10, gain / 40) */
|
|
v4f_t A = (v4f_t) {.025,.025,.025,.025};
|
|
A *= gain[i];
|
|
- A = v4f_map<exp10f> (A);
|
|
+ A = v4f_map_exp10f (A);
|
|
|
|
RBJv4 p (f[i], Q[i]);
|
|
|
|
@@ -549,9 +549,9 @@ class Resonator4fBank
|
|
{
|
|
v4f_t * a = state + i*Item;
|
|
f *= v4f_2pi;
|
|
- a[0] = v4f_map<__builtin_sinf> (f);
|
|
+ a[0] = v4f_map_builtin_sinf (f);
|
|
a[0] *= gain;
|
|
- a[5] = v4f_map<__builtin_cosf> (f);
|
|
+ a[5] = v4f_map_builtin_cosf (f);
|
|
set_r (i, r);
|
|
}
|
|
void set_r (int i, v4f_t r)
|
|
@@ -583,7 +583,7 @@ class Resonator4fBank
|
|
{
|
|
v4f_t *a = state + i*Item;
|
|
|
|
- register uint h2 = h1 ^ 1;
|
|
+ uint h2 = h1 ^ 1;
|
|
x = x * a[0]; /* x * a[0] */
|
|
|
|
x += a[1] * a[3+h1]; /* b[1] * y[h1] */
|
|
@@ -605,8 +605,8 @@ class Resonator4fBank
|
|
|
|
v4f_t s = (v4f_t) {x,x,x,x};
|
|
|
|
- register uint h2 = h1 ^ 1;
|
|
- register v4f_t r = s * a[0]; /* x * a[0] */
|
|
+ uint h2 = h1 ^ 1;
|
|
+ v4f_t r = s * a[0]; /* x * a[0] */
|
|
|
|
r += a[1] * a[3+h1]; /* b[1] * y[h1] */
|
|
r += a[2] * a[3+h2]; /* b[2] * y[h2] */
|
|
@@ -676,9 +676,9 @@ class MREqv4
|
|
{
|
|
v4f_t *a = data(), *s = a + 1;
|
|
|
|
- s[0] = -v4f_map<cosf>(v4f_2pi*f);
|
|
+ s[0] = -v4f_map_cosf(v4f_2pi*f);
|
|
a[0] = v4f_half*(gain - v4f_1);
|
|
- bw *= v4f(7,7,7,7)*f / v4f_map<sqrtf>(gain);
|
|
+ bw *= v4f(7,7,7,7)*f / v4f_map_sqrtf(gain);
|
|
s[1] = (v4f_1 - bw) / (v4f_1 + bw);
|
|
}
|
|
|
|
--
|
|
2.53.0
|
|
|