VAE - Virtual Audio Engine 1
Small Data Driven Audio Engine
reverb_gen.hpp
Go to the documentation of this file.
1/* ------------------------------------------------------------
2name: "reverb"
3Code generated with Faust 2.37.3 (https://faust.grame.fr)
4Compilation options: -a /home/usr/git/master/VAEG/VAE/src/core/dsp/vae_faust_arch.hpp -lang cpp -cm -mapp -es 1 -exp10 -vec -lv 0 -vs 32 -single -ftz 0 -mcd 16
5------------------------------------------------------------ */
6
7#ifndef __VAEReverb_H__
8#define __VAEReverb_H__
9
10
11#include "../vae_faust_common.hpp"
12#include "../../../wrapped/vae_profiler.hpp"
13// We prevent namespace problems by including theses before the namsapces
14// below. the includes inside from faust shouldn't cause any trouble then.
15#include <algorithm>
16#include <cmath>
17#include <cstdint>
18#include <math.h>
19
20namespace vae { namespace core { namespace effect {
21#ifndef FAUSTFLOAT
22#define FAUSTFLOAT float
23#endif
24
25#include <algorithm>
26#include <cmath>
27#include <cstdint>
28#include <math.h>
29
30static float VAEReverb_faustpower2_f(float value) {
31 return (value * value);
32}
33
34#ifndef FAUSTCLASS
35#define FAUSTCLASS VAEReverb
36#endif
37
38#ifdef __APPLE__
39#define exp10f __exp10f
40#define exp10 __exp10
41#endif
42
43class VAEReverb : public FaustBase {
44
45 private:
46
48 float fRec1_perm[4];
49 float fRec0_perm[4];
51 float fRec14_perm[4];
52 float fRec13_perm[4];
54 float fConst0;
55 float fConst2;
56 float fConst3;
57 float fRec15_perm[4];
59 float fRec17_perm[4];
60 float fRec16_perm[4];
61 float fConst4;
62 float fConst5;
63 float fConst9;
64 float fRec12_perm[4];
66 float fRec19_perm[4];
67 float fRec18_perm[4];
68 float fYec0[65536];
72 float fYec1[16384];
75 float fYec2[4096];
79 float fRec10_perm[4];
80 float fRec23_perm[4];
81 float fConst23;
82 float fRec22_perm[4];
83 float fYec3[65536];
87 float fYec4[8192];
91 float fRec20_perm[4];
92 float fRec27_perm[4];
93 float fConst37;
94 float fRec26_perm[4];
95 float fYec5[65536];
99 float fYec6[8192];
103 float fRec24_perm[4];
104 float fRec31_perm[4];
105 float fConst51;
106 float fRec30_perm[4];
107 float fYec7[65536];
111 float fYec8[8192];
115 float fRec28_perm[4];
116 float fRec35_perm[4];
117 float fConst65;
118 float fRec34_perm[4];
119 float fYec9[32768];
123 float fYec10[16384];
126 float fYec11[4096];
130 float fRec32_perm[4];
131 float fRec39_perm[4];
132 float fConst79;
133 float fRec38_perm[4];
134 float fYec12[32768];
138 float fYec13[8192];
142 float fRec36_perm[4];
143 float fRec43_perm[4];
144 float fConst93;
145 float fRec42_perm[4];
146 float fYec14[65536];
150 float fYec15[8192];
154 float fRec40_perm[4];
155 float fRec47_perm[4];
157 float fRec46_perm[4];
158 float fYec16[32768];
162 float fYec17[4096];
166 float fRec44_perm[4];
167 float fRec2_perm[4];
168 float fRec3_perm[4];
169 float fRec4_perm[4];
170 float fRec5_perm[4];
171 float fRec6_perm[4];
172 float fRec7_perm[4];
173 float fRec8_perm[4];
174 float fRec9_perm[4];
175
176 public:
177
178 void metadata(Meta* m) {
179 m->declare("basics.lib/name", "Faust Basic Element Library");
180 m->declare("basics.lib/version", "0.2");
181 m->declare("compile_options", "-a /home/usr/git/master/VAEG/VAE/src/core/dsp/vae_faust_arch.hpp -lang cpp -cm -mapp -es 1 -exp10 -vec -lv 0 -vs 32 -single -ftz 0 -mcd 16");
182 m->declare("delays.lib/name", "Faust Delay Library");
183 m->declare("delays.lib/version", "0.1");
184 m->declare("filename", "reverb.dsp");
185 m->declare("filters.lib/allpass_comb:author", "Julius O. Smith III");
186 m->declare("filters.lib/allpass_comb:copyright", "Copyright (C) 2003-2019 by Julius O. Smith III <jos@ccrma.stanford.edu>");
187 m->declare("filters.lib/allpass_comb:license", "MIT-style STK-4.3 license");
188 m->declare("filters.lib/lowpass0_highpass1", "MIT-style STK-4.3 license");
189 m->declare("filters.lib/lowpass0_highpass1:author", "Julius O. Smith III");
190 m->declare("filters.lib/lowpass:author", "Julius O. Smith III");
191 m->declare("filters.lib/lowpass:copyright", "Copyright (C) 2003-2019 by Julius O. Smith III <jos@ccrma.stanford.edu>");
192 m->declare("filters.lib/lowpass:license", "MIT-style STK-4.3 license");
193 m->declare("filters.lib/name", "Faust Filters Library");
194 m->declare("filters.lib/tf1:author", "Julius O. Smith III");
195 m->declare("filters.lib/tf1:copyright", "Copyright (C) 2003-2019 by Julius O. Smith III <jos@ccrma.stanford.edu>");
196 m->declare("filters.lib/tf1:license", "MIT-style STK-4.3 license");
197 m->declare("filters.lib/tf1s:author", "Julius O. Smith III");
198 m->declare("filters.lib/tf1s:copyright", "Copyright (C) 2003-2019 by Julius O. Smith III <jos@ccrma.stanford.edu>");
199 m->declare("filters.lib/tf1s:license", "MIT-style STK-4.3 license");
200 m->declare("filters.lib/version", "0.3");
201 m->declare("maths.lib/author", "GRAME");
202 m->declare("maths.lib/copyright", "GRAME");
203 m->declare("maths.lib/license", "LGPL with exception");
204 m->declare("maths.lib/name", "Faust Math Library");
205 m->declare("maths.lib/version", "2.5");
206 m->declare("name", "reverb");
207 m->declare("platform.lib/name", "Generic Platform Library");
208 m->declare("platform.lib/version", "0.2");
209 m->declare("reverbs.lib/name", "Faust Reverb Library");
210 m->declare("reverbs.lib/version", "0.2");
211 m->declare("routes.lib/name", "Faust Signal Routing Library");
212 m->declare("routes.lib/version", "0.2");
213 m->declare("signals.lib/name", "Faust Signal Routing Library");
214 m->declare("signals.lib/version", "0.1");
215 }
216
217 virtual int getNumInputs() {
218 return 2;
219 }
220 virtual int getNumOutputs() {
221 return 2;
222 }
223
224 static void classInit(int sample_rate) {
225 }
226
227 virtual void instanceConstants(int sample_rate) {
228 fSampleRate = sample_rate;
229 fConst0 = std::min<float>(192000.0f, std::max<float>(1.0f, float(fSampleRate)));
230 float fConst1 = (1.0f / std::tan((1570.79639f / fConst0)));
231 fConst2 = (1.0f / (fConst1 + 1.0f));
232 fConst3 = (1.0f - fConst1);
233 fConst4 = std::cos((18849.5566f / fConst0));
234 fConst5 = (0.100000001f / fConst0);
235 float fConst6 = ((0.219990999f * fConst0) + 0.5f);
236 float fConst7 = float(int(fConst6));
237 float fConst8 = ((fConst6 == fConst7) ? fConst6 : ((fConst6 >= 0.0f) ? fConst7 : (fConst7 + -1.0f)));
238 fConst9 = (0.0f - (6.90775537f * fConst8));
239 float fConst10 = ((0.0191229992f * fConst0) + 0.5f);
240 float fConst11 = float(int(fConst10));
241 float fConst12 = ((fConst10 == fConst11) ? fConst10 : ((fConst10 >= 0.0f) ? fConst11 : (fConst11 + -1.0f)));
242 float fConst13 = (fConst8 - fConst12);
243 float fConst14 = (1.44269502f * std::log(fConst13));
244 float fConst15 = float(int(fConst14));
245 iConst16 = int(std::min<float>(float(int(std::pow(2.0f, std::max<float>(1.0f, ((fConst14 == fConst15) ? fConst14 : ((fConst14 >= 0.0f) ? (fConst15 + 1.0f) : fConst15)))))), std::max<float>(0.0f, fConst13)));
246 float fConst17 = (1.44269502f * std::log(fConst12));
247 float fConst18 = float(int(fConst17));
248 iConst19 = int(std::min<float>(float(int(std::pow(2.0f, std::max<float>(1.0f, ((fConst17 == fConst18) ? fConst17 : ((fConst17 >= 0.0f) ? (fConst18 + 1.0f) : fConst18)))))), std::max<float>(0.0f, (fConst12 + -1.0f))));
249 float fConst20 = ((0.256891012f * fConst0) + 0.5f);
250 float fConst21 = float(int(fConst20));
251 float fConst22 = ((fConst20 == fConst21) ? fConst20 : ((fConst20 >= 0.0f) ? fConst21 : (fConst21 + -1.0f)));
252 fConst23 = (0.0f - (6.90775537f * fConst22));
253 float fConst24 = ((0.0273330007f * fConst0) + 0.5f);
254 float fConst25 = float(int(fConst24));
255 float fConst26 = ((fConst24 == fConst25) ? fConst24 : ((fConst24 >= 0.0f) ? fConst25 : (fConst25 + -1.0f)));
256 float fConst27 = (fConst22 - fConst26);
257 float fConst28 = (1.44269502f * std::log(fConst27));
258 float fConst29 = float(int(fConst28));
259 iConst30 = int(std::min<float>(float(int(std::pow(2.0f, std::max<float>(1.0f, ((fConst28 == fConst29) ? fConst28 : ((fConst28 >= 0.0f) ? (fConst29 + 1.0f) : fConst29)))))), std::max<float>(0.0f, fConst27)));
260 float fConst31 = (1.44269502f * std::log(fConst26));
261 float fConst32 = float(int(fConst31));
262 iConst33 = int(std::min<float>(float(int(std::pow(2.0f, std::max<float>(1.0f, ((fConst31 == fConst32) ? fConst31 : ((fConst31 >= 0.0f) ? (fConst32 + 1.0f) : fConst32)))))), std::max<float>(0.0f, (fConst26 + -1.0f))));
263 float fConst34 = ((0.192303002f * fConst0) + 0.5f);
264 float fConst35 = float(int(fConst34));
265 float fConst36 = ((fConst34 == fConst35) ? fConst34 : ((fConst34 >= 0.0f) ? fConst35 : (fConst35 + -1.0f)));
266 fConst37 = (0.0f - (6.90775537f * fConst36));
267 float fConst38 = ((0.0292910002f * fConst0) + 0.5f);
268 float fConst39 = float(int(fConst38));
269 float fConst40 = ((fConst38 == fConst39) ? fConst38 : ((fConst38 >= 0.0f) ? fConst39 : (fConst39 + -1.0f)));
270 float fConst41 = (fConst36 - fConst40);
271 float fConst42 = (1.44269502f * std::log(fConst41));
272 float fConst43 = float(int(fConst42));
273 iConst44 = int(std::min<float>(float(int(std::pow(2.0f, std::max<float>(1.0f, ((fConst42 == fConst43) ? fConst42 : ((fConst42 >= 0.0f) ? (fConst43 + 1.0f) : fConst43)))))), std::max<float>(0.0f, fConst41)));
274 float fConst45 = (1.44269502f * std::log(fConst40));
275 float fConst46 = float(int(fConst45));
276 iConst47 = int(std::min<float>(float(int(std::pow(2.0f, std::max<float>(1.0f, ((fConst45 == fConst46) ? fConst45 : ((fConst45 >= 0.0f) ? (fConst46 + 1.0f) : fConst46)))))), std::max<float>(0.0f, (fConst40 + -1.0f))));
277 float fConst48 = ((0.210389003f * fConst0) + 0.5f);
278 float fConst49 = float(int(fConst48));
279 float fConst50 = ((fConst48 == fConst49) ? fConst48 : ((fConst48 >= 0.0f) ? fConst49 : (fConst49 + -1.0f)));
280 fConst51 = (0.0f - (6.90775537f * fConst50));
281 float fConst52 = ((0.0244210009f * fConst0) + 0.5f);
282 float fConst53 = float(int(fConst52));
283 float fConst54 = ((fConst52 == fConst53) ? fConst52 : ((fConst52 >= 0.0f) ? fConst53 : (fConst53 + -1.0f)));
284 float fConst55 = (fConst50 - fConst54);
285 float fConst56 = (1.44269502f * std::log(fConst55));
286 float fConst57 = float(int(fConst56));
287 iConst58 = int(std::min<float>(float(int(std::pow(2.0f, std::max<float>(1.0f, ((fConst56 == fConst57) ? fConst56 : ((fConst56 >= 0.0f) ? (fConst57 + 1.0f) : fConst57)))))), std::max<float>(0.0f, fConst55)));
288 float fConst59 = (1.44269502f * std::log(fConst54));
289 float fConst60 = float(int(fConst59));
290 iConst61 = int(std::min<float>(float(int(std::pow(2.0f, std::max<float>(1.0f, ((fConst59 == fConst60) ? fConst59 : ((fConst59 >= 0.0f) ? (fConst60 + 1.0f) : fConst60)))))), std::max<float>(0.0f, (fConst54 + -1.0f))));
291 float fConst62 = ((0.125f * fConst0) + 0.5f);
292 float fConst63 = float(int(fConst62));
293 float fConst64 = ((fConst62 == fConst63) ? fConst62 : ((fConst62 >= 0.0f) ? fConst63 : (fConst63 + -1.0f)));
294 fConst65 = (0.0f - (6.90775537f * fConst64));
295 float fConst66 = ((0.0134579996f * fConst0) + 0.5f);
296 float fConst67 = float(int(fConst66));
297 float fConst68 = ((fConst66 == fConst67) ? fConst66 : ((fConst66 >= 0.0f) ? fConst67 : (fConst67 + -1.0f)));
298 float fConst69 = (fConst64 - fConst68);
299 float fConst70 = (1.44269502f * std::log(fConst69));
300 float fConst71 = float(int(fConst70));
301 iConst72 = int(std::min<float>(float(int(std::pow(2.0f, std::max<float>(1.0f, ((fConst70 == fConst71) ? fConst70 : ((fConst70 >= 0.0f) ? (fConst71 + 1.0f) : fConst71)))))), std::max<float>(0.0f, fConst69)));
302 float fConst73 = (1.44269502f * std::log(fConst68));
303 float fConst74 = float(int(fConst73));
304 iConst75 = int(std::min<float>(float(int(std::pow(2.0f, std::max<float>(1.0f, ((fConst73 == fConst74) ? fConst73 : ((fConst73 >= 0.0f) ? (fConst74 + 1.0f) : fConst74)))))), std::max<float>(0.0f, (fConst68 + -1.0f))));
305 float fConst76 = ((0.127837002f * fConst0) + 0.5f);
306 float fConst77 = float(int(fConst76));
307 float fConst78 = ((fConst76 == fConst77) ? fConst76 : ((fConst76 >= 0.0f) ? fConst77 : (fConst77 + -1.0f)));
308 fConst79 = (0.0f - (6.90775537f * fConst78));
309 float fConst80 = ((0.0316039994f * fConst0) + 0.5f);
310 float fConst81 = float(int(fConst80));
311 float fConst82 = ((fConst80 == fConst81) ? fConst80 : ((fConst80 >= 0.0f) ? fConst81 : (fConst81 + -1.0f)));
312 float fConst83 = (fConst78 - fConst82);
313 float fConst84 = (1.44269502f * std::log(fConst83));
314 float fConst85 = float(int(fConst84));
315 iConst86 = int(std::min<float>(float(int(std::pow(2.0f, std::max<float>(1.0f, ((fConst84 == fConst85) ? fConst84 : ((fConst84 >= 0.0f) ? (fConst85 + 1.0f) : fConst85)))))), std::max<float>(0.0f, fConst83)));
316 float fConst87 = (1.44269502f * std::log(fConst82));
317 float fConst88 = float(int(fConst87));
318 iConst89 = int(std::min<float>(float(int(std::pow(2.0f, std::max<float>(1.0f, ((fConst87 == fConst88) ? fConst87 : ((fConst87 >= 0.0f) ? (fConst88 + 1.0f) : fConst88)))))), std::max<float>(0.0f, (fConst82 + -1.0f))));
319 float fConst90 = ((0.174713001f * fConst0) + 0.5f);
320 float fConst91 = float(int(fConst90));
321 float fConst92 = ((fConst90 == fConst91) ? fConst90 : ((fConst90 >= 0.0f) ? fConst91 : (fConst91 + -1.0f)));
322 fConst93 = (0.0f - (6.90775537f * fConst92));
323 float fConst94 = ((0.0229039993f * fConst0) + 0.5f);
324 float fConst95 = float(int(fConst94));
325 float fConst96 = ((fConst94 == fConst95) ? fConst94 : ((fConst94 >= 0.0f) ? fConst95 : (fConst95 + -1.0f)));
326 float fConst97 = (fConst92 - fConst96);
327 float fConst98 = (1.44269502f * std::log(fConst97));
328 float fConst99 = float(int(fConst98));
329 iConst100 = int(std::min<float>(float(int(std::pow(2.0f, std::max<float>(1.0f, ((fConst98 == fConst99) ? fConst98 : ((fConst98 >= 0.0f) ? (fConst99 + 1.0f) : fConst99)))))), std::max<float>(0.0f, fConst97)));
330 float fConst101 = (1.44269502f * std::log(fConst96));
331 float fConst102 = float(int(fConst101));
332 iConst103 = int(std::min<float>(float(int(std::pow(2.0f, std::max<float>(1.0f, ((fConst101 == fConst102) ? fConst101 : ((fConst101 >= 0.0f) ? (fConst102 + 1.0f) : fConst102)))))), std::max<float>(0.0f, (fConst96 + -1.0f))));
333 float fConst104 = ((0.153128996f * fConst0) + 0.5f);
334 float fConst105 = float(int(fConst104));
335 float fConst106 = ((fConst104 == fConst105) ? fConst104 : ((fConst104 >= 0.0f) ? fConst105 : (fConst105 + -1.0f)));
336 fConst107 = (0.0f - (6.90775537f * fConst106));
337 float fConst108 = ((0.0203460008f * fConst0) + 0.5f);
338 float fConst109 = float(int(fConst108));
339 float fConst110 = ((fConst108 == fConst109) ? fConst108 : ((fConst108 >= 0.0f) ? fConst109 : (fConst109 + -1.0f)));
340 float fConst111 = (fConst106 - fConst110);
341 float fConst112 = (1.44269502f * std::log(fConst111));
342 float fConst113 = float(int(fConst112));
343 iConst114 = int(std::min<float>(float(int(std::pow(2.0f, std::max<float>(1.0f, ((fConst112 == fConst113) ? fConst112 : ((fConst112 >= 0.0f) ? (fConst113 + 1.0f) : fConst113)))))), std::max<float>(0.0f, fConst111)));
344 float fConst115 = (1.44269502f * std::log(fConst110));
345 float fConst116 = float(int(fConst115));
346 iConst117 = int(std::min<float>(float(int(std::pow(2.0f, std::max<float>(1.0f, ((fConst115 == fConst116) ? fConst115 : ((fConst115 >= 0.0f) ? (fConst116 + 1.0f) : fConst116)))))), std::max<float>(0.0f, (fConst110 + -1.0f))));
347 }
348
350 fVslider0 = FAUSTFLOAT(1.0f);
351 fVslider1 = FAUSTFLOAT(0.5f);
352 fVslider2 = FAUSTFLOAT(0.5f);
353 fVslider3 = FAUSTFLOAT(0.5f);
354 }
355
356 virtual void instanceClear() {
357 for (int l0 = 0; (l0 < 4); l0 = (l0 + 1)) {
358 fRec1_perm[l0] = 0.0f;
359 }
360 for (int l1 = 0; (l1 < 4); l1 = (l1 + 1)) {
361 fRec0_perm[l1] = 0.0f;
362 }
363 for (int l2 = 0; (l2 < 4); l2 = (l2 + 1)) {
364 fRec14_perm[l2] = 0.0f;
365 }
366 for (int l3 = 0; (l3 < 4); l3 = (l3 + 1)) {
367 fRec13_perm[l3] = 0.0f;
368 }
369 for (int l4 = 0; (l4 < 4); l4 = (l4 + 1)) {
370 fRec15_perm[l4] = 0.0f;
371 }
372 for (int l5 = 0; (l5 < 4); l5 = (l5 + 1)) {
373 fRec17_perm[l5] = 0.0f;
374 }
375 for (int l6 = 0; (l6 < 4); l6 = (l6 + 1)) {
376 fRec16_perm[l6] = 0.0f;
377 }
378 for (int l7 = 0; (l7 < 4); l7 = (l7 + 1)) {
379 fRec12_perm[l7] = 0.0f;
380 }
381 for (int l8 = 0; (l8 < 4); l8 = (l8 + 1)) {
382 fRec19_perm[l8] = 0.0f;
383 }
384 for (int l9 = 0; (l9 < 4); l9 = (l9 + 1)) {
385 fRec18_perm[l9] = 0.0f;
386 }
387 for (int l10 = 0; (l10 < 65536); l10 = (l10 + 1)) {
388 fYec0[l10] = 0.0f;
389 }
390 fYec0_idx = 0;
391 fYec0_idx_save = 0;
392 for (int l11 = 0; (l11 < 16384); l11 = (l11 + 1)) {
393 fYec1[l11] = 0.0f;
394 }
395 fYec1_idx = 0;
396 fYec1_idx_save = 0;
397 for (int l12 = 0; (l12 < 4096); l12 = (l12 + 1)) {
398 fYec2[l12] = 0.0f;
399 }
400 fYec2_idx = 0;
401 fYec2_idx_save = 0;
402 for (int l13 = 0; (l13 < 4); l13 = (l13 + 1)) {
403 fRec10_perm[l13] = 0.0f;
404 }
405 for (int l14 = 0; (l14 < 4); l14 = (l14 + 1)) {
406 fRec23_perm[l14] = 0.0f;
407 }
408 for (int l15 = 0; (l15 < 4); l15 = (l15 + 1)) {
409 fRec22_perm[l15] = 0.0f;
410 }
411 for (int l16 = 0; (l16 < 65536); l16 = (l16 + 1)) {
412 fYec3[l16] = 0.0f;
413 }
414 fYec3_idx = 0;
415 fYec3_idx_save = 0;
416 for (int l17 = 0; (l17 < 8192); l17 = (l17 + 1)) {
417 fYec4[l17] = 0.0f;
418 }
419 fYec4_idx = 0;
420 fYec4_idx_save = 0;
421 for (int l18 = 0; (l18 < 4); l18 = (l18 + 1)) {
422 fRec20_perm[l18] = 0.0f;
423 }
424 for (int l19 = 0; (l19 < 4); l19 = (l19 + 1)) {
425 fRec27_perm[l19] = 0.0f;
426 }
427 for (int l20 = 0; (l20 < 4); l20 = (l20 + 1)) {
428 fRec26_perm[l20] = 0.0f;
429 }
430 for (int l21 = 0; (l21 < 65536); l21 = (l21 + 1)) {
431 fYec5[l21] = 0.0f;
432 }
433 fYec5_idx = 0;
434 fYec5_idx_save = 0;
435 for (int l22 = 0; (l22 < 8192); l22 = (l22 + 1)) {
436 fYec6[l22] = 0.0f;
437 }
438 fYec6_idx = 0;
439 fYec6_idx_save = 0;
440 for (int l23 = 0; (l23 < 4); l23 = (l23 + 1)) {
441 fRec24_perm[l23] = 0.0f;
442 }
443 for (int l24 = 0; (l24 < 4); l24 = (l24 + 1)) {
444 fRec31_perm[l24] = 0.0f;
445 }
446 for (int l25 = 0; (l25 < 4); l25 = (l25 + 1)) {
447 fRec30_perm[l25] = 0.0f;
448 }
449 for (int l26 = 0; (l26 < 65536); l26 = (l26 + 1)) {
450 fYec7[l26] = 0.0f;
451 }
452 fYec7_idx = 0;
453 fYec7_idx_save = 0;
454 for (int l27 = 0; (l27 < 8192); l27 = (l27 + 1)) {
455 fYec8[l27] = 0.0f;
456 }
457 fYec8_idx = 0;
458 fYec8_idx_save = 0;
459 for (int l28 = 0; (l28 < 4); l28 = (l28 + 1)) {
460 fRec28_perm[l28] = 0.0f;
461 }
462 for (int l29 = 0; (l29 < 4); l29 = (l29 + 1)) {
463 fRec35_perm[l29] = 0.0f;
464 }
465 for (int l30 = 0; (l30 < 4); l30 = (l30 + 1)) {
466 fRec34_perm[l30] = 0.0f;
467 }
468 for (int l31 = 0; (l31 < 32768); l31 = (l31 + 1)) {
469 fYec9[l31] = 0.0f;
470 }
471 fYec9_idx = 0;
472 fYec9_idx_save = 0;
473 for (int l32 = 0; (l32 < 16384); l32 = (l32 + 1)) {
474 fYec10[l32] = 0.0f;
475 }
476 fYec10_idx = 0;
477 fYec10_idx_save = 0;
478 for (int l33 = 0; (l33 < 4096); l33 = (l33 + 1)) {
479 fYec11[l33] = 0.0f;
480 }
481 fYec11_idx = 0;
482 fYec11_idx_save = 0;
483 for (int l34 = 0; (l34 < 4); l34 = (l34 + 1)) {
484 fRec32_perm[l34] = 0.0f;
485 }
486 for (int l35 = 0; (l35 < 4); l35 = (l35 + 1)) {
487 fRec39_perm[l35] = 0.0f;
488 }
489 for (int l36 = 0; (l36 < 4); l36 = (l36 + 1)) {
490 fRec38_perm[l36] = 0.0f;
491 }
492 for (int l37 = 0; (l37 < 32768); l37 = (l37 + 1)) {
493 fYec12[l37] = 0.0f;
494 }
495 fYec12_idx = 0;
496 fYec12_idx_save = 0;
497 for (int l38 = 0; (l38 < 8192); l38 = (l38 + 1)) {
498 fYec13[l38] = 0.0f;
499 }
500 fYec13_idx = 0;
501 fYec13_idx_save = 0;
502 for (int l39 = 0; (l39 < 4); l39 = (l39 + 1)) {
503 fRec36_perm[l39] = 0.0f;
504 }
505 for (int l40 = 0; (l40 < 4); l40 = (l40 + 1)) {
506 fRec43_perm[l40] = 0.0f;
507 }
508 for (int l41 = 0; (l41 < 4); l41 = (l41 + 1)) {
509 fRec42_perm[l41] = 0.0f;
510 }
511 for (int l42 = 0; (l42 < 65536); l42 = (l42 + 1)) {
512 fYec14[l42] = 0.0f;
513 }
514 fYec14_idx = 0;
515 fYec14_idx_save = 0;
516 for (int l43 = 0; (l43 < 8192); l43 = (l43 + 1)) {
517 fYec15[l43] = 0.0f;
518 }
519 fYec15_idx = 0;
520 fYec15_idx_save = 0;
521 for (int l44 = 0; (l44 < 4); l44 = (l44 + 1)) {
522 fRec40_perm[l44] = 0.0f;
523 }
524 for (int l45 = 0; (l45 < 4); l45 = (l45 + 1)) {
525 fRec47_perm[l45] = 0.0f;
526 }
527 for (int l46 = 0; (l46 < 4); l46 = (l46 + 1)) {
528 fRec46_perm[l46] = 0.0f;
529 }
530 for (int l47 = 0; (l47 < 32768); l47 = (l47 + 1)) {
531 fYec16[l47] = 0.0f;
532 }
533 fYec16_idx = 0;
534 fYec16_idx_save = 0;
535 for (int l48 = 0; (l48 < 4096); l48 = (l48 + 1)) {
536 fYec17[l48] = 0.0f;
537 }
538 fYec17_idx = 0;
539 fYec17_idx_save = 0;
540 for (int l49 = 0; (l49 < 4); l49 = (l49 + 1)) {
541 fRec44_perm[l49] = 0.0f;
542 }
543 for (int l50 = 0; (l50 < 4); l50 = (l50 + 1)) {
544 fRec2_perm[l50] = 0.0f;
545 }
546 for (int l51 = 0; (l51 < 4); l51 = (l51 + 1)) {
547 fRec3_perm[l51] = 0.0f;
548 }
549 for (int l52 = 0; (l52 < 4); l52 = (l52 + 1)) {
550 fRec4_perm[l52] = 0.0f;
551 }
552 for (int l53 = 0; (l53 < 4); l53 = (l53 + 1)) {
553 fRec5_perm[l53] = 0.0f;
554 }
555 for (int l54 = 0; (l54 < 4); l54 = (l54 + 1)) {
556 fRec6_perm[l54] = 0.0f;
557 }
558 for (int l55 = 0; (l55 < 4); l55 = (l55 + 1)) {
559 fRec7_perm[l55] = 0.0f;
560 }
561 for (int l56 = 0; (l56 < 4); l56 = (l56 + 1)) {
562 fRec8_perm[l56] = 0.0f;
563 }
564 for (int l57 = 0; (l57 < 4); l57 = (l57 + 1)) {
565 fRec9_perm[l57] = 0.0f;
566 }
567 }
568
569 virtual void init(int sample_rate) {
570 classInit(sample_rate);
571 instanceInit(sample_rate);
572 }
573 virtual void instanceInit(int sample_rate) {
574 instanceConstants(sample_rate);
577 }
578
579 virtual VAEReverb* clone() {
580 return new VAEReverb();
581 }
582
583 virtual int getSampleRate() {
584 return fSampleRate;
585 }
586
587 virtual void buildUserInterface(UI* ui_interface) {
588 ui_interface->openVerticalBox("reverb");
589 ui_interface->addVerticalSlider("fb1", &fVslider2, FAUSTFLOAT(0.5f), FAUSTFLOAT(0.0f), FAUSTFLOAT(1.0f), FAUSTFLOAT(0.00999999978f));
590 ui_interface->addVerticalSlider("fb2", &fVslider1, FAUSTFLOAT(0.5f), FAUSTFLOAT(0.0f), FAUSTFLOAT(1.0f), FAUSTFLOAT(0.00999999978f));
591 ui_interface->addVerticalSlider("mix", &fVslider0, FAUSTFLOAT(1.0f), FAUSTFLOAT(0.0f), FAUSTFLOAT(1.0f), FAUSTFLOAT(0.00999999978f));
592 ui_interface->addVerticalSlider("pre", &fVslider3, FAUSTFLOAT(0.5f), FAUSTFLOAT(0.0f), FAUSTFLOAT(1.0f), FAUSTFLOAT(0.00999999978f));
593 ui_interface->closeBox();
594 }
595
596 virtual void compute(int count, FAUSTFLOAT** inputs, FAUSTFLOAT** outputs) {
597 FAUSTFLOAT* input0_ptr = inputs[0];
598 FAUSTFLOAT* input1_ptr = inputs[1];
599 FAUSTFLOAT* output0_ptr = outputs[0];
600 FAUSTFLOAT* output1_ptr = outputs[1];
601 float fSlow0 = (0.00100000005f * float(fVslider0));
602 float fRec1_tmp[36];
603 float* fRec1 = &fRec1_tmp[4];
604 float fRec0_tmp[36];
605 float* fRec0 = &fRec0_tmp[4];
606 float fSlow1 = (0.00100000005f * float(fVslider1));
607 float fRec14_tmp[36];
608 float* fRec14 = &fRec14_tmp[4];
609 float fRec13_tmp[36];
610 float* fRec13 = &fRec13_tmp[4];
611 float fRec15_tmp[36];
612 float* fRec15 = &fRec15_tmp[4];
613 float fSlow2 = (0.00100000005f * float(fVslider2));
614 float fRec17_tmp[36];
615 float* fRec17 = &fRec17_tmp[4];
616 float fRec16_tmp[36];
617 float* fRec16 = &fRec16_tmp[4];
618 float fZec0[32];
619 float fZec1[32];
620 float fZec2[32];
621 float fZec3[32];
622 float fZec4[32];
623 float fZec5[32];
624 float fZec6[32];
625 float fZec7[32];
626 float fRec12_tmp[36];
627 float* fRec12 = &fRec12_tmp[4];
628 float fSlow3 = (0.00100000005f * float(fVslider3));
629 float fRec19_tmp[36];
630 float* fRec19 = &fRec19_tmp[4];
631 float fRec18_tmp[36];
632 float* fRec18 = &fRec18_tmp[4];
633 int iZec8[32];
634 float fZec9[32];
635 float fRec10_tmp[36];
636 float* fRec10 = &fRec10_tmp[4];
637 float fRec11[32];
638 float fRec23_tmp[36];
639 float* fRec23 = &fRec23_tmp[4];
640 float fZec10[32];
641 float fZec11[32];
642 float fZec12[32];
643 float fZec13[32];
644 float fZec14[32];
645 float fZec15[32];
646 float fRec22_tmp[36];
647 float* fRec22 = &fRec22_tmp[4];
648 float fRec20_tmp[36];
649 float* fRec20 = &fRec20_tmp[4];
650 float fRec21[32];
651 float fRec27_tmp[36];
652 float* fRec27 = &fRec27_tmp[4];
653 float fZec16[32];
654 float fZec17[32];
655 float fZec18[32];
656 float fZec19[32];
657 float fZec20[32];
658 float fZec21[32];
659 float fRec26_tmp[36];
660 float* fRec26 = &fRec26_tmp[4];
661 float fRec24_tmp[36];
662 float* fRec24 = &fRec24_tmp[4];
663 float fRec25[32];
664 float fRec31_tmp[36];
665 float* fRec31 = &fRec31_tmp[4];
666 float fZec22[32];
667 float fZec23[32];
668 float fZec24[32];
669 float fZec25[32];
670 float fZec26[32];
671 float fZec27[32];
672 float fRec30_tmp[36];
673 float* fRec30 = &fRec30_tmp[4];
674 float fRec28_tmp[36];
675 float* fRec28 = &fRec28_tmp[4];
676 float fRec29[32];
677 float fRec35_tmp[36];
678 float* fRec35 = &fRec35_tmp[4];
679 float fZec28[32];
680 float fZec29[32];
681 float fZec30[32];
682 float fZec31[32];
683 float fZec32[32];
684 float fZec33[32];
685 float fRec34_tmp[36];
686 float* fRec34 = &fRec34_tmp[4];
687 float fZec34[32];
688 float fRec32_tmp[36];
689 float* fRec32 = &fRec32_tmp[4];
690 float fRec33[32];
691 float fRec39_tmp[36];
692 float* fRec39 = &fRec39_tmp[4];
693 float fZec35[32];
694 float fZec36[32];
695 float fZec37[32];
696 float fZec38[32];
697 float fZec39[32];
698 float fZec40[32];
699 float fRec38_tmp[36];
700 float* fRec38 = &fRec38_tmp[4];
701 float fRec36_tmp[36];
702 float* fRec36 = &fRec36_tmp[4];
703 float fRec37[32];
704 float fRec43_tmp[36];
705 float* fRec43 = &fRec43_tmp[4];
706 float fZec41[32];
707 float fZec42[32];
708 float fZec43[32];
709 float fZec44[32];
710 float fZec45[32];
711 float fZec46[32];
712 float fRec42_tmp[36];
713 float* fRec42 = &fRec42_tmp[4];
714 float fRec40_tmp[36];
715 float* fRec40 = &fRec40_tmp[4];
716 float fRec41[32];
717 float fRec47_tmp[36];
718 float* fRec47 = &fRec47_tmp[4];
719 float fZec47[32];
720 float fZec48[32];
721 float fZec49[32];
722 float fZec50[32];
723 float fZec51[32];
724 float fZec52[32];
725 float fRec46_tmp[36];
726 float* fRec46 = &fRec46_tmp[4];
727 float fRec44_tmp[36];
728 float* fRec44 = &fRec44_tmp[4];
729 float fRec45[32];
730 float fZec53[32];
731 float fZec54[32];
732 float fRec2_tmp[36];
733 float* fRec2 = &fRec2_tmp[4];
734 float fRec3_tmp[36];
735 float* fRec3 = &fRec3_tmp[4];
736 float fZec55[32];
737 float fRec4_tmp[36];
738 float* fRec4 = &fRec4_tmp[4];
739 float fRec5_tmp[36];
740 float* fRec5 = &fRec5_tmp[4];
741 float fZec56[32];
742 float fZec57[32];
743 float fRec6_tmp[36];
744 float* fRec6 = &fRec6_tmp[4];
745 float fRec7_tmp[36];
746 float* fRec7 = &fRec7_tmp[4];
747 float fZec58[32];
748 float fZec59[32];
749 float fRec8_tmp[36];
750 float* fRec8 = &fRec8_tmp[4];
751 float fRec9_tmp[36];
752 float* fRec9 = &fRec9_tmp[4];
753 float fZec60[32];
754 float fZec61[32];
755 int vindex = 0;
756 /* Main loop */
757 for (vindex = 0; (vindex <= (count - 32)); vindex = (vindex + 32)) {
758 FAUSTFLOAT* input0 = &input0_ptr[vindex];
759 FAUSTFLOAT* input1 = &input1_ptr[vindex];
760 FAUSTFLOAT* output0 = &output0_ptr[vindex];
761 FAUSTFLOAT* output1 = &output1_ptr[vindex];
762 int vsize = 32;
763 /* Recursive loop 0 */
764 /* Pre code */
765 for (int j4 = 0; (j4 < 4); j4 = (j4 + 1)) {
766 fRec14_tmp[j4] = fRec14_perm[j4];
767 }
768 /* Compute code */
769 for (int i = 0; (i < vsize); i = (i + 1)) {
770 fRec14[i] = (fSlow1 + (0.999000013f * fRec14[(i - 1)]));
771 }
772 /* Post code */
773 for (int j5 = 0; (j5 < 4); j5 = (j5 + 1)) {
774 fRec14_perm[j5] = fRec14_tmp[(vsize + j5)];
775 }
776 /* Recursive loop 1 */
777 /* Pre code */
778 for (int j6 = 0; (j6 < 4); j6 = (j6 + 1)) {
779 fRec13_tmp[j6] = fRec13_perm[j6];
780 }
781 /* Compute code */
782 for (int i = 0; (i < vsize); i = (i + 1)) {
783 fRec13[i] = ((0.999000013f * fRec13[(i - 1)]) + (0.00100000005f * fRec14[i]));
784 }
785 /* Post code */
786 for (int j7 = 0; (j7 < 4); j7 = (j7 + 1)) {
787 fRec13_perm[j7] = fRec13_tmp[(vsize + j7)];
788 }
789 /* Vectorizable loop 2 */
790 /* Compute code */
791 for (int i = 0; (i < vsize); i = (i + 1)) {
792 fZec0[i] = std::min<float>(std::max<float>(fRec13[i], 0.0199999996f), 0.970000029f);
793 }
794 /* Vectorizable loop 3 */
795 /* Compute code */
796 for (int i = 0; (i < vsize); i = (i + 1)) {
797 fZec1[i] = std::exp((fConst5 * (fConst9 / fZec0[i])));
798 }
799 /* Recursive loop 4 */
800 /* Pre code */
801 for (int j16 = 0; (j16 < 4); j16 = (j16 + 1)) {
802 fRec19_tmp[j16] = fRec19_perm[j16];
803 }
804 /* Compute code */
805 for (int i = 0; (i < vsize); i = (i + 1)) {
806 fRec19[i] = (fSlow3 + (0.999000013f * fRec19[(i - 1)]));
807 }
808 /* Post code */
809 for (int j17 = 0; (j17 < 4); j17 = (j17 + 1)) {
810 fRec19_perm[j17] = fRec19_tmp[(vsize + j17)];
811 }
812 /* Vectorizable loop 5 */
813 /* Compute code */
814 for (int i = 0; (i < vsize); i = (i + 1)) {
815 fZec10[i] = std::exp((fConst5 * (fConst23 / fZec0[i])));
816 }
817 /* Vectorizable loop 6 */
818 /* Compute code */
819 for (int i = 0; (i < vsize); i = (i + 1)) {
820 fZec16[i] = std::exp((fConst5 * (fConst37 / fZec0[i])));
821 }
822 /* Vectorizable loop 7 */
823 /* Compute code */
824 for (int i = 0; (i < vsize); i = (i + 1)) {
825 fZec22[i] = std::exp((fConst5 * (fConst51 / fZec0[i])));
826 }
827 /* Vectorizable loop 8 */
828 /* Compute code */
829 for (int i = 0; (i < vsize); i = (i + 1)) {
830 fZec28[i] = std::exp((fConst5 * (fConst65 / fZec0[i])));
831 }
832 /* Vectorizable loop 9 */
833 /* Compute code */
834 for (int i = 0; (i < vsize); i = (i + 1)) {
835 fZec35[i] = std::exp((fConst5 * (fConst79 / fZec0[i])));
836 }
837 /* Vectorizable loop 10 */
838 /* Compute code */
839 for (int i = 0; (i < vsize); i = (i + 1)) {
840 fZec41[i] = std::exp((fConst5 * (fConst93 / fZec0[i])));
841 }
842 /* Vectorizable loop 11 */
843 /* Compute code */
844 for (int i = 0; (i < vsize); i = (i + 1)) {
845 fZec47[i] = std::exp((fConst5 * (fConst107 / fZec0[i])));
846 }
847 /* Recursive loop 12 */
848 /* Pre code */
849 for (int j0 = 0; (j0 < 4); j0 = (j0 + 1)) {
850 fRec1_tmp[j0] = fRec1_perm[j0];
851 }
852 /* Compute code */
853 for (int i = 0; (i < vsize); i = (i + 1)) {
854 fRec1[i] = (fSlow0 + (0.999000013f * fRec1[(i - 1)]));
855 }
856 /* Post code */
857 for (int j1 = 0; (j1 < 4); j1 = (j1 + 1)) {
858 fRec1_perm[j1] = fRec1_tmp[(vsize + j1)];
859 }
860 /* Recursive loop 13 */
861 /* Pre code */
862 for (int j10 = 0; (j10 < 4); j10 = (j10 + 1)) {
863 fRec17_tmp[j10] = fRec17_perm[j10];
864 }
865 /* Compute code */
866 for (int i = 0; (i < vsize); i = (i + 1)) {
867 fRec17[i] = (fSlow2 + (0.999000013f * fRec17[(i - 1)]));
868 }
869 /* Post code */
870 for (int j11 = 0; (j11 < 4); j11 = (j11 + 1)) {
871 fRec17_perm[j11] = fRec17_tmp[(vsize + j11)];
872 }
873 /* Vectorizable loop 14 */
874 /* Compute code */
875 for (int i = 0; (i < vsize); i = (i + 1)) {
876 fZec2[i] = VAEReverb_faustpower2_f(fZec1[i]);
877 }
878 /* Recursive loop 15 */
879 /* Pre code */
880 for (int j18 = 0; (j18 < 4); j18 = (j18 + 1)) {
881 fRec18_tmp[j18] = fRec18_perm[j18];
882 }
883 /* Compute code */
884 for (int i = 0; (i < vsize); i = (i + 1)) {
885 fRec18[i] = ((0.999000013f * fRec18[(i - 1)]) + (0.00100000005f * fRec19[i]));
886 }
887 /* Post code */
888 for (int j19 = 0; (j19 < 4); j19 = (j19 + 1)) {
889 fRec18_perm[j19] = fRec18_tmp[(vsize + j19)];
890 }
891 /* Vectorizable loop 16 */
892 /* Compute code */
893 for (int i = 0; (i < vsize); i = (i + 1)) {
894 fZec11[i] = VAEReverb_faustpower2_f(fZec10[i]);
895 }
896 /* Vectorizable loop 17 */
897 /* Compute code */
898 for (int i = 0; (i < vsize); i = (i + 1)) {
899 fZec17[i] = VAEReverb_faustpower2_f(fZec16[i]);
900 }
901 /* Vectorizable loop 18 */
902 /* Compute code */
903 for (int i = 0; (i < vsize); i = (i + 1)) {
904 fZec23[i] = VAEReverb_faustpower2_f(fZec22[i]);
905 }
906 /* Vectorizable loop 19 */
907 /* Compute code */
908 for (int i = 0; (i < vsize); i = (i + 1)) {
909 fZec29[i] = VAEReverb_faustpower2_f(fZec28[i]);
910 }
911 /* Vectorizable loop 20 */
912 /* Compute code */
913 for (int i = 0; (i < vsize); i = (i + 1)) {
914 fZec36[i] = VAEReverb_faustpower2_f(fZec35[i]);
915 }
916 /* Vectorizable loop 21 */
917 /* Compute code */
918 for (int i = 0; (i < vsize); i = (i + 1)) {
919 fZec42[i] = VAEReverb_faustpower2_f(fZec41[i]);
920 }
921 /* Vectorizable loop 22 */
922 /* Compute code */
923 for (int i = 0; (i < vsize); i = (i + 1)) {
924 fZec48[i] = VAEReverb_faustpower2_f(fZec47[i]);
925 }
926 /* Recursive loop 23 */
927 /* Pre code */
928 for (int j2 = 0; (j2 < 4); j2 = (j2 + 1)) {
929 fRec0_tmp[j2] = fRec0_perm[j2];
930 }
931 /* Compute code */
932 for (int i = 0; (i < vsize); i = (i + 1)) {
933 fRec0[i] = ((0.999000013f * fRec0[(i - 1)]) + (0.00100000005f * fRec1[i]));
934 }
935 /* Post code */
936 for (int j3 = 0; (j3 < 4); j3 = (j3 + 1)) {
937 fRec0_perm[j3] = fRec0_tmp[(vsize + j3)];
938 }
939 /* Vectorizable loop 24 */
940 /* Compute code */
941 for (int i = 0; (i < vsize); i = (i + 1)) {
942 fZec4[i] = (1.0f - fZec2[i]);
943 }
944 /* Vectorizable loop 25 */
945 /* Compute code */
946 for (int i = 0; (i < vsize); i = (i + 1)) {
947 fZec3[i] = (1.0f - (fConst4 * fZec2[i]));
948 }
949 /* Recursive loop 26 */
950 /* Pre code */
951 for (int j12 = 0; (j12 < 4); j12 = (j12 + 1)) {
952 fRec16_tmp[j12] = fRec16_perm[j12];
953 }
954 /* Compute code */
955 for (int i = 0; (i < vsize); i = (i + 1)) {
956 fRec16[i] = ((0.999000013f * fRec16[(i - 1)]) + (0.00100000005f * fRec17[i]));
957 }
958 /* Post code */
959 for (int j13 = 0; (j13 < 4); j13 = (j13 + 1)) {
960 fRec16_perm[j13] = fRec16_tmp[(vsize + j13)];
961 }
962 /* Vectorizable loop 27 */
963 /* Pre code */
964 fYec1_idx = ((fYec1_idx + fYec1_idx_save) & 16383);
965 /* Compute code */
966 for (int i = 0; (i < vsize); i = (i + 1)) {
967 fYec1[((i + fYec1_idx) & 16383)] = float(input1[i]);
968 }
969 /* Post code */
970 fYec1_idx_save = vsize;
971 /* Vectorizable loop 28 */
972 /* Compute code */
973 for (int i = 0; (i < vsize); i = (i + 1)) {
974 iZec8[i] = int(std::min<float>(8192.0f, std::max<float>(0.0f, (fConst0 * std::min<float>(std::max<float>(fRec18[i], 0.00999999978f), 0.970000029f)))));
975 }
976 /* Vectorizable loop 29 */
977 /* Compute code */
978 for (int i = 0; (i < vsize); i = (i + 1)) {
979 fZec12[i] = (1.0f - (fConst4 * fZec11[i]));
980 }
981 /* Vectorizable loop 30 */
982 /* Compute code */
983 for (int i = 0; (i < vsize); i = (i + 1)) {
984 fZec13[i] = (1.0f - fZec11[i]);
985 }
986 /* Vectorizable loop 31 */
987 /* Compute code */
988 for (int i = 0; (i < vsize); i = (i + 1)) {
989 fZec18[i] = (1.0f - (fConst4 * fZec17[i]));
990 }
991 /* Vectorizable loop 32 */
992 /* Compute code */
993 for (int i = 0; (i < vsize); i = (i + 1)) {
994 fZec19[i] = (1.0f - fZec17[i]);
995 }
996 /* Vectorizable loop 33 */
997 /* Compute code */
998 for (int i = 0; (i < vsize); i = (i + 1)) {
999 fZec24[i] = (1.0f - (fConst4 * fZec23[i]));
1000 }
1001 /* Vectorizable loop 34 */
1002 /* Compute code */
1003 for (int i = 0; (i < vsize); i = (i + 1)) {
1004 fZec25[i] = (1.0f - fZec23[i]);
1005 }
1006 /* Vectorizable loop 35 */
1007 /* Pre code */
1008 fYec10_idx = ((fYec10_idx + fYec10_idx_save) & 16383);
1009 /* Compute code */
1010 for (int i = 0; (i < vsize); i = (i + 1)) {
1011 fYec10[((i + fYec10_idx) & 16383)] = float(input0[i]);
1012 }
1013 /* Post code */
1014 fYec10_idx_save = vsize;
1015 /* Vectorizable loop 36 */
1016 /* Compute code */
1017 for (int i = 0; (i < vsize); i = (i + 1)) {
1018 fZec30[i] = (1.0f - (fConst4 * fZec29[i]));
1019 }
1020 /* Vectorizable loop 37 */
1021 /* Compute code */
1022 for (int i = 0; (i < vsize); i = (i + 1)) {
1023 fZec31[i] = (1.0f - fZec29[i]);
1024 }
1025 /* Vectorizable loop 38 */
1026 /* Compute code */
1027 for (int i = 0; (i < vsize); i = (i + 1)) {
1028 fZec37[i] = (1.0f - (fConst4 * fZec36[i]));
1029 }
1030 /* Vectorizable loop 39 */
1031 /* Compute code */
1032 for (int i = 0; (i < vsize); i = (i + 1)) {
1033 fZec38[i] = (1.0f - fZec36[i]);
1034 }
1035 /* Vectorizable loop 40 */
1036 /* Compute code */
1037 for (int i = 0; (i < vsize); i = (i + 1)) {
1038 fZec43[i] = (1.0f - (fConst4 * fZec42[i]));
1039 }
1040 /* Vectorizable loop 41 */
1041 /* Compute code */
1042 for (int i = 0; (i < vsize); i = (i + 1)) {
1043 fZec44[i] = (1.0f - fZec42[i]);
1044 }
1045 /* Vectorizable loop 42 */
1046 /* Compute code */
1047 for (int i = 0; (i < vsize); i = (i + 1)) {
1048 fZec49[i] = (1.0f - (fConst4 * fZec48[i]));
1049 }
1050 /* Vectorizable loop 43 */
1051 /* Compute code */
1052 for (int i = 0; (i < vsize); i = (i + 1)) {
1053 fZec50[i] = (1.0f - fZec48[i]);
1054 }
1055 /* Vectorizable loop 44 */
1056 /* Compute code */
1057 for (int i = 0; (i < vsize); i = (i + 1)) {
1058 fZec6[i] = std::sqrt(std::max<float>(0.0f, ((VAEReverb_faustpower2_f(fZec3[i]) / VAEReverb_faustpower2_f(fZec4[i])) + -1.0f)));
1059 }
1060 /* Vectorizable loop 45 */
1061 /* Compute code */
1062 for (int i = 0; (i < vsize); i = (i + 1)) {
1063 fZec7[i] = std::min<float>(std::max<float>(fRec16[i], 0.0199999996f), 0.970000029f);
1064 }
1065 /* Vectorizable loop 46 */
1066 /* Compute code */
1067 for (int i = 0; (i < vsize); i = (i + 1)) {
1068 fZec5[i] = (fZec3[i] / fZec4[i]);
1069 }
1070 /* Vectorizable loop 47 */
1071 /* Compute code */
1072 for (int i = 0; (i < vsize); i = (i + 1)) {
1073 fZec9[i] = (0.300000012f * fYec1[(((i + fYec1_idx) - iZec8[i]) & 16383)]);
1074 }
1075 /* Vectorizable loop 48 */
1076 /* Compute code */
1077 for (int i = 0; (i < vsize); i = (i + 1)) {
1078 fZec14[i] = (fZec12[i] / fZec13[i]);
1079 }
1080 /* Vectorizable loop 49 */
1081 /* Compute code */
1082 for (int i = 0; (i < vsize); i = (i + 1)) {
1083 fZec15[i] = std::sqrt(std::max<float>(0.0f, ((VAEReverb_faustpower2_f(fZec12[i]) / VAEReverb_faustpower2_f(fZec13[i])) + -1.0f)));
1084 }
1085 /* Vectorizable loop 50 */
1086 /* Compute code */
1087 for (int i = 0; (i < vsize); i = (i + 1)) {
1088 fZec20[i] = (fZec18[i] / fZec19[i]);
1089 }
1090 /* Vectorizable loop 51 */
1091 /* Compute code */
1092 for (int i = 0; (i < vsize); i = (i + 1)) {
1093 fZec21[i] = std::sqrt(std::max<float>(0.0f, ((VAEReverb_faustpower2_f(fZec18[i]) / VAEReverb_faustpower2_f(fZec19[i])) + -1.0f)));
1094 }
1095 /* Vectorizable loop 52 */
1096 /* Compute code */
1097 for (int i = 0; (i < vsize); i = (i + 1)) {
1098 fZec26[i] = (fZec24[i] / fZec25[i]);
1099 }
1100 /* Vectorizable loop 53 */
1101 /* Compute code */
1102 for (int i = 0; (i < vsize); i = (i + 1)) {
1103 fZec27[i] = std::sqrt(std::max<float>(0.0f, ((VAEReverb_faustpower2_f(fZec24[i]) / VAEReverb_faustpower2_f(fZec25[i])) + -1.0f)));
1104 }
1105 /* Vectorizable loop 54 */
1106 /* Compute code */
1107 for (int i = 0; (i < vsize); i = (i + 1)) {
1108 fZec34[i] = (0.300000012f * fYec10[(((i + fYec10_idx) - iZec8[i]) & 16383)]);
1109 }
1110 /* Vectorizable loop 55 */
1111 /* Compute code */
1112 for (int i = 0; (i < vsize); i = (i + 1)) {
1113 fZec32[i] = (fZec30[i] / fZec31[i]);
1114 }
1115 /* Vectorizable loop 56 */
1116 /* Compute code */
1117 for (int i = 0; (i < vsize); i = (i + 1)) {
1118 fZec33[i] = std::sqrt(std::max<float>(0.0f, ((VAEReverb_faustpower2_f(fZec30[i]) / VAEReverb_faustpower2_f(fZec31[i])) + -1.0f)));
1119 }
1120 /* Vectorizable loop 57 */
1121 /* Compute code */
1122 for (int i = 0; (i < vsize); i = (i + 1)) {
1123 fZec52[i] = std::sqrt(std::max<float>(0.0f, ((VAEReverb_faustpower2_f(fZec49[i]) / VAEReverb_faustpower2_f(fZec50[i])) + -1.0f)));
1124 }
1125 /* Vectorizable loop 58 */
1126 /* Compute code */
1127 for (int i = 0; (i < vsize); i = (i + 1)) {
1128 fZec39[i] = (fZec37[i] / fZec38[i]);
1129 }
1130 /* Vectorizable loop 59 */
1131 /* Compute code */
1132 for (int i = 0; (i < vsize); i = (i + 1)) {
1133 fZec40[i] = std::sqrt(std::max<float>(0.0f, ((VAEReverb_faustpower2_f(fZec37[i]) / VAEReverb_faustpower2_f(fZec38[i])) + -1.0f)));
1134 }
1135 /* Vectorizable loop 60 */
1136 /* Compute code */
1137 for (int i = 0; (i < vsize); i = (i + 1)) {
1138 fZec45[i] = (fZec43[i] / fZec44[i]);
1139 }
1140 /* Vectorizable loop 61 */
1141 /* Compute code */
1142 for (int i = 0; (i < vsize); i = (i + 1)) {
1143 fZec46[i] = std::sqrt(std::max<float>(0.0f, ((VAEReverb_faustpower2_f(fZec43[i]) / VAEReverb_faustpower2_f(fZec44[i])) + -1.0f)));
1144 }
1145 /* Vectorizable loop 62 */
1146 /* Compute code */
1147 for (int i = 0; (i < vsize); i = (i + 1)) {
1148 fZec51[i] = (fZec49[i] / fZec50[i]);
1149 }
1150 /* Vectorizable loop 63 */
1151 /* Compute code */
1152 for (int i = 0; (i < vsize); i = (i + 1)) {
1153 fZec60[i] = std::min<float>(std::max<float>(fRec0[i], 0.0f), 1.0f);
1154 }
1155 /* Recursive loop 64 */
1156 /* Pre code */
1157 for (int j8 = 0; (j8 < 4); j8 = (j8 + 1)) {
1158 fRec15_tmp[j8] = fRec15_perm[j8];
1159 }
1160 for (int j14 = 0; (j14 < 4); j14 = (j14 + 1)) {
1161 fRec12_tmp[j14] = fRec12_perm[j14];
1162 }
1163 fYec0_idx = ((fYec0_idx + fYec0_idx_save) & 65535);
1164 fYec2_idx = ((fYec2_idx + fYec2_idx_save) & 4095);
1165 for (int j20 = 0; (j20 < 4); j20 = (j20 + 1)) {
1166 fRec10_tmp[j20] = fRec10_perm[j20];
1167 }
1168 for (int j22 = 0; (j22 < 4); j22 = (j22 + 1)) {
1169 fRec23_tmp[j22] = fRec23_perm[j22];
1170 }
1171 for (int j24 = 0; (j24 < 4); j24 = (j24 + 1)) {
1172 fRec22_tmp[j24] = fRec22_perm[j24];
1173 }
1174 fYec3_idx = ((fYec3_idx + fYec3_idx_save) & 65535);
1175 fYec4_idx = ((fYec4_idx + fYec4_idx_save) & 8191);
1176 for (int j26 = 0; (j26 < 4); j26 = (j26 + 1)) {
1177 fRec20_tmp[j26] = fRec20_perm[j26];
1178 }
1179 for (int j28 = 0; (j28 < 4); j28 = (j28 + 1)) {
1180 fRec27_tmp[j28] = fRec27_perm[j28];
1181 }
1182 for (int j30 = 0; (j30 < 4); j30 = (j30 + 1)) {
1183 fRec26_tmp[j30] = fRec26_perm[j30];
1184 }
1185 fYec5_idx = ((fYec5_idx + fYec5_idx_save) & 65535);
1186 fYec6_idx = ((fYec6_idx + fYec6_idx_save) & 8191);
1187 for (int j32 = 0; (j32 < 4); j32 = (j32 + 1)) {
1188 fRec24_tmp[j32] = fRec24_perm[j32];
1189 }
1190 for (int j34 = 0; (j34 < 4); j34 = (j34 + 1)) {
1191 fRec31_tmp[j34] = fRec31_perm[j34];
1192 }
1193 for (int j36 = 0; (j36 < 4); j36 = (j36 + 1)) {
1194 fRec30_tmp[j36] = fRec30_perm[j36];
1195 }
1196 fYec7_idx = ((fYec7_idx + fYec7_idx_save) & 65535);
1197 fYec8_idx = ((fYec8_idx + fYec8_idx_save) & 8191);
1198 for (int j38 = 0; (j38 < 4); j38 = (j38 + 1)) {
1199 fRec28_tmp[j38] = fRec28_perm[j38];
1200 }
1201 for (int j40 = 0; (j40 < 4); j40 = (j40 + 1)) {
1202 fRec35_tmp[j40] = fRec35_perm[j40];
1203 }
1204 for (int j42 = 0; (j42 < 4); j42 = (j42 + 1)) {
1205 fRec34_tmp[j42] = fRec34_perm[j42];
1206 }
1207 fYec9_idx = ((fYec9_idx + fYec9_idx_save) & 32767);
1208 fYec11_idx = ((fYec11_idx + fYec11_idx_save) & 4095);
1209 for (int j44 = 0; (j44 < 4); j44 = (j44 + 1)) {
1210 fRec32_tmp[j44] = fRec32_perm[j44];
1211 }
1212 for (int j46 = 0; (j46 < 4); j46 = (j46 + 1)) {
1213 fRec39_tmp[j46] = fRec39_perm[j46];
1214 }
1215 for (int j48 = 0; (j48 < 4); j48 = (j48 + 1)) {
1216 fRec38_tmp[j48] = fRec38_perm[j48];
1217 }
1218 fYec12_idx = ((fYec12_idx + fYec12_idx_save) & 32767);
1219 fYec13_idx = ((fYec13_idx + fYec13_idx_save) & 8191);
1220 for (int j50 = 0; (j50 < 4); j50 = (j50 + 1)) {
1221 fRec36_tmp[j50] = fRec36_perm[j50];
1222 }
1223 for (int j52 = 0; (j52 < 4); j52 = (j52 + 1)) {
1224 fRec43_tmp[j52] = fRec43_perm[j52];
1225 }
1226 for (int j54 = 0; (j54 < 4); j54 = (j54 + 1)) {
1227 fRec42_tmp[j54] = fRec42_perm[j54];
1228 }
1229 fYec14_idx = ((fYec14_idx + fYec14_idx_save) & 65535);
1230 fYec15_idx = ((fYec15_idx + fYec15_idx_save) & 8191);
1231 for (int j56 = 0; (j56 < 4); j56 = (j56 + 1)) {
1232 fRec40_tmp[j56] = fRec40_perm[j56];
1233 }
1234 for (int j58 = 0; (j58 < 4); j58 = (j58 + 1)) {
1235 fRec47_tmp[j58] = fRec47_perm[j58];
1236 }
1237 for (int j60 = 0; (j60 < 4); j60 = (j60 + 1)) {
1238 fRec46_tmp[j60] = fRec46_perm[j60];
1239 }
1240 fYec16_idx = ((fYec16_idx + fYec16_idx_save) & 32767);
1241 fYec17_idx = ((fYec17_idx + fYec17_idx_save) & 4095);
1242 for (int j62 = 0; (j62 < 4); j62 = (j62 + 1)) {
1243 fRec44_tmp[j62] = fRec44_perm[j62];
1244 }
1245 for (int j64 = 0; (j64 < 4); j64 = (j64 + 1)) {
1246 fRec2_tmp[j64] = fRec2_perm[j64];
1247 }
1248 for (int j66 = 0; (j66 < 4); j66 = (j66 + 1)) {
1249 fRec3_tmp[j66] = fRec3_perm[j66];
1250 }
1251 for (int j68 = 0; (j68 < 4); j68 = (j68 + 1)) {
1252 fRec4_tmp[j68] = fRec4_perm[j68];
1253 }
1254 for (int j70 = 0; (j70 < 4); j70 = (j70 + 1)) {
1255 fRec5_tmp[j70] = fRec5_perm[j70];
1256 }
1257 for (int j72 = 0; (j72 < 4); j72 = (j72 + 1)) {
1258 fRec6_tmp[j72] = fRec6_perm[j72];
1259 }
1260 for (int j74 = 0; (j74 < 4); j74 = (j74 + 1)) {
1261 fRec7_tmp[j74] = fRec7_perm[j74];
1262 }
1263 for (int j76 = 0; (j76 < 4); j76 = (j76 + 1)) {
1264 fRec8_tmp[j76] = fRec8_perm[j76];
1265 }
1266 for (int j78 = 0; (j78 < 4); j78 = (j78 + 1)) {
1267 fRec9_tmp[j78] = fRec9_perm[j78];
1268 }
1269 /* Compute code */
1270 for (int i = 0; (i < vsize); i = (i + 1)) {
1271 fRec15[i] = (0.0f - (fConst2 * ((fConst3 * fRec15[(i - 1)]) - (fRec9[(i - 1)] + fRec9[(i - 2)]))));
1272 fRec12[i] = ((fRec12[(i - 1)] * (fZec5[i] - fZec6[i])) + ((fZec1[i] * (fRec9[(i - 1)] + (fRec15[i] * ((std::exp((fConst5 * (fConst9 / fZec7[i]))) / fZec1[i]) + -1.0f)))) * (fZec6[i] + (1.0f - fZec5[i]))));
1273 fYec0[((i + fYec0_idx) & 65535)] = ((0.353553385f * fRec12[i]) + 9.99999968e-21f);
1274 fYec2[((i + fYec2_idx) & 4095)] = (((0.600000024f * fRec10[(i - 1)]) + fYec0[(((i + fYec0_idx) - iConst16) & 65535)]) - fZec9[i]);
1275 fRec10[i] = fYec2[(((i + fYec2_idx) - iConst19) & 4095)];
1276 fRec11[i] = (0.0f - (0.600000024f * fYec2[((i + fYec2_idx) & 4095)]));
1277 fRec23[i] = (0.0f - (fConst2 * ((fConst3 * fRec23[(i - 1)]) - (fRec5[(i - 1)] + fRec5[(i - 2)]))));
1278 fRec22[i] = ((fRec22[(i - 1)] * (fZec14[i] - fZec15[i])) + ((fZec10[i] * (fRec5[(i - 1)] + (fRec23[i] * ((std::exp((fConst5 * (fConst23 / fZec7[i]))) / fZec10[i]) + -1.0f)))) * (fZec15[i] + (1.0f - fZec14[i]))));
1279 fYec3[((i + fYec3_idx) & 65535)] = ((0.353553385f * fRec22[i]) + 9.99999968e-21f);
1280 fYec4[((i + fYec4_idx) & 8191)] = (((0.600000024f * fRec20[(i - 1)]) + fYec3[(((i + fYec3_idx) - iConst30) & 65535)]) - fZec9[i]);
1281 fRec20[i] = fYec4[(((i + fYec4_idx) - iConst33) & 8191)];
1282 fRec21[i] = (0.0f - (0.600000024f * fYec4[((i + fYec4_idx) & 8191)]));
1283 fRec27[i] = (0.0f - (fConst2 * ((fConst3 * fRec27[(i - 1)]) - (fRec7[(i - 1)] + fRec7[(i - 2)]))));
1284 fRec26[i] = ((fRec26[(i - 1)] * (fZec20[i] - fZec21[i])) + ((fZec16[i] * (fRec7[(i - 1)] + (fRec27[i] * ((std::exp((fConst5 * (fConst37 / fZec7[i]))) / fZec16[i]) + -1.0f)))) * (fZec21[i] + (1.0f - fZec20[i]))));
1285 fYec5[((i + fYec5_idx) & 65535)] = ((0.353553385f * fRec26[i]) + 9.99999968e-21f);
1286 fYec6[((i + fYec6_idx) & 8191)] = (fYec5[(((i + fYec5_idx) - iConst44) & 65535)] + (fZec9[i] + (0.600000024f * fRec24[(i - 1)])));
1287 fRec24[i] = fYec6[(((i + fYec6_idx) - iConst47) & 8191)];
1288 fRec25[i] = (0.0f - (0.600000024f * fYec6[((i + fYec6_idx) & 8191)]));
1289 fRec31[i] = (0.0f - (fConst2 * ((fConst3 * fRec31[(i - 1)]) - (fRec3[(i - 1)] + fRec3[(i - 2)]))));
1290 fRec30[i] = ((fRec30[(i - 1)] * (fZec26[i] - fZec27[i])) + ((fZec22[i] * (fRec3[(i - 1)] + (fRec31[i] * ((std::exp((fConst5 * (fConst51 / fZec7[i]))) / fZec22[i]) + -1.0f)))) * (fZec27[i] + (1.0f - fZec26[i]))));
1291 fYec7[((i + fYec7_idx) & 65535)] = ((0.353553385f * fRec30[i]) + 9.99999968e-21f);
1292 fYec8[((i + fYec8_idx) & 8191)] = (fZec9[i] + ((0.600000024f * fRec28[(i - 1)]) + fYec7[(((i + fYec7_idx) - iConst58) & 65535)]));
1293 fRec28[i] = fYec8[(((i + fYec8_idx) - iConst61) & 8191)];
1294 fRec29[i] = (0.0f - (0.600000024f * fYec8[((i + fYec8_idx) & 8191)]));
1295 fRec35[i] = (0.0f - (fConst2 * ((fConst3 * fRec35[(i - 1)]) - (fRec8[(i - 1)] + fRec8[(i - 2)]))));
1296 fRec34[i] = ((fRec34[(i - 1)] * (fZec32[i] - fZec33[i])) + ((fZec28[i] * (fRec8[(i - 1)] + (fRec35[i] * ((std::exp((fConst5 * (fConst65 / fZec7[i]))) / fZec28[i]) + -1.0f)))) * (fZec33[i] + (1.0f - fZec32[i]))));
1297 fYec9[((i + fYec9_idx) & 32767)] = ((0.353553385f * fRec34[i]) + 9.99999968e-21f);
1298 fYec11[((i + fYec11_idx) & 4095)] = (fYec9[(((i + fYec9_idx) - iConst72) & 32767)] - (fZec34[i] + (0.600000024f * fRec32[(i - 1)])));
1299 fRec32[i] = fYec11[(((i + fYec11_idx) - iConst75) & 4095)];
1300 fRec33[i] = (0.600000024f * fYec11[((i + fYec11_idx) & 4095)]);
1301 fRec39[i] = (0.0f - (fConst2 * ((fConst3 * fRec39[(i - 1)]) - (fRec4[(i - 1)] + fRec4[(i - 2)]))));
1302 fRec38[i] = ((fRec38[(i - 1)] * (fZec39[i] - fZec40[i])) + ((fZec35[i] * (fRec4[(i - 1)] + (fRec39[i] * ((std::exp((fConst5 * (fConst79 / fZec7[i]))) / fZec35[i]) + -1.0f)))) * (fZec40[i] + (1.0f - fZec39[i]))));
1303 fYec12[((i + fYec12_idx) & 32767)] = ((0.353553385f * fRec38[i]) + 9.99999968e-21f);
1304 fYec13[((i + fYec13_idx) & 8191)] = (fYec12[(((i + fYec12_idx) - iConst86) & 32767)] - (fZec34[i] + (0.600000024f * fRec36[(i - 1)])));
1305 fRec36[i] = fYec13[(((i + fYec13_idx) - iConst89) & 8191)];
1306 fRec37[i] = (0.600000024f * fYec13[((i + fYec13_idx) & 8191)]);
1307 fRec43[i] = (0.0f - (fConst2 * ((fConst3 * fRec43[(i - 1)]) - (fRec6[(i - 1)] + fRec6[(i - 2)]))));
1308 fRec42[i] = ((fRec42[(i - 1)] * (fZec45[i] - fZec46[i])) + ((fZec41[i] * (fRec6[(i - 1)] + (fRec43[i] * ((std::exp((fConst5 * (fConst93 / fZec7[i]))) / fZec41[i]) + -1.0f)))) * (fZec46[i] + (1.0f - fZec45[i]))));
1309 fYec14[((i + fYec14_idx) & 65535)] = ((0.353553385f * fRec42[i]) + 9.99999968e-21f);
1310 fYec15[((i + fYec15_idx) & 8191)] = ((fZec34[i] + fYec14[(((i + fYec14_idx) - iConst100) & 65535)]) - (0.600000024f * fRec40[(i - 1)]));
1311 fRec40[i] = fYec15[(((i + fYec15_idx) - iConst103) & 8191)];
1312 fRec41[i] = (0.600000024f * fYec15[((i + fYec15_idx) & 8191)]);
1313 fRec47[i] = (0.0f - (fConst2 * ((fConst3 * fRec47[(i - 1)]) - (fRec2[(i - 1)] + fRec2[(i - 2)]))));
1314 fRec46[i] = ((fRec46[(i - 1)] * (fZec51[i] - fZec52[i])) + ((fZec47[i] * (fRec2[(i - 1)] + (fRec47[i] * ((std::exp((fConst5 * (fConst107 / fZec7[i]))) / fZec47[i]) + -1.0f)))) * (fZec52[i] + (1.0f - fZec51[i]))));
1315 fYec16[((i + fYec16_idx) & 32767)] = ((0.353553385f * fRec46[i]) + 9.99999968e-21f);
1316 fYec17[((i + fYec17_idx) & 4095)] = ((fYec16[(((i + fYec16_idx) - iConst114) & 32767)] + fZec34[i]) - (0.600000024f * fRec44[(i - 1)]));
1317 fRec44[i] = fYec17[(((i + fYec17_idx) - iConst117) & 4095)];
1318 fRec45[i] = (0.600000024f * fYec17[((i + fYec17_idx) & 4095)]);
1319 fZec53[i] = (fRec45[i] + fRec41[i]);
1320 fZec54[i] = (fRec33[i] + (fRec37[i] + fZec53[i]));
1321 fRec2[i] = (fRec10[(i - 1)] + (fRec20[(i - 1)] + (fRec24[(i - 1)] + (fRec28[(i - 1)] + (fRec32[(i - 1)] + (fRec36[(i - 1)] + (fRec40[(i - 1)] + (fRec44[(i - 1)] + (fRec11[i] + (fRec21[i] + (fRec25[i] + (fRec29[i] + fZec54[i]))))))))))));
1322 fRec3[i] = ((fRec32[(i - 1)] + (fRec36[(i - 1)] + (fRec40[(i - 1)] + (fRec44[(i - 1)] + fZec54[i])))) - (fRec10[(i - 1)] + (fRec20[(i - 1)] + (fRec24[(i - 1)] + (fRec28[(i - 1)] + (fRec11[i] + (fRec21[i] + (fRec29[i] + fRec25[i]))))))));
1323 fZec55[i] = (fRec37[i] + fRec33[i]);
1324 fRec4[i] = ((fRec24[(i - 1)] + (fRec28[(i - 1)] + (fRec40[(i - 1)] + (fRec44[(i - 1)] + (fRec25[i] + (fRec29[i] + fZec53[i])))))) - (fRec10[(i - 1)] + (fRec20[(i - 1)] + (fRec32[(i - 1)] + (fRec36[(i - 1)] + (fRec11[i] + (fRec21[i] + fZec55[i])))))));
1325 fRec5[i] = ((fRec10[(i - 1)] + (fRec20[(i - 1)] + (fRec40[(i - 1)] + (fRec44[(i - 1)] + (fRec11[i] + (fRec21[i] + fZec53[i])))))) - (fRec24[(i - 1)] + (fRec28[(i - 1)] + (fRec32[(i - 1)] + (fRec36[(i - 1)] + (fRec25[i] + (fRec29[i] + fZec55[i])))))));
1326 fZec56[i] = (fRec45[i] + fRec37[i]);
1327 fZec57[i] = (fRec41[i] + fRec33[i]);
1328 fRec6[i] = ((fRec20[(i - 1)] + (fRec28[(i - 1)] + (fRec36[(i - 1)] + (fRec44[(i - 1)] + (fRec21[i] + (fRec29[i] + fZec56[i])))))) - (fRec10[(i - 1)] + (fRec24[(i - 1)] + (fRec32[(i - 1)] + (fRec40[(i - 1)] + (fRec11[i] + (fRec25[i] + fZec57[i])))))));
1329 fRec7[i] = ((fRec10[(i - 1)] + (fRec24[(i - 1)] + (fRec36[(i - 1)] + (fRec44[(i - 1)] + (fRec11[i] + (fRec25[i] + fZec56[i])))))) - (fRec20[(i - 1)] + (fRec28[(i - 1)] + (fRec32[(i - 1)] + (fRec40[(i - 1)] + (fRec21[i] + (fRec29[i] + fZec57[i])))))));
1330 fZec58[i] = (fRec45[i] + fRec33[i]);
1331 fZec59[i] = (fRec41[i] + fRec37[i]);
1332 fRec8[i] = ((fRec10[(i - 1)] + (fRec28[(i - 1)] + (fRec32[(i - 1)] + (fRec44[(i - 1)] + (fRec11[i] + (fRec29[i] + fZec58[i])))))) - (fRec20[(i - 1)] + (fRec24[(i - 1)] + (fRec36[(i - 1)] + (fRec40[(i - 1)] + (fRec21[i] + (fRec25[i] + fZec59[i])))))));
1333 fRec9[i] = ((fRec20[(i - 1)] + (fRec24[(i - 1)] + (fRec32[(i - 1)] + (fRec44[(i - 1)] + (fRec21[i] + (fRec25[i] + fZec58[i])))))) - (fRec10[(i - 1)] + (fRec28[(i - 1)] + (fRec36[(i - 1)] + (fRec40[(i - 1)] + (fRec11[i] + (fRec29[i] + fZec59[i])))))));
1334 }
1335 /* Post code */
1336 fYec16_idx_save = vsize;
1337 fYec17_idx_save = vsize;
1338 for (int j59 = 0; (j59 < 4); j59 = (j59 + 1)) {
1339 fRec47_perm[j59] = fRec47_tmp[(vsize + j59)];
1340 }
1341 for (int j61 = 0; (j61 < 4); j61 = (j61 + 1)) {
1342 fRec46_perm[j61] = fRec46_tmp[(vsize + j61)];
1343 }
1344 for (int j63 = 0; (j63 < 4); j63 = (j63 + 1)) {
1345 fRec44_perm[j63] = fRec44_tmp[(vsize + j63)];
1346 }
1347 fYec14_idx_save = vsize;
1348 fYec15_idx_save = vsize;
1349 for (int j53 = 0; (j53 < 4); j53 = (j53 + 1)) {
1350 fRec43_perm[j53] = fRec43_tmp[(vsize + j53)];
1351 }
1352 for (int j55 = 0; (j55 < 4); j55 = (j55 + 1)) {
1353 fRec42_perm[j55] = fRec42_tmp[(vsize + j55)];
1354 }
1355 for (int j57 = 0; (j57 < 4); j57 = (j57 + 1)) {
1356 fRec40_perm[j57] = fRec40_tmp[(vsize + j57)];
1357 }
1358 fYec12_idx_save = vsize;
1359 fYec13_idx_save = vsize;
1360 for (int j47 = 0; (j47 < 4); j47 = (j47 + 1)) {
1361 fRec39_perm[j47] = fRec39_tmp[(vsize + j47)];
1362 }
1363 for (int j49 = 0; (j49 < 4); j49 = (j49 + 1)) {
1364 fRec38_perm[j49] = fRec38_tmp[(vsize + j49)];
1365 }
1366 for (int j51 = 0; (j51 < 4); j51 = (j51 + 1)) {
1367 fRec36_perm[j51] = fRec36_tmp[(vsize + j51)];
1368 }
1369 fYec9_idx_save = vsize;
1370 fYec11_idx_save = vsize;
1371 for (int j41 = 0; (j41 < 4); j41 = (j41 + 1)) {
1372 fRec35_perm[j41] = fRec35_tmp[(vsize + j41)];
1373 }
1374 for (int j43 = 0; (j43 < 4); j43 = (j43 + 1)) {
1375 fRec34_perm[j43] = fRec34_tmp[(vsize + j43)];
1376 }
1377 for (int j45 = 0; (j45 < 4); j45 = (j45 + 1)) {
1378 fRec32_perm[j45] = fRec32_tmp[(vsize + j45)];
1379 }
1380 fYec7_idx_save = vsize;
1381 fYec8_idx_save = vsize;
1382 for (int j35 = 0; (j35 < 4); j35 = (j35 + 1)) {
1383 fRec31_perm[j35] = fRec31_tmp[(vsize + j35)];
1384 }
1385 for (int j37 = 0; (j37 < 4); j37 = (j37 + 1)) {
1386 fRec30_perm[j37] = fRec30_tmp[(vsize + j37)];
1387 }
1388 for (int j39 = 0; (j39 < 4); j39 = (j39 + 1)) {
1389 fRec28_perm[j39] = fRec28_tmp[(vsize + j39)];
1390 }
1391 fYec5_idx_save = vsize;
1392 fYec6_idx_save = vsize;
1393 for (int j29 = 0; (j29 < 4); j29 = (j29 + 1)) {
1394 fRec27_perm[j29] = fRec27_tmp[(vsize + j29)];
1395 }
1396 for (int j31 = 0; (j31 < 4); j31 = (j31 + 1)) {
1397 fRec26_perm[j31] = fRec26_tmp[(vsize + j31)];
1398 }
1399 for (int j33 = 0; (j33 < 4); j33 = (j33 + 1)) {
1400 fRec24_perm[j33] = fRec24_tmp[(vsize + j33)];
1401 }
1402 fYec3_idx_save = vsize;
1403 fYec4_idx_save = vsize;
1404 for (int j23 = 0; (j23 < 4); j23 = (j23 + 1)) {
1405 fRec23_perm[j23] = fRec23_tmp[(vsize + j23)];
1406 }
1407 for (int j25 = 0; (j25 < 4); j25 = (j25 + 1)) {
1408 fRec22_perm[j25] = fRec22_tmp[(vsize + j25)];
1409 }
1410 for (int j27 = 0; (j27 < 4); j27 = (j27 + 1)) {
1411 fRec20_perm[j27] = fRec20_tmp[(vsize + j27)];
1412 }
1413 fYec0_idx_save = vsize;
1414 fYec2_idx_save = vsize;
1415 for (int j9 = 0; (j9 < 4); j9 = (j9 + 1)) {
1416 fRec15_perm[j9] = fRec15_tmp[(vsize + j9)];
1417 }
1418 for (int j15 = 0; (j15 < 4); j15 = (j15 + 1)) {
1419 fRec12_perm[j15] = fRec12_tmp[(vsize + j15)];
1420 }
1421 for (int j21 = 0; (j21 < 4); j21 = (j21 + 1)) {
1422 fRec10_perm[j21] = fRec10_tmp[(vsize + j21)];
1423 }
1424 for (int j65 = 0; (j65 < 4); j65 = (j65 + 1)) {
1425 fRec2_perm[j65] = fRec2_tmp[(vsize + j65)];
1426 }
1427 for (int j67 = 0; (j67 < 4); j67 = (j67 + 1)) {
1428 fRec3_perm[j67] = fRec3_tmp[(vsize + j67)];
1429 }
1430 for (int j69 = 0; (j69 < 4); j69 = (j69 + 1)) {
1431 fRec4_perm[j69] = fRec4_tmp[(vsize + j69)];
1432 }
1433 for (int j71 = 0; (j71 < 4); j71 = (j71 + 1)) {
1434 fRec5_perm[j71] = fRec5_tmp[(vsize + j71)];
1435 }
1436 for (int j73 = 0; (j73 < 4); j73 = (j73 + 1)) {
1437 fRec6_perm[j73] = fRec6_tmp[(vsize + j73)];
1438 }
1439 for (int j75 = 0; (j75 < 4); j75 = (j75 + 1)) {
1440 fRec7_perm[j75] = fRec7_tmp[(vsize + j75)];
1441 }
1442 for (int j77 = 0; (j77 < 4); j77 = (j77 + 1)) {
1443 fRec8_perm[j77] = fRec8_tmp[(vsize + j77)];
1444 }
1445 for (int j79 = 0; (j79 < 4); j79 = (j79 + 1)) {
1446 fRec9_perm[j79] = fRec9_tmp[(vsize + j79)];
1447 }
1448 /* Vectorizable loop 65 */
1449 /* Compute code */
1450 for (int i = 0; (i < vsize); i = (i + 1)) {
1451 fZec61[i] = (1.0f - fZec60[i]);
1452 }
1453 /* Vectorizable loop 66 */
1454 /* Compute code */
1455 for (int i = 0; (i < vsize); i = (i + 1)) {
1456 output0[i] = (FAUSTFLOAT(((float(input0[i]) * fZec61[i]) + (0.370000005f * ((fRec3[i] + fRec4[i]) * fZec60[i])))) + output0[i]);
1457 }
1458 /* Vectorizable loop 67 */
1459 /* Compute code */
1460 for (int i = 0; (i < vsize); i = (i + 1)) {
1461 output1[i] = (FAUSTFLOAT(((float(input1[i]) * fZec61[i]) + (0.370000005f * (fZec60[i] * (fRec3[i] - fRec4[i]))))) + output1[i]);
1462 }
1463 }
1464 /* Remaining frames */
1465 if ((vindex < count)) {
1466 FAUSTFLOAT* input0 = &input0_ptr[vindex];
1467 FAUSTFLOAT* input1 = &input1_ptr[vindex];
1468 FAUSTFLOAT* output0 = &output0_ptr[vindex];
1469 FAUSTFLOAT* output1 = &output1_ptr[vindex];
1470 int vsize = (count - vindex);
1471 /* Recursive loop 0 */
1472 /* Pre code */
1473 for (int j4 = 0; (j4 < 4); j4 = (j4 + 1)) {
1474 fRec14_tmp[j4] = fRec14_perm[j4];
1475 }
1476 /* Compute code */
1477 for (int i = 0; (i < vsize); i = (i + 1)) {
1478 fRec14[i] = (fSlow1 + (0.999000013f * fRec14[(i - 1)]));
1479 }
1480 /* Post code */
1481 for (int j5 = 0; (j5 < 4); j5 = (j5 + 1)) {
1482 fRec14_perm[j5] = fRec14_tmp[(vsize + j5)];
1483 }
1484 /* Recursive loop 1 */
1485 /* Pre code */
1486 for (int j6 = 0; (j6 < 4); j6 = (j6 + 1)) {
1487 fRec13_tmp[j6] = fRec13_perm[j6];
1488 }
1489 /* Compute code */
1490 for (int i = 0; (i < vsize); i = (i + 1)) {
1491 fRec13[i] = ((0.999000013f * fRec13[(i - 1)]) + (0.00100000005f * fRec14[i]));
1492 }
1493 /* Post code */
1494 for (int j7 = 0; (j7 < 4); j7 = (j7 + 1)) {
1495 fRec13_perm[j7] = fRec13_tmp[(vsize + j7)];
1496 }
1497 /* Vectorizable loop 2 */
1498 /* Compute code */
1499 for (int i = 0; (i < vsize); i = (i + 1)) {
1500 fZec0[i] = std::min<float>(std::max<float>(fRec13[i], 0.0199999996f), 0.970000029f);
1501 }
1502 /* Vectorizable loop 3 */
1503 /* Compute code */
1504 for (int i = 0; (i < vsize); i = (i + 1)) {
1505 fZec1[i] = std::exp((fConst5 * (fConst9 / fZec0[i])));
1506 }
1507 /* Recursive loop 4 */
1508 /* Pre code */
1509 for (int j16 = 0; (j16 < 4); j16 = (j16 + 1)) {
1510 fRec19_tmp[j16] = fRec19_perm[j16];
1511 }
1512 /* Compute code */
1513 for (int i = 0; (i < vsize); i = (i + 1)) {
1514 fRec19[i] = (fSlow3 + (0.999000013f * fRec19[(i - 1)]));
1515 }
1516 /* Post code */
1517 for (int j17 = 0; (j17 < 4); j17 = (j17 + 1)) {
1518 fRec19_perm[j17] = fRec19_tmp[(vsize + j17)];
1519 }
1520 /* Vectorizable loop 5 */
1521 /* Compute code */
1522 for (int i = 0; (i < vsize); i = (i + 1)) {
1523 fZec10[i] = std::exp((fConst5 * (fConst23 / fZec0[i])));
1524 }
1525 /* Vectorizable loop 6 */
1526 /* Compute code */
1527 for (int i = 0; (i < vsize); i = (i + 1)) {
1528 fZec16[i] = std::exp((fConst5 * (fConst37 / fZec0[i])));
1529 }
1530 /* Vectorizable loop 7 */
1531 /* Compute code */
1532 for (int i = 0; (i < vsize); i = (i + 1)) {
1533 fZec22[i] = std::exp((fConst5 * (fConst51 / fZec0[i])));
1534 }
1535 /* Vectorizable loop 8 */
1536 /* Compute code */
1537 for (int i = 0; (i < vsize); i = (i + 1)) {
1538 fZec28[i] = std::exp((fConst5 * (fConst65 / fZec0[i])));
1539 }
1540 /* Vectorizable loop 9 */
1541 /* Compute code */
1542 for (int i = 0; (i < vsize); i = (i + 1)) {
1543 fZec35[i] = std::exp((fConst5 * (fConst79 / fZec0[i])));
1544 }
1545 /* Vectorizable loop 10 */
1546 /* Compute code */
1547 for (int i = 0; (i < vsize); i = (i + 1)) {
1548 fZec41[i] = std::exp((fConst5 * (fConst93 / fZec0[i])));
1549 }
1550 /* Vectorizable loop 11 */
1551 /* Compute code */
1552 for (int i = 0; (i < vsize); i = (i + 1)) {
1553 fZec47[i] = std::exp((fConst5 * (fConst107 / fZec0[i])));
1554 }
1555 /* Recursive loop 12 */
1556 /* Pre code */
1557 for (int j0 = 0; (j0 < 4); j0 = (j0 + 1)) {
1558 fRec1_tmp[j0] = fRec1_perm[j0];
1559 }
1560 /* Compute code */
1561 for (int i = 0; (i < vsize); i = (i + 1)) {
1562 fRec1[i] = (fSlow0 + (0.999000013f * fRec1[(i - 1)]));
1563 }
1564 /* Post code */
1565 for (int j1 = 0; (j1 < 4); j1 = (j1 + 1)) {
1566 fRec1_perm[j1] = fRec1_tmp[(vsize + j1)];
1567 }
1568 /* Recursive loop 13 */
1569 /* Pre code */
1570 for (int j10 = 0; (j10 < 4); j10 = (j10 + 1)) {
1571 fRec17_tmp[j10] = fRec17_perm[j10];
1572 }
1573 /* Compute code */
1574 for (int i = 0; (i < vsize); i = (i + 1)) {
1575 fRec17[i] = (fSlow2 + (0.999000013f * fRec17[(i - 1)]));
1576 }
1577 /* Post code */
1578 for (int j11 = 0; (j11 < 4); j11 = (j11 + 1)) {
1579 fRec17_perm[j11] = fRec17_tmp[(vsize + j11)];
1580 }
1581 /* Vectorizable loop 14 */
1582 /* Compute code */
1583 for (int i = 0; (i < vsize); i = (i + 1)) {
1584 fZec2[i] = VAEReverb_faustpower2_f(fZec1[i]);
1585 }
1586 /* Recursive loop 15 */
1587 /* Pre code */
1588 for (int j18 = 0; (j18 < 4); j18 = (j18 + 1)) {
1589 fRec18_tmp[j18] = fRec18_perm[j18];
1590 }
1591 /* Compute code */
1592 for (int i = 0; (i < vsize); i = (i + 1)) {
1593 fRec18[i] = ((0.999000013f * fRec18[(i - 1)]) + (0.00100000005f * fRec19[i]));
1594 }
1595 /* Post code */
1596 for (int j19 = 0; (j19 < 4); j19 = (j19 + 1)) {
1597 fRec18_perm[j19] = fRec18_tmp[(vsize + j19)];
1598 }
1599 /* Vectorizable loop 16 */
1600 /* Compute code */
1601 for (int i = 0; (i < vsize); i = (i + 1)) {
1602 fZec11[i] = VAEReverb_faustpower2_f(fZec10[i]);
1603 }
1604 /* Vectorizable loop 17 */
1605 /* Compute code */
1606 for (int i = 0; (i < vsize); i = (i + 1)) {
1607 fZec17[i] = VAEReverb_faustpower2_f(fZec16[i]);
1608 }
1609 /* Vectorizable loop 18 */
1610 /* Compute code */
1611 for (int i = 0; (i < vsize); i = (i + 1)) {
1612 fZec23[i] = VAEReverb_faustpower2_f(fZec22[i]);
1613 }
1614 /* Vectorizable loop 19 */
1615 /* Compute code */
1616 for (int i = 0; (i < vsize); i = (i + 1)) {
1617 fZec29[i] = VAEReverb_faustpower2_f(fZec28[i]);
1618 }
1619 /* Vectorizable loop 20 */
1620 /* Compute code */
1621 for (int i = 0; (i < vsize); i = (i + 1)) {
1622 fZec36[i] = VAEReverb_faustpower2_f(fZec35[i]);
1623 }
1624 /* Vectorizable loop 21 */
1625 /* Compute code */
1626 for (int i = 0; (i < vsize); i = (i + 1)) {
1627 fZec42[i] = VAEReverb_faustpower2_f(fZec41[i]);
1628 }
1629 /* Vectorizable loop 22 */
1630 /* Compute code */
1631 for (int i = 0; (i < vsize); i = (i + 1)) {
1632 fZec48[i] = VAEReverb_faustpower2_f(fZec47[i]);
1633 }
1634 /* Recursive loop 23 */
1635 /* Pre code */
1636 for (int j2 = 0; (j2 < 4); j2 = (j2 + 1)) {
1637 fRec0_tmp[j2] = fRec0_perm[j2];
1638 }
1639 /* Compute code */
1640 for (int i = 0; (i < vsize); i = (i + 1)) {
1641 fRec0[i] = ((0.999000013f * fRec0[(i - 1)]) + (0.00100000005f * fRec1[i]));
1642 }
1643 /* Post code */
1644 for (int j3 = 0; (j3 < 4); j3 = (j3 + 1)) {
1645 fRec0_perm[j3] = fRec0_tmp[(vsize + j3)];
1646 }
1647 /* Vectorizable loop 24 */
1648 /* Compute code */
1649 for (int i = 0; (i < vsize); i = (i + 1)) {
1650 fZec4[i] = (1.0f - fZec2[i]);
1651 }
1652 /* Vectorizable loop 25 */
1653 /* Compute code */
1654 for (int i = 0; (i < vsize); i = (i + 1)) {
1655 fZec3[i] = (1.0f - (fConst4 * fZec2[i]));
1656 }
1657 /* Recursive loop 26 */
1658 /* Pre code */
1659 for (int j12 = 0; (j12 < 4); j12 = (j12 + 1)) {
1660 fRec16_tmp[j12] = fRec16_perm[j12];
1661 }
1662 /* Compute code */
1663 for (int i = 0; (i < vsize); i = (i + 1)) {
1664 fRec16[i] = ((0.999000013f * fRec16[(i - 1)]) + (0.00100000005f * fRec17[i]));
1665 }
1666 /* Post code */
1667 for (int j13 = 0; (j13 < 4); j13 = (j13 + 1)) {
1668 fRec16_perm[j13] = fRec16_tmp[(vsize + j13)];
1669 }
1670 /* Vectorizable loop 27 */
1671 /* Pre code */
1672 fYec1_idx = ((fYec1_idx + fYec1_idx_save) & 16383);
1673 /* Compute code */
1674 for (int i = 0; (i < vsize); i = (i + 1)) {
1675 fYec1[((i + fYec1_idx) & 16383)] = float(input1[i]);
1676 }
1677 /* Post code */
1678 fYec1_idx_save = vsize;
1679 /* Vectorizable loop 28 */
1680 /* Compute code */
1681 for (int i = 0; (i < vsize); i = (i + 1)) {
1682 iZec8[i] = int(std::min<float>(8192.0f, std::max<float>(0.0f, (fConst0 * std::min<float>(std::max<float>(fRec18[i], 0.00999999978f), 0.970000029f)))));
1683 }
1684 /* Vectorizable loop 29 */
1685 /* Compute code */
1686 for (int i = 0; (i < vsize); i = (i + 1)) {
1687 fZec12[i] = (1.0f - (fConst4 * fZec11[i]));
1688 }
1689 /* Vectorizable loop 30 */
1690 /* Compute code */
1691 for (int i = 0; (i < vsize); i = (i + 1)) {
1692 fZec13[i] = (1.0f - fZec11[i]);
1693 }
1694 /* Vectorizable loop 31 */
1695 /* Compute code */
1696 for (int i = 0; (i < vsize); i = (i + 1)) {
1697 fZec18[i] = (1.0f - (fConst4 * fZec17[i]));
1698 }
1699 /* Vectorizable loop 32 */
1700 /* Compute code */
1701 for (int i = 0; (i < vsize); i = (i + 1)) {
1702 fZec19[i] = (1.0f - fZec17[i]);
1703 }
1704 /* Vectorizable loop 33 */
1705 /* Compute code */
1706 for (int i = 0; (i < vsize); i = (i + 1)) {
1707 fZec24[i] = (1.0f - (fConst4 * fZec23[i]));
1708 }
1709 /* Vectorizable loop 34 */
1710 /* Compute code */
1711 for (int i = 0; (i < vsize); i = (i + 1)) {
1712 fZec25[i] = (1.0f - fZec23[i]);
1713 }
1714 /* Vectorizable loop 35 */
1715 /* Pre code */
1716 fYec10_idx = ((fYec10_idx + fYec10_idx_save) & 16383);
1717 /* Compute code */
1718 for (int i = 0; (i < vsize); i = (i + 1)) {
1719 fYec10[((i + fYec10_idx) & 16383)] = float(input0[i]);
1720 }
1721 /* Post code */
1722 fYec10_idx_save = vsize;
1723 /* Vectorizable loop 36 */
1724 /* Compute code */
1725 for (int i = 0; (i < vsize); i = (i + 1)) {
1726 fZec30[i] = (1.0f - (fConst4 * fZec29[i]));
1727 }
1728 /* Vectorizable loop 37 */
1729 /* Compute code */
1730 for (int i = 0; (i < vsize); i = (i + 1)) {
1731 fZec31[i] = (1.0f - fZec29[i]);
1732 }
1733 /* Vectorizable loop 38 */
1734 /* Compute code */
1735 for (int i = 0; (i < vsize); i = (i + 1)) {
1736 fZec37[i] = (1.0f - (fConst4 * fZec36[i]));
1737 }
1738 /* Vectorizable loop 39 */
1739 /* Compute code */
1740 for (int i = 0; (i < vsize); i = (i + 1)) {
1741 fZec38[i] = (1.0f - fZec36[i]);
1742 }
1743 /* Vectorizable loop 40 */
1744 /* Compute code */
1745 for (int i = 0; (i < vsize); i = (i + 1)) {
1746 fZec43[i] = (1.0f - (fConst4 * fZec42[i]));
1747 }
1748 /* Vectorizable loop 41 */
1749 /* Compute code */
1750 for (int i = 0; (i < vsize); i = (i + 1)) {
1751 fZec44[i] = (1.0f - fZec42[i]);
1752 }
1753 /* Vectorizable loop 42 */
1754 /* Compute code */
1755 for (int i = 0; (i < vsize); i = (i + 1)) {
1756 fZec49[i] = (1.0f - (fConst4 * fZec48[i]));
1757 }
1758 /* Vectorizable loop 43 */
1759 /* Compute code */
1760 for (int i = 0; (i < vsize); i = (i + 1)) {
1761 fZec50[i] = (1.0f - fZec48[i]);
1762 }
1763 /* Vectorizable loop 44 */
1764 /* Compute code */
1765 for (int i = 0; (i < vsize); i = (i + 1)) {
1766 fZec6[i] = std::sqrt(std::max<float>(0.0f, ((VAEReverb_faustpower2_f(fZec3[i]) / VAEReverb_faustpower2_f(fZec4[i])) + -1.0f)));
1767 }
1768 /* Vectorizable loop 45 */
1769 /* Compute code */
1770 for (int i = 0; (i < vsize); i = (i + 1)) {
1771 fZec7[i] = std::min<float>(std::max<float>(fRec16[i], 0.0199999996f), 0.970000029f);
1772 }
1773 /* Vectorizable loop 46 */
1774 /* Compute code */
1775 for (int i = 0; (i < vsize); i = (i + 1)) {
1776 fZec5[i] = (fZec3[i] / fZec4[i]);
1777 }
1778 /* Vectorizable loop 47 */
1779 /* Compute code */
1780 for (int i = 0; (i < vsize); i = (i + 1)) {
1781 fZec9[i] = (0.300000012f * fYec1[(((i + fYec1_idx) - iZec8[i]) & 16383)]);
1782 }
1783 /* Vectorizable loop 48 */
1784 /* Compute code */
1785 for (int i = 0; (i < vsize); i = (i + 1)) {
1786 fZec14[i] = (fZec12[i] / fZec13[i]);
1787 }
1788 /* Vectorizable loop 49 */
1789 /* Compute code */
1790 for (int i = 0; (i < vsize); i = (i + 1)) {
1791 fZec15[i] = std::sqrt(std::max<float>(0.0f, ((VAEReverb_faustpower2_f(fZec12[i]) / VAEReverb_faustpower2_f(fZec13[i])) + -1.0f)));
1792 }
1793 /* Vectorizable loop 50 */
1794 /* Compute code */
1795 for (int i = 0; (i < vsize); i = (i + 1)) {
1796 fZec20[i] = (fZec18[i] / fZec19[i]);
1797 }
1798 /* Vectorizable loop 51 */
1799 /* Compute code */
1800 for (int i = 0; (i < vsize); i = (i + 1)) {
1801 fZec21[i] = std::sqrt(std::max<float>(0.0f, ((VAEReverb_faustpower2_f(fZec18[i]) / VAEReverb_faustpower2_f(fZec19[i])) + -1.0f)));
1802 }
1803 /* Vectorizable loop 52 */
1804 /* Compute code */
1805 for (int i = 0; (i < vsize); i = (i + 1)) {
1806 fZec26[i] = (fZec24[i] / fZec25[i]);
1807 }
1808 /* Vectorizable loop 53 */
1809 /* Compute code */
1810 for (int i = 0; (i < vsize); i = (i + 1)) {
1811 fZec27[i] = std::sqrt(std::max<float>(0.0f, ((VAEReverb_faustpower2_f(fZec24[i]) / VAEReverb_faustpower2_f(fZec25[i])) + -1.0f)));
1812 }
1813 /* Vectorizable loop 54 */
1814 /* Compute code */
1815 for (int i = 0; (i < vsize); i = (i + 1)) {
1816 fZec34[i] = (0.300000012f * fYec10[(((i + fYec10_idx) - iZec8[i]) & 16383)]);
1817 }
1818 /* Vectorizable loop 55 */
1819 /* Compute code */
1820 for (int i = 0; (i < vsize); i = (i + 1)) {
1821 fZec32[i] = (fZec30[i] / fZec31[i]);
1822 }
1823 /* Vectorizable loop 56 */
1824 /* Compute code */
1825 for (int i = 0; (i < vsize); i = (i + 1)) {
1826 fZec33[i] = std::sqrt(std::max<float>(0.0f, ((VAEReverb_faustpower2_f(fZec30[i]) / VAEReverb_faustpower2_f(fZec31[i])) + -1.0f)));
1827 }
1828 /* Vectorizable loop 57 */
1829 /* Compute code */
1830 for (int i = 0; (i < vsize); i = (i + 1)) {
1831 fZec52[i] = std::sqrt(std::max<float>(0.0f, ((VAEReverb_faustpower2_f(fZec49[i]) / VAEReverb_faustpower2_f(fZec50[i])) + -1.0f)));
1832 }
1833 /* Vectorizable loop 58 */
1834 /* Compute code */
1835 for (int i = 0; (i < vsize); i = (i + 1)) {
1836 fZec39[i] = (fZec37[i] / fZec38[i]);
1837 }
1838 /* Vectorizable loop 59 */
1839 /* Compute code */
1840 for (int i = 0; (i < vsize); i = (i + 1)) {
1841 fZec40[i] = std::sqrt(std::max<float>(0.0f, ((VAEReverb_faustpower2_f(fZec37[i]) / VAEReverb_faustpower2_f(fZec38[i])) + -1.0f)));
1842 }
1843 /* Vectorizable loop 60 */
1844 /* Compute code */
1845 for (int i = 0; (i < vsize); i = (i + 1)) {
1846 fZec45[i] = (fZec43[i] / fZec44[i]);
1847 }
1848 /* Vectorizable loop 61 */
1849 /* Compute code */
1850 for (int i = 0; (i < vsize); i = (i + 1)) {
1851 fZec46[i] = std::sqrt(std::max<float>(0.0f, ((VAEReverb_faustpower2_f(fZec43[i]) / VAEReverb_faustpower2_f(fZec44[i])) + -1.0f)));
1852 }
1853 /* Vectorizable loop 62 */
1854 /* Compute code */
1855 for (int i = 0; (i < vsize); i = (i + 1)) {
1856 fZec51[i] = (fZec49[i] / fZec50[i]);
1857 }
1858 /* Vectorizable loop 63 */
1859 /* Compute code */
1860 for (int i = 0; (i < vsize); i = (i + 1)) {
1861 fZec60[i] = std::min<float>(std::max<float>(fRec0[i], 0.0f), 1.0f);
1862 }
1863 /* Recursive loop 64 */
1864 /* Pre code */
1865 for (int j8 = 0; (j8 < 4); j8 = (j8 + 1)) {
1866 fRec15_tmp[j8] = fRec15_perm[j8];
1867 }
1868 for (int j14 = 0; (j14 < 4); j14 = (j14 + 1)) {
1869 fRec12_tmp[j14] = fRec12_perm[j14];
1870 }
1871 fYec0_idx = ((fYec0_idx + fYec0_idx_save) & 65535);
1872 fYec2_idx = ((fYec2_idx + fYec2_idx_save) & 4095);
1873 for (int j20 = 0; (j20 < 4); j20 = (j20 + 1)) {
1874 fRec10_tmp[j20] = fRec10_perm[j20];
1875 }
1876 for (int j22 = 0; (j22 < 4); j22 = (j22 + 1)) {
1877 fRec23_tmp[j22] = fRec23_perm[j22];
1878 }
1879 for (int j24 = 0; (j24 < 4); j24 = (j24 + 1)) {
1880 fRec22_tmp[j24] = fRec22_perm[j24];
1881 }
1882 fYec3_idx = ((fYec3_idx + fYec3_idx_save) & 65535);
1883 fYec4_idx = ((fYec4_idx + fYec4_idx_save) & 8191);
1884 for (int j26 = 0; (j26 < 4); j26 = (j26 + 1)) {
1885 fRec20_tmp[j26] = fRec20_perm[j26];
1886 }
1887 for (int j28 = 0; (j28 < 4); j28 = (j28 + 1)) {
1888 fRec27_tmp[j28] = fRec27_perm[j28];
1889 }
1890 for (int j30 = 0; (j30 < 4); j30 = (j30 + 1)) {
1891 fRec26_tmp[j30] = fRec26_perm[j30];
1892 }
1893 fYec5_idx = ((fYec5_idx + fYec5_idx_save) & 65535);
1894 fYec6_idx = ((fYec6_idx + fYec6_idx_save) & 8191);
1895 for (int j32 = 0; (j32 < 4); j32 = (j32 + 1)) {
1896 fRec24_tmp[j32] = fRec24_perm[j32];
1897 }
1898 for (int j34 = 0; (j34 < 4); j34 = (j34 + 1)) {
1899 fRec31_tmp[j34] = fRec31_perm[j34];
1900 }
1901 for (int j36 = 0; (j36 < 4); j36 = (j36 + 1)) {
1902 fRec30_tmp[j36] = fRec30_perm[j36];
1903 }
1904 fYec7_idx = ((fYec7_idx + fYec7_idx_save) & 65535);
1905 fYec8_idx = ((fYec8_idx + fYec8_idx_save) & 8191);
1906 for (int j38 = 0; (j38 < 4); j38 = (j38 + 1)) {
1907 fRec28_tmp[j38] = fRec28_perm[j38];
1908 }
1909 for (int j40 = 0; (j40 < 4); j40 = (j40 + 1)) {
1910 fRec35_tmp[j40] = fRec35_perm[j40];
1911 }
1912 for (int j42 = 0; (j42 < 4); j42 = (j42 + 1)) {
1913 fRec34_tmp[j42] = fRec34_perm[j42];
1914 }
1915 fYec9_idx = ((fYec9_idx + fYec9_idx_save) & 32767);
1916 fYec11_idx = ((fYec11_idx + fYec11_idx_save) & 4095);
1917 for (int j44 = 0; (j44 < 4); j44 = (j44 + 1)) {
1918 fRec32_tmp[j44] = fRec32_perm[j44];
1919 }
1920 for (int j46 = 0; (j46 < 4); j46 = (j46 + 1)) {
1921 fRec39_tmp[j46] = fRec39_perm[j46];
1922 }
1923 for (int j48 = 0; (j48 < 4); j48 = (j48 + 1)) {
1924 fRec38_tmp[j48] = fRec38_perm[j48];
1925 }
1926 fYec12_idx = ((fYec12_idx + fYec12_idx_save) & 32767);
1927 fYec13_idx = ((fYec13_idx + fYec13_idx_save) & 8191);
1928 for (int j50 = 0; (j50 < 4); j50 = (j50 + 1)) {
1929 fRec36_tmp[j50] = fRec36_perm[j50];
1930 }
1931 for (int j52 = 0; (j52 < 4); j52 = (j52 + 1)) {
1932 fRec43_tmp[j52] = fRec43_perm[j52];
1933 }
1934 for (int j54 = 0; (j54 < 4); j54 = (j54 + 1)) {
1935 fRec42_tmp[j54] = fRec42_perm[j54];
1936 }
1937 fYec14_idx = ((fYec14_idx + fYec14_idx_save) & 65535);
1938 fYec15_idx = ((fYec15_idx + fYec15_idx_save) & 8191);
1939 for (int j56 = 0; (j56 < 4); j56 = (j56 + 1)) {
1940 fRec40_tmp[j56] = fRec40_perm[j56];
1941 }
1942 for (int j58 = 0; (j58 < 4); j58 = (j58 + 1)) {
1943 fRec47_tmp[j58] = fRec47_perm[j58];
1944 }
1945 for (int j60 = 0; (j60 < 4); j60 = (j60 + 1)) {
1946 fRec46_tmp[j60] = fRec46_perm[j60];
1947 }
1948 fYec16_idx = ((fYec16_idx + fYec16_idx_save) & 32767);
1949 fYec17_idx = ((fYec17_idx + fYec17_idx_save) & 4095);
1950 for (int j62 = 0; (j62 < 4); j62 = (j62 + 1)) {
1951 fRec44_tmp[j62] = fRec44_perm[j62];
1952 }
1953 for (int j64 = 0; (j64 < 4); j64 = (j64 + 1)) {
1954 fRec2_tmp[j64] = fRec2_perm[j64];
1955 }
1956 for (int j66 = 0; (j66 < 4); j66 = (j66 + 1)) {
1957 fRec3_tmp[j66] = fRec3_perm[j66];
1958 }
1959 for (int j68 = 0; (j68 < 4); j68 = (j68 + 1)) {
1960 fRec4_tmp[j68] = fRec4_perm[j68];
1961 }
1962 for (int j70 = 0; (j70 < 4); j70 = (j70 + 1)) {
1963 fRec5_tmp[j70] = fRec5_perm[j70];
1964 }
1965 for (int j72 = 0; (j72 < 4); j72 = (j72 + 1)) {
1966 fRec6_tmp[j72] = fRec6_perm[j72];
1967 }
1968 for (int j74 = 0; (j74 < 4); j74 = (j74 + 1)) {
1969 fRec7_tmp[j74] = fRec7_perm[j74];
1970 }
1971 for (int j76 = 0; (j76 < 4); j76 = (j76 + 1)) {
1972 fRec8_tmp[j76] = fRec8_perm[j76];
1973 }
1974 for (int j78 = 0; (j78 < 4); j78 = (j78 + 1)) {
1975 fRec9_tmp[j78] = fRec9_perm[j78];
1976 }
1977 /* Compute code */
1978 for (int i = 0; (i < vsize); i = (i + 1)) {
1979 fRec15[i] = (0.0f - (fConst2 * ((fConst3 * fRec15[(i - 1)]) - (fRec9[(i - 1)] + fRec9[(i - 2)]))));
1980 fRec12[i] = ((fRec12[(i - 1)] * (fZec5[i] - fZec6[i])) + ((fZec1[i] * (fRec9[(i - 1)] + (fRec15[i] * ((std::exp((fConst5 * (fConst9 / fZec7[i]))) / fZec1[i]) + -1.0f)))) * (fZec6[i] + (1.0f - fZec5[i]))));
1981 fYec0[((i + fYec0_idx) & 65535)] = ((0.353553385f * fRec12[i]) + 9.99999968e-21f);
1982 fYec2[((i + fYec2_idx) & 4095)] = (((0.600000024f * fRec10[(i - 1)]) + fYec0[(((i + fYec0_idx) - iConst16) & 65535)]) - fZec9[i]);
1983 fRec10[i] = fYec2[(((i + fYec2_idx) - iConst19) & 4095)];
1984 fRec11[i] = (0.0f - (0.600000024f * fYec2[((i + fYec2_idx) & 4095)]));
1985 fRec23[i] = (0.0f - (fConst2 * ((fConst3 * fRec23[(i - 1)]) - (fRec5[(i - 1)] + fRec5[(i - 2)]))));
1986 fRec22[i] = ((fRec22[(i - 1)] * (fZec14[i] - fZec15[i])) + ((fZec10[i] * (fRec5[(i - 1)] + (fRec23[i] * ((std::exp((fConst5 * (fConst23 / fZec7[i]))) / fZec10[i]) + -1.0f)))) * (fZec15[i] + (1.0f - fZec14[i]))));
1987 fYec3[((i + fYec3_idx) & 65535)] = ((0.353553385f * fRec22[i]) + 9.99999968e-21f);
1988 fYec4[((i + fYec4_idx) & 8191)] = (((0.600000024f * fRec20[(i - 1)]) + fYec3[(((i + fYec3_idx) - iConst30) & 65535)]) - fZec9[i]);
1989 fRec20[i] = fYec4[(((i + fYec4_idx) - iConst33) & 8191)];
1990 fRec21[i] = (0.0f - (0.600000024f * fYec4[((i + fYec4_idx) & 8191)]));
1991 fRec27[i] = (0.0f - (fConst2 * ((fConst3 * fRec27[(i - 1)]) - (fRec7[(i - 1)] + fRec7[(i - 2)]))));
1992 fRec26[i] = ((fRec26[(i - 1)] * (fZec20[i] - fZec21[i])) + ((fZec16[i] * (fRec7[(i - 1)] + (fRec27[i] * ((std::exp((fConst5 * (fConst37 / fZec7[i]))) / fZec16[i]) + -1.0f)))) * (fZec21[i] + (1.0f - fZec20[i]))));
1993 fYec5[((i + fYec5_idx) & 65535)] = ((0.353553385f * fRec26[i]) + 9.99999968e-21f);
1994 fYec6[((i + fYec6_idx) & 8191)] = (fYec5[(((i + fYec5_idx) - iConst44) & 65535)] + (fZec9[i] + (0.600000024f * fRec24[(i - 1)])));
1995 fRec24[i] = fYec6[(((i + fYec6_idx) - iConst47) & 8191)];
1996 fRec25[i] = (0.0f - (0.600000024f * fYec6[((i + fYec6_idx) & 8191)]));
1997 fRec31[i] = (0.0f - (fConst2 * ((fConst3 * fRec31[(i - 1)]) - (fRec3[(i - 1)] + fRec3[(i - 2)]))));
1998 fRec30[i] = ((fRec30[(i - 1)] * (fZec26[i] - fZec27[i])) + ((fZec22[i] * (fRec3[(i - 1)] + (fRec31[i] * ((std::exp((fConst5 * (fConst51 / fZec7[i]))) / fZec22[i]) + -1.0f)))) * (fZec27[i] + (1.0f - fZec26[i]))));
1999 fYec7[((i + fYec7_idx) & 65535)] = ((0.353553385f * fRec30[i]) + 9.99999968e-21f);
2000 fYec8[((i + fYec8_idx) & 8191)] = (fZec9[i] + ((0.600000024f * fRec28[(i - 1)]) + fYec7[(((i + fYec7_idx) - iConst58) & 65535)]));
2001 fRec28[i] = fYec8[(((i + fYec8_idx) - iConst61) & 8191)];
2002 fRec29[i] = (0.0f - (0.600000024f * fYec8[((i + fYec8_idx) & 8191)]));
2003 fRec35[i] = (0.0f - (fConst2 * ((fConst3 * fRec35[(i - 1)]) - (fRec8[(i - 1)] + fRec8[(i - 2)]))));
2004 fRec34[i] = ((fRec34[(i - 1)] * (fZec32[i] - fZec33[i])) + ((fZec28[i] * (fRec8[(i - 1)] + (fRec35[i] * ((std::exp((fConst5 * (fConst65 / fZec7[i]))) / fZec28[i]) + -1.0f)))) * (fZec33[i] + (1.0f - fZec32[i]))));
2005 fYec9[((i + fYec9_idx) & 32767)] = ((0.353553385f * fRec34[i]) + 9.99999968e-21f);
2006 fYec11[((i + fYec11_idx) & 4095)] = (fYec9[(((i + fYec9_idx) - iConst72) & 32767)] - (fZec34[i] + (0.600000024f * fRec32[(i - 1)])));
2007 fRec32[i] = fYec11[(((i + fYec11_idx) - iConst75) & 4095)];
2008 fRec33[i] = (0.600000024f * fYec11[((i + fYec11_idx) & 4095)]);
2009 fRec39[i] = (0.0f - (fConst2 * ((fConst3 * fRec39[(i - 1)]) - (fRec4[(i - 1)] + fRec4[(i - 2)]))));
2010 fRec38[i] = ((fRec38[(i - 1)] * (fZec39[i] - fZec40[i])) + ((fZec35[i] * (fRec4[(i - 1)] + (fRec39[i] * ((std::exp((fConst5 * (fConst79 / fZec7[i]))) / fZec35[i]) + -1.0f)))) * (fZec40[i] + (1.0f - fZec39[i]))));
2011 fYec12[((i + fYec12_idx) & 32767)] = ((0.353553385f * fRec38[i]) + 9.99999968e-21f);
2012 fYec13[((i + fYec13_idx) & 8191)] = (fYec12[(((i + fYec12_idx) - iConst86) & 32767)] - (fZec34[i] + (0.600000024f * fRec36[(i - 1)])));
2013 fRec36[i] = fYec13[(((i + fYec13_idx) - iConst89) & 8191)];
2014 fRec37[i] = (0.600000024f * fYec13[((i + fYec13_idx) & 8191)]);
2015 fRec43[i] = (0.0f - (fConst2 * ((fConst3 * fRec43[(i - 1)]) - (fRec6[(i - 1)] + fRec6[(i - 2)]))));
2016 fRec42[i] = ((fRec42[(i - 1)] * (fZec45[i] - fZec46[i])) + ((fZec41[i] * (fRec6[(i - 1)] + (fRec43[i] * ((std::exp((fConst5 * (fConst93 / fZec7[i]))) / fZec41[i]) + -1.0f)))) * (fZec46[i] + (1.0f - fZec45[i]))));
2017 fYec14[((i + fYec14_idx) & 65535)] = ((0.353553385f * fRec42[i]) + 9.99999968e-21f);
2018 fYec15[((i + fYec15_idx) & 8191)] = ((fZec34[i] + fYec14[(((i + fYec14_idx) - iConst100) & 65535)]) - (0.600000024f * fRec40[(i - 1)]));
2019 fRec40[i] = fYec15[(((i + fYec15_idx) - iConst103) & 8191)];
2020 fRec41[i] = (0.600000024f * fYec15[((i + fYec15_idx) & 8191)]);
2021 fRec47[i] = (0.0f - (fConst2 * ((fConst3 * fRec47[(i - 1)]) - (fRec2[(i - 1)] + fRec2[(i - 2)]))));
2022 fRec46[i] = ((fRec46[(i - 1)] * (fZec51[i] - fZec52[i])) + ((fZec47[i] * (fRec2[(i - 1)] + (fRec47[i] * ((std::exp((fConst5 * (fConst107 / fZec7[i]))) / fZec47[i]) + -1.0f)))) * (fZec52[i] + (1.0f - fZec51[i]))));
2023 fYec16[((i + fYec16_idx) & 32767)] = ((0.353553385f * fRec46[i]) + 9.99999968e-21f);
2024 fYec17[((i + fYec17_idx) & 4095)] = ((fYec16[(((i + fYec16_idx) - iConst114) & 32767)] + fZec34[i]) - (0.600000024f * fRec44[(i - 1)]));
2025 fRec44[i] = fYec17[(((i + fYec17_idx) - iConst117) & 4095)];
2026 fRec45[i] = (0.600000024f * fYec17[((i + fYec17_idx) & 4095)]);
2027 fZec53[i] = (fRec45[i] + fRec41[i]);
2028 fZec54[i] = (fRec33[i] + (fRec37[i] + fZec53[i]));
2029 fRec2[i] = (fRec10[(i - 1)] + (fRec20[(i - 1)] + (fRec24[(i - 1)] + (fRec28[(i - 1)] + (fRec32[(i - 1)] + (fRec36[(i - 1)] + (fRec40[(i - 1)] + (fRec44[(i - 1)] + (fRec11[i] + (fRec21[i] + (fRec25[i] + (fRec29[i] + fZec54[i]))))))))))));
2030 fRec3[i] = ((fRec32[(i - 1)] + (fRec36[(i - 1)] + (fRec40[(i - 1)] + (fRec44[(i - 1)] + fZec54[i])))) - (fRec10[(i - 1)] + (fRec20[(i - 1)] + (fRec24[(i - 1)] + (fRec28[(i - 1)] + (fRec11[i] + (fRec21[i] + (fRec29[i] + fRec25[i]))))))));
2031 fZec55[i] = (fRec37[i] + fRec33[i]);
2032 fRec4[i] = ((fRec24[(i - 1)] + (fRec28[(i - 1)] + (fRec40[(i - 1)] + (fRec44[(i - 1)] + (fRec25[i] + (fRec29[i] + fZec53[i])))))) - (fRec10[(i - 1)] + (fRec20[(i - 1)] + (fRec32[(i - 1)] + (fRec36[(i - 1)] + (fRec11[i] + (fRec21[i] + fZec55[i])))))));
2033 fRec5[i] = ((fRec10[(i - 1)] + (fRec20[(i - 1)] + (fRec40[(i - 1)] + (fRec44[(i - 1)] + (fRec11[i] + (fRec21[i] + fZec53[i])))))) - (fRec24[(i - 1)] + (fRec28[(i - 1)] + (fRec32[(i - 1)] + (fRec36[(i - 1)] + (fRec25[i] + (fRec29[i] + fZec55[i])))))));
2034 fZec56[i] = (fRec45[i] + fRec37[i]);
2035 fZec57[i] = (fRec41[i] + fRec33[i]);
2036 fRec6[i] = ((fRec20[(i - 1)] + (fRec28[(i - 1)] + (fRec36[(i - 1)] + (fRec44[(i - 1)] + (fRec21[i] + (fRec29[i] + fZec56[i])))))) - (fRec10[(i - 1)] + (fRec24[(i - 1)] + (fRec32[(i - 1)] + (fRec40[(i - 1)] + (fRec11[i] + (fRec25[i] + fZec57[i])))))));
2037 fRec7[i] = ((fRec10[(i - 1)] + (fRec24[(i - 1)] + (fRec36[(i - 1)] + (fRec44[(i - 1)] + (fRec11[i] + (fRec25[i] + fZec56[i])))))) - (fRec20[(i - 1)] + (fRec28[(i - 1)] + (fRec32[(i - 1)] + (fRec40[(i - 1)] + (fRec21[i] + (fRec29[i] + fZec57[i])))))));
2038 fZec58[i] = (fRec45[i] + fRec33[i]);
2039 fZec59[i] = (fRec41[i] + fRec37[i]);
2040 fRec8[i] = ((fRec10[(i - 1)] + (fRec28[(i - 1)] + (fRec32[(i - 1)] + (fRec44[(i - 1)] + (fRec11[i] + (fRec29[i] + fZec58[i])))))) - (fRec20[(i - 1)] + (fRec24[(i - 1)] + (fRec36[(i - 1)] + (fRec40[(i - 1)] + (fRec21[i] + (fRec25[i] + fZec59[i])))))));
2041 fRec9[i] = ((fRec20[(i - 1)] + (fRec24[(i - 1)] + (fRec32[(i - 1)] + (fRec44[(i - 1)] + (fRec21[i] + (fRec25[i] + fZec58[i])))))) - (fRec10[(i - 1)] + (fRec28[(i - 1)] + (fRec36[(i - 1)] + (fRec40[(i - 1)] + (fRec11[i] + (fRec29[i] + fZec59[i])))))));
2042 }
2043 /* Post code */
2044 fYec16_idx_save = vsize;
2045 fYec17_idx_save = vsize;
2046 for (int j59 = 0; (j59 < 4); j59 = (j59 + 1)) {
2047 fRec47_perm[j59] = fRec47_tmp[(vsize + j59)];
2048 }
2049 for (int j61 = 0; (j61 < 4); j61 = (j61 + 1)) {
2050 fRec46_perm[j61] = fRec46_tmp[(vsize + j61)];
2051 }
2052 for (int j63 = 0; (j63 < 4); j63 = (j63 + 1)) {
2053 fRec44_perm[j63] = fRec44_tmp[(vsize + j63)];
2054 }
2055 fYec14_idx_save = vsize;
2056 fYec15_idx_save = vsize;
2057 for (int j53 = 0; (j53 < 4); j53 = (j53 + 1)) {
2058 fRec43_perm[j53] = fRec43_tmp[(vsize + j53)];
2059 }
2060 for (int j55 = 0; (j55 < 4); j55 = (j55 + 1)) {
2061 fRec42_perm[j55] = fRec42_tmp[(vsize + j55)];
2062 }
2063 for (int j57 = 0; (j57 < 4); j57 = (j57 + 1)) {
2064 fRec40_perm[j57] = fRec40_tmp[(vsize + j57)];
2065 }
2066 fYec12_idx_save = vsize;
2067 fYec13_idx_save = vsize;
2068 for (int j47 = 0; (j47 < 4); j47 = (j47 + 1)) {
2069 fRec39_perm[j47] = fRec39_tmp[(vsize + j47)];
2070 }
2071 for (int j49 = 0; (j49 < 4); j49 = (j49 + 1)) {
2072 fRec38_perm[j49] = fRec38_tmp[(vsize + j49)];
2073 }
2074 for (int j51 = 0; (j51 < 4); j51 = (j51 + 1)) {
2075 fRec36_perm[j51] = fRec36_tmp[(vsize + j51)];
2076 }
2077 fYec9_idx_save = vsize;
2078 fYec11_idx_save = vsize;
2079 for (int j41 = 0; (j41 < 4); j41 = (j41 + 1)) {
2080 fRec35_perm[j41] = fRec35_tmp[(vsize + j41)];
2081 }
2082 for (int j43 = 0; (j43 < 4); j43 = (j43 + 1)) {
2083 fRec34_perm[j43] = fRec34_tmp[(vsize + j43)];
2084 }
2085 for (int j45 = 0; (j45 < 4); j45 = (j45 + 1)) {
2086 fRec32_perm[j45] = fRec32_tmp[(vsize + j45)];
2087 }
2088 fYec7_idx_save = vsize;
2089 fYec8_idx_save = vsize;
2090 for (int j35 = 0; (j35 < 4); j35 = (j35 + 1)) {
2091 fRec31_perm[j35] = fRec31_tmp[(vsize + j35)];
2092 }
2093 for (int j37 = 0; (j37 < 4); j37 = (j37 + 1)) {
2094 fRec30_perm[j37] = fRec30_tmp[(vsize + j37)];
2095 }
2096 for (int j39 = 0; (j39 < 4); j39 = (j39 + 1)) {
2097 fRec28_perm[j39] = fRec28_tmp[(vsize + j39)];
2098 }
2099 fYec5_idx_save = vsize;
2100 fYec6_idx_save = vsize;
2101 for (int j29 = 0; (j29 < 4); j29 = (j29 + 1)) {
2102 fRec27_perm[j29] = fRec27_tmp[(vsize + j29)];
2103 }
2104 for (int j31 = 0; (j31 < 4); j31 = (j31 + 1)) {
2105 fRec26_perm[j31] = fRec26_tmp[(vsize + j31)];
2106 }
2107 for (int j33 = 0; (j33 < 4); j33 = (j33 + 1)) {
2108 fRec24_perm[j33] = fRec24_tmp[(vsize + j33)];
2109 }
2110 fYec3_idx_save = vsize;
2111 fYec4_idx_save = vsize;
2112 for (int j23 = 0; (j23 < 4); j23 = (j23 + 1)) {
2113 fRec23_perm[j23] = fRec23_tmp[(vsize + j23)];
2114 }
2115 for (int j25 = 0; (j25 < 4); j25 = (j25 + 1)) {
2116 fRec22_perm[j25] = fRec22_tmp[(vsize + j25)];
2117 }
2118 for (int j27 = 0; (j27 < 4); j27 = (j27 + 1)) {
2119 fRec20_perm[j27] = fRec20_tmp[(vsize + j27)];
2120 }
2121 fYec0_idx_save = vsize;
2122 fYec2_idx_save = vsize;
2123 for (int j9 = 0; (j9 < 4); j9 = (j9 + 1)) {
2124 fRec15_perm[j9] = fRec15_tmp[(vsize + j9)];
2125 }
2126 for (int j15 = 0; (j15 < 4); j15 = (j15 + 1)) {
2127 fRec12_perm[j15] = fRec12_tmp[(vsize + j15)];
2128 }
2129 for (int j21 = 0; (j21 < 4); j21 = (j21 + 1)) {
2130 fRec10_perm[j21] = fRec10_tmp[(vsize + j21)];
2131 }
2132 for (int j65 = 0; (j65 < 4); j65 = (j65 + 1)) {
2133 fRec2_perm[j65] = fRec2_tmp[(vsize + j65)];
2134 }
2135 for (int j67 = 0; (j67 < 4); j67 = (j67 + 1)) {
2136 fRec3_perm[j67] = fRec3_tmp[(vsize + j67)];
2137 }
2138 for (int j69 = 0; (j69 < 4); j69 = (j69 + 1)) {
2139 fRec4_perm[j69] = fRec4_tmp[(vsize + j69)];
2140 }
2141 for (int j71 = 0; (j71 < 4); j71 = (j71 + 1)) {
2142 fRec5_perm[j71] = fRec5_tmp[(vsize + j71)];
2143 }
2144 for (int j73 = 0; (j73 < 4); j73 = (j73 + 1)) {
2145 fRec6_perm[j73] = fRec6_tmp[(vsize + j73)];
2146 }
2147 for (int j75 = 0; (j75 < 4); j75 = (j75 + 1)) {
2148 fRec7_perm[j75] = fRec7_tmp[(vsize + j75)];
2149 }
2150 for (int j77 = 0; (j77 < 4); j77 = (j77 + 1)) {
2151 fRec8_perm[j77] = fRec8_tmp[(vsize + j77)];
2152 }
2153 for (int j79 = 0; (j79 < 4); j79 = (j79 + 1)) {
2154 fRec9_perm[j79] = fRec9_tmp[(vsize + j79)];
2155 }
2156 /* Vectorizable loop 65 */
2157 /* Compute code */
2158 for (int i = 0; (i < vsize); i = (i + 1)) {
2159 fZec61[i] = (1.0f - fZec60[i]);
2160 }
2161 /* Vectorizable loop 66 */
2162 /* Compute code */
2163 for (int i = 0; (i < vsize); i = (i + 1)) {
2164 output0[i] = (FAUSTFLOAT(((float(input0[i]) * fZec61[i]) + (0.370000005f * ((fRec3[i] + fRec4[i]) * fZec60[i])))) + output0[i]);
2165 }
2166 /* Vectorizable loop 67 */
2167 /* Compute code */
2168 for (int i = 0; (i < vsize); i = (i + 1)) {
2169 output1[i] = (FAUSTFLOAT(((float(input1[i]) * fZec61[i]) + (0.370000005f * (fZec60[i] * (fRec3[i] - fRec4[i]))))) + output1[i]);
2170 }
2171 }
2172 }
2173
2174};
2175
2177 static EffectBase* create() {
2178 auto ptr = new VAEReverb();
2180 return ptr;
2181 }
2183 EffectsList::instance().add("VAEReverb", &create);
2184 }
2186
2187} } } // vae::core::effect
2188
2189#endif
static EffectsList & instance()
void add(const char *name, Constructor constructor)
Interaface for faust DSP code.
virtual VAEReverb * clone()
Definition: reverb_gen.hpp:579
virtual void instanceClear()
Reset dsp state delay lines and so on.
Definition: reverb_gen.hpp:356
virtual void compute(int count, FAUSTFLOAT **inputs, FAUSTFLOAT **outputs)
Definition: reverb_gen.hpp:596
virtual void instanceInit(int sample_rate)
Definition: reverb_gen.hpp:573
virtual void buildUserInterface(UI *ui_interface)
Definition: reverb_gen.hpp:587
virtual void instanceResetUserInterface()
Definition: reverb_gen.hpp:349
static void classInit(int sample_rate)
Definition: reverb_gen.hpp:224
virtual void instanceConstants(int sample_rate)
Definition: reverb_gen.hpp:227
virtual void init(int sample_rate)
Init dsp and clear state.
Definition: reverb_gen.hpp:569
static float VAEReverb_faustpower2_f(float value)
Definition: reverb_gen.hpp:30
struct vae::core::effect::RegisterVAEReverb __registerVAEReverb
const char *const dspAllocator
Tracks DSP memory usage.
Contains Typedefinitions and basic structures use by the public API and internally.
Definition: vae.hpp:31
void declare(const char *key, const char *value)
void openVerticalBox(const char *key)
void addVerticalSlider(const char *name, Sample *prop, Sample pDefault, Sample min, Sample max, Sample stepSize) const
#define FAUSTFLOAT
#define VAE_PROFILER_MALLOC_L(ptr, size, name)
Track named allocaions.