MCPcopy Create free account
hub / github.com/ObEngine/ObEngine / bitrv2

Function bitrv2

extlibs/soloud/src/core/soloud_fft.cpp:77–425  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

75#endif
76
77 void bitrv2(int n, float *a)
78 {
79 int j0, k0, j1, k1, l, m, i, j, k, nh;
80 float xr, xi, yr, yi;
81
82 m = 4;
83 for (l = n >> 2; l > 8; l >>= 2) {
84 m <<= 1;
85 }
86 nh = n >> 1;
87 if (l == 8) {
88 j0 = 0;
89 for (k0 = 0; k0 < m; k0 += 4) {
90 k = k0;
91 for (j = j0; j < j0 + k0; j += 4) {
92 xr = a[j];
93 xi = a[j + 1];
94 yr = a[k];
95 yi = a[k + 1];
96 a[j] = yr;
97 a[j + 1] = yi;
98 a[k] = xr;
99 a[k + 1] = xi;
100 j1 = j + m;
101 k1 = k + 2 * m;
102 xr = a[j1];
103 xi = a[j1 + 1];
104 yr = a[k1];
105 yi = a[k1 + 1];
106 a[j1] = yr;
107 a[j1 + 1] = yi;
108 a[k1] = xr;
109 a[k1 + 1] = xi;
110 j1 += m;
111 k1 -= m;
112 xr = a[j1];
113 xi = a[j1 + 1];
114 yr = a[k1];
115 yi = a[k1 + 1];
116 a[j1] = yr;
117 a[j1 + 1] = yi;
118 a[k1] = xr;
119 a[k1 + 1] = xi;
120 j1 += m;
121 k1 += 2 * m;
122 xr = a[j1];
123 xi = a[j1 + 1];
124 yr = a[k1];
125 yi = a[k1 + 1];
126 a[j1] = yr;
127 a[j1 + 1] = yi;
128 a[k1] = xr;
129 a[k1 + 1] = xi;
130 j1 += nh;
131 k1 += 2;
132 xr = a[j1];
133 xi = a[j1 + 1];
134 yr = a[k1];

Callers 1

cftfsubFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected