Kuesa Music Box QML Example
#ifndef __mydsp_H__
#define __mydsp_H__
#ifndef FAUSTFLOAT
#define FAUSTFLOAT float
#endif
#include <algorithm>
#include <cmath>
#ifndef FAUSTCLASS
#define FAUSTCLASS mydsp
#endif
#ifdef __APPLE__
#define exp10f __exp10f
#define exp10 __exp10
#endif
class mydsp
{
private:
FAUSTFLOAT fHslider0;
float fRec9_perm[4];
FAUSTFLOAT fHslider1;
float fYec0[2048];
int fYec0_idx;
int fYec0_idx_save;
float fRec8_perm[4];
float fRec11_perm[4];
float fYec1[2048];
int fYec1_idx;
int fYec1_idx_save;
float fRec10_perm[4];
float fRec13_perm[4];
float fYec2[2048];
int fYec2_idx;
int fYec2_idx_save;
float fRec12_perm[4];
float fRec15_perm[4];
float fYec3[2048];
int fYec3_idx;
int fYec3_idx_save;
float fRec14_perm[4];
float fRec17_perm[4];
float fYec4[2048];
int fYec4_idx;
int fYec4_idx_save;
float fRec16_perm[4];
float fRec19_perm[4];
float fYec5[2048];
int fYec5_idx;
int fYec5_idx_save;
float fRec18_perm[4];
float fRec21_perm[4];
float fYec6[2048];
int fYec6_idx;
int fYec6_idx_save;
float fRec20_perm[4];
float fRec23_perm[4];
float fYec7[2048];
int fYec7_idx;
int fYec7_idx_save;
float fRec22_perm[4];
float fYec8[1024];
int fYec8_idx;
int fYec8_idx_save;
float fRec6_perm[4];
float fYec9[512];
int fYec9_idx;
int fYec9_idx_save;
float fRec4_perm[4];
float fYec10[512];
int fYec10_idx;
int fYec10_idx_save;
float fRec2_perm[4];
float fYec11[512];
int fYec11_idx;
int fYec11_idx_save;
float fRec0_perm[4];
FAUSTFLOAT fHslider2;
float fRec33_perm[4];
float fYec12[2048];
int fYec12_idx;
int fYec12_idx_save;
float fRec32_perm[4];
float fRec35_perm[4];
float fYec13[2048];
int fYec13_idx;
int fYec13_idx_save;
float fRec34_perm[4];
float fRec37_perm[4];
float fYec14[2048];
int fYec14_idx;
int fYec14_idx_save;
float fRec36_perm[4];
float fRec39_perm[4];
float fYec15[2048];
int fYec15_idx;
int fYec15_idx_save;
float fRec38_perm[4];
float fRec41_perm[4];
float fYec16[2048];
int fYec16_idx;
int fYec16_idx_save;
float fRec40_perm[4];
float fRec43_perm[4];
float fYec17[2048];
int fYec17_idx;
int fYec17_idx_save;
float fRec42_perm[4];
float fRec45_perm[4];
float fYec18[2048];
int fYec18_idx;
int fYec18_idx_save;
float fRec44_perm[4];
float fRec47_perm[4];
float fYec19[2048];
int fYec19_idx;
int fYec19_idx_save;
float fRec46_perm[4];
float fYec20[1024];
int fYec20_idx;
int fYec20_idx_save;
float fRec30_perm[4];
float fYec21[512];
int fYec21_idx;
int fYec21_idx_save;
float fRec28_perm[4];
float fYec22[512];
int fYec22_idx;
int fYec22_idx_save;
float fRec26_perm[4];
float fYec23[512];
int fYec23_idx;
int fYec23_idx_save;
float fRec24_perm[4];
int fSamplingFreq;
public:
void setDamp(float v) { fHslider0 = v; }
void setRoomSize(float v) { fHslider1 = v; }
void setDryWet(float v) { fHslider2 = v; }
virtual int getNumInputs()
{
return 2;
}
virtual int getNumOutputs()
{
return 2;
}
virtual int getInputRate(int channel)
{
int rate;
switch (channel) {
case 0: {
rate = 0;
break;
}
case 1: {
rate = 0;
break;
}
default: {
rate = -1;
break;
}
}
return rate;
}
virtual int getOutputRate(int channel)
{
int rate;
switch (channel) {
case 0: {
rate = 1;
break;
}
case 1: {
rate = 1;
break;
}
default: {
rate = -1;
break;
}
}
return rate;
}
static void classInit(int samplingFreq)
{
}
virtual void instanceConstants(int samplingFreq)
{
fSamplingFreq = samplingFreq;
}
virtual void instanceResetUserInterface()
{
fHslider0 = FAUSTFLOAT(0.5f);
fHslider1 = FAUSTFLOAT(0.90000000000000002f);
fHslider2 = FAUSTFLOAT(0.90000000000000002f);
}
virtual void instanceClear()
{
for (int l0 = 0; (l0 < 4); l0 = (l0 + 1)) {
fRec9_perm[l0] = 0.0f;
}
for (int l1 = 0; (l1 < 2048); l1 = (l1 + 1)) {
fYec0[l1] = 0.0f;
}
fYec0_idx = 0;
fYec0_idx_save = 0;
for (int l2 = 0; (l2 < 4); l2 = (l2 + 1)) {
fRec8_perm[l2] = 0.0f;
}
for (int l3 = 0; (l3 < 4); l3 = (l3 + 1)) {
fRec11_perm[l3] = 0.0f;
}
for (int l4 = 0; (l4 < 2048); l4 = (l4 + 1)) {
fYec1[l4] = 0.0f;
}
fYec1_idx = 0;
fYec1_idx_save = 0;
for (int l5 = 0; (l5 < 4); l5 = (l5 + 1)) {
fRec10_perm[l5] = 0.0f;
}
for (int l6 = 0; (l6 < 4); l6 = (l6 + 1)) {
fRec13_perm[l6] = 0.0f;
}
for (int l7 = 0; (l7 < 2048); l7 = (l7 + 1)) {
fYec2[l7] = 0.0f;
}
fYec2_idx = 0;
fYec2_idx_save = 0;
for (int l8 = 0; (l8 < 4); l8 = (l8 + 1)) {
fRec12_perm[l8] = 0.0f;
}
for (int l9 = 0; (l9 < 4); l9 = (l9 + 1)) {
fRec15_perm[l9] = 0.0f;
}
for (int l10 = 0; (l10 < 2048); l10 = (l10 + 1)) {
fYec3[l10] = 0.0f;
}
fYec3_idx = 0;
fYec3_idx_save = 0;
for (int l11 = 0; (l11 < 4); l11 = (l11 + 1)) {
fRec14_perm[l11] = 0.0f;
}
for (int l12 = 0; (l12 < 4); l12 = (l12 + 1)) {
fRec17_perm[l12] = 0.0f;
}
for (int l13 = 0; (l13 < 2048); l13 = (l13 + 1)) {
fYec4[l13] = 0.0f;
}
fYec4_idx = 0;
fYec4_idx_save = 0;
for (int l14 = 0; (l14 < 4); l14 = (l14 + 1)) {
fRec16_perm[l14] = 0.0f;
}
for (int l15 = 0; (l15 < 4); l15 = (l15 + 1)) {
fRec19_perm[l15] = 0.0f;
}
for (int l16 = 0; (l16 < 2048); l16 = (l16 + 1)) {
fYec5[l16] = 0.0f;
}
fYec5_idx = 0;
fYec5_idx_save = 0;
for (int l17 = 0; (l17 < 4); l17 = (l17 + 1)) {
fRec18_perm[l17] = 0.0f;
}
for (int l18 = 0; (l18 < 4); l18 = (l18 + 1)) {
fRec21_perm[l18] = 0.0f;
}
for (int l19 = 0; (l19 < 2048); l19 = (l19 + 1)) {
fYec6[l19] = 0.0f;
}
fYec6_idx = 0;
fYec6_idx_save = 0;
for (int l20 = 0; (l20 < 4); l20 = (l20 + 1)) {
fRec20_perm[l20] = 0.0f;
}
for (int l21 = 0; (l21 < 4); l21 = (l21 + 1)) {
fRec23_perm[l21] = 0.0f;
}
for (int l22 = 0; (l22 < 2048); l22 = (l22 + 1)) {
fYec7[l22] = 0.0f;
}
fYec7_idx = 0;
fYec7_idx_save = 0;
for (int l23 = 0; (l23 < 4); l23 = (l23 + 1)) {
fRec22_perm[l23] = 0.0f;
}
for (int l24 = 0; (l24 < 1024); l24 = (l24 + 1)) {
fYec8[l24] = 0.0f;
}
fYec8_idx = 0;
fYec8_idx_save = 0;
for (int l25 = 0; (l25 < 4); l25 = (l25 + 1)) {
fRec6_perm[l25] = 0.0f;
}
for (int l26 = 0; (l26 < 512); l26 = (l26 + 1)) {
fYec9[l26] = 0.0f;
}
fYec9_idx = 0;
fYec9_idx_save = 0;
for (int l27 = 0; (l27 < 4); l27 = (l27 + 1)) {
fRec4_perm[l27] = 0.0f;
}
for (int l28 = 0; (l28 < 512); l28 = (l28 + 1)) {
fYec10[l28] = 0.0f;
}
fYec10_idx = 0;
fYec10_idx_save = 0;
for (int l29 = 0; (l29 < 4); l29 = (l29 + 1)) {
fRec2_perm[l29] = 0.0f;
}
for (int l30 = 0; (l30 < 512); l30 = (l30 + 1)) {
fYec11[l30] = 0.0f;
}
fYec11_idx = 0;
fYec11_idx_save = 0;
for (int l31 = 0; (l31 < 4); l31 = (l31 + 1)) {
fRec0_perm[l31] = 0.0f;
}
for (int l32 = 0; (l32 < 4); l32 = (l32 + 1)) {
fRec33_perm[l32] = 0.0f;
}
for (int l33 = 0; (l33 < 2048); l33 = (l33 + 1)) {
fYec12[l33] = 0.0f;
}
fYec12_idx = 0;
fYec12_idx_save = 0;
for (int l34 = 0; (l34 < 4); l34 = (l34 + 1)) {
fRec32_perm[l34] = 0.0f;
}
for (int l35 = 0; (l35 < 4); l35 = (l35 + 1)) {
fRec35_perm[l35] = 0.0f;
}
for (int l36 = 0; (l36 < 2048); l36 = (l36 + 1)) {
fYec13[l36] = 0.0f;
}
fYec13_idx = 0;
fYec13_idx_save = 0;
for (int l37 = 0; (l37 < 4); l37 = (l37 + 1)) {
fRec34_perm[l37] = 0.0f;
}
for (int l38 = 0; (l38 < 4); l38 = (l38 + 1)) {
fRec37_perm[l38] = 0.0f;
}
for (int l39 = 0; (l39 < 2048); l39 = (l39 + 1)) {
fYec14[l39] = 0.0f;
}
fYec14_idx = 0;
fYec14_idx_save = 0;
for (int l40 = 0; (l40 < 4); l40 = (l40 + 1)) {
fRec36_perm[l40] = 0.0f;
}
for (int l41 = 0; (l41 < 4); l41 = (l41 + 1)) {
fRec39_perm[l41] = 0.0f;
}
for (int l42 = 0; (l42 < 2048); l42 = (l42 + 1)) {
fYec15[l42] = 0.0f;
}
fYec15_idx = 0;
fYec15_idx_save = 0;
for (int l43 = 0; (l43 < 4); l43 = (l43 + 1)) {
fRec38_perm[l43] = 0.0f;
}
for (int l44 = 0; (l44 < 4); l44 = (l44 + 1)) {
fRec41_perm[l44] = 0.0f;
}
for (int l45 = 0; (l45 < 2048); l45 = (l45 + 1)) {
fYec16[l45] = 0.0f;
}
fYec16_idx = 0;
fYec16_idx_save = 0;
for (int l46 = 0; (l46 < 4); l46 = (l46 + 1)) {
fRec40_perm[l46] = 0.0f;
}
for (int l47 = 0; (l47 < 4); l47 = (l47 + 1)) {
fRec43_perm[l47] = 0.0f;
}
for (int l48 = 0; (l48 < 2048); l48 = (l48 + 1)) {
fYec17[l48] = 0.0f;
}
fYec17_idx = 0;
fYec17_idx_save = 0;
for (int l49 = 0; (l49 < 4); l49 = (l49 + 1)) {
fRec42_perm[l49] = 0.0f;
}
for (int l50 = 0; (l50 < 4); l50 = (l50 + 1)) {
fRec45_perm[l50] = 0.0f;
}
for (int l51 = 0; (l51 < 2048); l51 = (l51 + 1)) {
fYec18[l51] = 0.0f;
}
fYec18_idx = 0;
fYec18_idx_save = 0;
for (int l52 = 0; (l52 < 4); l52 = (l52 + 1)) {
fRec44_perm[l52] = 0.0f;
}
for (int l53 = 0; (l53 < 4); l53 = (l53 + 1)) {
fRec47_perm[l53] = 0.0f;
}
for (int l54 = 0; (l54 < 2048); l54 = (l54 + 1)) {
fYec19[l54] = 0.0f;
}
fYec19_idx = 0;
fYec19_idx_save = 0;
for (int l55 = 0; (l55 < 4); l55 = (l55 + 1)) {
fRec46_perm[l55] = 0.0f;
}
for (int l56 = 0; (l56 < 1024); l56 = (l56 + 1)) {
fYec20[l56] = 0.0f;
}
fYec20_idx = 0;
fYec20_idx_save = 0;
for (int l57 = 0; (l57 < 4); l57 = (l57 + 1)) {
fRec30_perm[l57] = 0.0f;
}
for (int l58 = 0; (l58 < 512); l58 = (l58 + 1)) {
fYec21[l58] = 0.0f;
}
fYec21_idx = 0;
fYec21_idx_save = 0;
for (int l59 = 0; (l59 < 4); l59 = (l59 + 1)) {
fRec28_perm[l59] = 0.0f;
}
for (int l60 = 0; (l60 < 512); l60 = (l60 + 1)) {
fYec22[l60] = 0.0f;
}
fYec22_idx = 0;
fYec22_idx_save = 0;
for (int l61 = 0; (l61 < 4); l61 = (l61 + 1)) {
fRec26_perm[l61] = 0.0f;
}
for (int l62 = 0; (l62 < 512); l62 = (l62 + 1)) {
fYec23[l62] = 0.0f;
}
fYec23_idx = 0;
fYec23_idx_save = 0;
for (int l63 = 0; (l63 < 4); l63 = (l63 + 1)) {
fRec24_perm[l63] = 0.0f;
}
}
virtual void init(int samplingFreq)
{
classInit(samplingFreq);
instanceInit(samplingFreq);
}
virtual void instanceInit(int samplingFreq)
{
instanceConstants(samplingFreq);
instanceResetUserInterface();
instanceClear();
}
virtual mydsp *clone()
{
return new mydsp();
}
virtual int getSampleRate()
{
return fSamplingFreq;
}
virtual void compute(int count, FAUSTFLOAT **inputs, FAUSTFLOAT **outputs)
{
FAUSTFLOAT *input0_ptr = inputs[0];
FAUSTFLOAT *input1_ptr = inputs[1];
FAUSTFLOAT *output0_ptr = outputs[0];
FAUSTFLOAT *output1_ptr = outputs[1];
float fSlow0 = (0.400000006f * float(fHslider0));
float fSlow1 = (1.0f - fSlow0);
float fRec9_tmp[36];
float *fRec9 = &fRec9_tmp[4];
float fSlow2 = ((0.280000001f * float(fHslider1)) + 0.699999988f);
float fZec0[32];
float fRec8_tmp[36];
float *fRec8 = &fRec8_tmp[4];
float fRec11_tmp[36];
float *fRec11 = &fRec11_tmp[4];
float fRec10_tmp[36];
float *fRec10 = &fRec10_tmp[4];
float fRec13_tmp[36];
float *fRec13 = &fRec13_tmp[4];
float fRec12_tmp[36];
float *fRec12 = &fRec12_tmp[4];
float fRec15_tmp[36];
float *fRec15 = &fRec15_tmp[4];
float fRec14_tmp[36];
float *fRec14 = &fRec14_tmp[4];
float fRec17_tmp[36];
float *fRec17 = &fRec17_tmp[4];
float fRec16_tmp[36];
float *fRec16 = &fRec16_tmp[4];
float fRec19_tmp[36];
float *fRec19 = &fRec19_tmp[4];
float fRec18_tmp[36];
float *fRec18 = &fRec18_tmp[4];
float fRec21_tmp[36];
float *fRec21 = &fRec21_tmp[4];
float fRec20_tmp[36];
float *fRec20 = &fRec20_tmp[4];
float fRec23_tmp[36];
float *fRec23 = &fRec23_tmp[4];
float fRec22_tmp[36];
float *fRec22 = &fRec22_tmp[4];
float fZec1[32];
float fRec6_tmp[36];
float *fRec6 = &fRec6_tmp[4];
float fRec7[32];
float fRec4_tmp[36];
float *fRec4 = &fRec4_tmp[4];
float fRec5[32];
float fRec2_tmp[36];
float *fRec2 = &fRec2_tmp[4];
float fRec3[32];
float fRec0_tmp[36];
float *fRec0 = &fRec0_tmp[4];
float fRec1[32];
float fSlow3 = float(fHslider2);
float fSlow4 = (1.0f - fSlow3);
float fRec33_tmp[36];
float *fRec33 = &fRec33_tmp[4];
float fRec32_tmp[36];
float *fRec32 = &fRec32_tmp[4];
float fRec35_tmp[36];
float *fRec35 = &fRec35_tmp[4];
float fRec34_tmp[36];
float *fRec34 = &fRec34_tmp[4];
float fRec37_tmp[36];
float *fRec37 = &fRec37_tmp[4];
float fRec36_tmp[36];
float *fRec36 = &fRec36_tmp[4];
float fRec39_tmp[36];
float *fRec39 = &fRec39_tmp[4];
float fRec38_tmp[36];
float *fRec38 = &fRec38_tmp[4];
float fRec41_tmp[36];
float *fRec41 = &fRec41_tmp[4];
float fRec40_tmp[36];
float *fRec40 = &fRec40_tmp[4];
float fRec43_tmp[36];
float *fRec43 = &fRec43_tmp[4];
float fRec42_tmp[36];
float *fRec42 = &fRec42_tmp[4];
float fRec45_tmp[36];
float *fRec45 = &fRec45_tmp[4];
float fRec44_tmp[36];
float *fRec44 = &fRec44_tmp[4];
float fRec47_tmp[36];
float *fRec47 = &fRec47_tmp[4];
float fRec46_tmp[36];
float *fRec46 = &fRec46_tmp[4];
float fZec2[32];
float fRec30_tmp[36];
float *fRec30 = &fRec30_tmp[4];
float fRec31[32];
float fRec28_tmp[36];
float *fRec28 = &fRec28_tmp[4];
float fRec29[32];
float fRec26_tmp[36];
float *fRec26 = &fRec26_tmp[4];
float fRec27[32];
float fRec24_tmp[36];
float *fRec24 = &fRec24_tmp[4];
float fRec25[32];
int vindex = 0;
for (vindex = 0; (vindex <= (count - 32)); vindex = (vindex + 32)) {
FAUSTFLOAT *input0 = &input0_ptr[vindex];
FAUSTFLOAT *input1 = &input1_ptr[vindex];
FAUSTFLOAT *output0 = &output0_ptr[vindex];
FAUSTFLOAT *output1 = &output1_ptr[vindex];
int vsize = 32;
for (int i = 0; (i < vsize); i = (i + 1)) {
fZec0[i] = (0.0149999997f * (float(input0[i]) + float(input1[i])));
}
for (int j0 = 0; (j0 < 4); j0 = (j0 + 1)) {
fRec9_tmp[j0] = fRec9_perm[j0];
}
fYec0_idx = ((fYec0_idx + fYec0_idx_save) & 2047);
for (int j2 = 0; (j2 < 4); j2 = (j2 + 1)) {
fRec8_tmp[j2] = fRec8_perm[j2];
}
for (int i = 0; (i < vsize); i = (i + 1)) {
fRec9[i] = ((fSlow0 * fRec9[(i - 1)]) + (fSlow1 * fRec8[(i - 1)]));
fYec0[((i + fYec0_idx) & 2047)] = ((fSlow2 * fRec9[i]) + fZec0[i]);
fRec8[i] = fYec0[(((i + fYec0_idx) - 1116) & 2047)];
}
fYec0_idx_save = vsize;
for (int j1 = 0; (j1 < 4); j1 = (j1 + 1)) {
fRec9_perm[j1] = fRec9_tmp[(vsize + j1)];
}
for (int j3 = 0; (j3 < 4); j3 = (j3 + 1)) {
fRec8_perm[j3] = fRec8_tmp[(vsize + j3)];
}
for (int j4 = 0; (j4 < 4); j4 = (j4 + 1)) {
fRec11_tmp[j4] = fRec11_perm[j4];
}
fYec1_idx = ((fYec1_idx + fYec1_idx_save) & 2047);
for (int j6 = 0; (j6 < 4); j6 = (j6 + 1)) {
fRec10_tmp[j6] = fRec10_perm[j6];
}
for (int i = 0; (i < vsize); i = (i + 1)) {
fRec11[i] = ((fSlow0 * fRec11[(i - 1)]) + (fSlow1 * fRec10[(i - 1)]));
fYec1[((i + fYec1_idx) & 2047)] = (fZec0[i] + (fSlow2 * fRec11[i]));
fRec10[i] = fYec1[(((i + fYec1_idx) - 1188) & 2047)];
}
fYec1_idx_save = vsize;
for (int j5 = 0; (j5 < 4); j5 = (j5 + 1)) {
fRec11_perm[j5] = fRec11_tmp[(vsize + j5)];
}
for (int j7 = 0; (j7 < 4); j7 = (j7 + 1)) {
fRec10_perm[j7] = fRec10_tmp[(vsize + j7)];
}
for (int j8 = 0; (j8 < 4); j8 = (j8 + 1)) {
fRec13_tmp[j8] = fRec13_perm[j8];
}
fYec2_idx = ((fYec2_idx + fYec2_idx_save) & 2047);
for (int j10 = 0; (j10 < 4); j10 = (j10 + 1)) {
fRec12_tmp[j10] = fRec12_perm[j10];
}
for (int i = 0; (i < vsize); i = (i + 1)) {
fRec13[i] = ((fSlow0 * fRec13[(i - 1)]) + (fSlow1 * fRec12[(i - 1)]));
fYec2[((i + fYec2_idx) & 2047)] = (fZec0[i] + (fSlow2 * fRec13[i]));
fRec12[i] = fYec2[(((i + fYec2_idx) - 1277) & 2047)];
}
fYec2_idx_save = vsize;
for (int j9 = 0; (j9 < 4); j9 = (j9 + 1)) {
fRec13_perm[j9] = fRec13_tmp[(vsize + j9)];
}
for (int j11 = 0; (j11 < 4); j11 = (j11 + 1)) {
fRec12_perm[j11] = fRec12_tmp[(vsize + j11)];
}
for (int j12 = 0; (j12 < 4); j12 = (j12 + 1)) {
fRec15_tmp[j12] = fRec15_perm[j12];
}
fYec3_idx = ((fYec3_idx + fYec3_idx_save) & 2047);
for (int j14 = 0; (j14 < 4); j14 = (j14 + 1)) {
fRec14_tmp[j14] = fRec14_perm[j14];
}
for (int i = 0; (i < vsize); i = (i + 1)) {
fRec15[i] = ((fSlow0 * fRec15[(i - 1)]) + (fSlow1 * fRec14[(i - 1)]));
fYec3[((i + fYec3_idx) & 2047)] = (fZec0[i] + (fSlow2 * fRec15[i]));
fRec14[i] = fYec3[(((i + fYec3_idx) - 1356) & 2047)];
}
fYec3_idx_save = vsize;
for (int j13 = 0; (j13 < 4); j13 = (j13 + 1)) {
fRec15_perm[j13] = fRec15_tmp[(vsize + j13)];
}
for (int j15 = 0; (j15 < 4); j15 = (j15 + 1)) {
fRec14_perm[j15] = fRec14_tmp[(vsize + j15)];
}
for (int j16 = 0; (j16 < 4); j16 = (j16 + 1)) {
fRec17_tmp[j16] = fRec17_perm[j16];
}
fYec4_idx = ((fYec4_idx + fYec4_idx_save) & 2047);
for (int j18 = 0; (j18 < 4); j18 = (j18 + 1)) {
fRec16_tmp[j18] = fRec16_perm[j18];
}
for (int i = 0; (i < vsize); i = (i + 1)) {
fRec17[i] = ((fSlow0 * fRec17[(i - 1)]) + (fSlow1 * fRec16[(i - 1)]));
fYec4[((i + fYec4_idx) & 2047)] = (fZec0[i] + (fSlow2 * fRec17[i]));
fRec16[i] = fYec4[(((i + fYec4_idx) - 1422) & 2047)];
}
fYec4_idx_save = vsize;
for (int j17 = 0; (j17 < 4); j17 = (j17 + 1)) {
fRec17_perm[j17] = fRec17_tmp[(vsize + j17)];
}
for (int j19 = 0; (j19 < 4); j19 = (j19 + 1)) {
fRec16_perm[j19] = fRec16_tmp[(vsize + j19)];
}
for (int j20 = 0; (j20 < 4); j20 = (j20 + 1)) {
fRec19_tmp[j20] = fRec19_perm[j20];
}
fYec5_idx = ((fYec5_idx + fYec5_idx_save) & 2047);
for (int j22 = 0; (j22 < 4); j22 = (j22 + 1)) {
fRec18_tmp[j22] = fRec18_perm[j22];
}
for (int i = 0; (i < vsize); i = (i + 1)) {
fRec19[i] = ((fSlow0 * fRec19[(i - 1)]) + (fSlow1 * fRec18[(i - 1)]));
fYec5[((i + fYec5_idx) & 2047)] = (fZec0[i] + (fSlow2 * fRec19[i]));
fRec18[i] = fYec5[(((i + fYec5_idx) - 1491) & 2047)];
}
fYec5_idx_save = vsize;
for (int j21 = 0; (j21 < 4); j21 = (j21 + 1)) {
fRec19_perm[j21] = fRec19_tmp[(vsize + j21)];
}
for (int j23 = 0; (j23 < 4); j23 = (j23 + 1)) {
fRec18_perm[j23] = fRec18_tmp[(vsize + j23)];
}
for (int j24 = 0; (j24 < 4); j24 = (j24 + 1)) {
fRec21_tmp[j24] = fRec21_perm[j24];
}
fYec6_idx = ((fYec6_idx + fYec6_idx_save) & 2047);
for (int j26 = 0; (j26 < 4); j26 = (j26 + 1)) {
fRec20_tmp[j26] = fRec20_perm[j26];
}
for (int i = 0; (i < vsize); i = (i + 1)) {
fRec21[i] = ((fSlow0 * fRec21[(i - 1)]) + (fSlow1 * fRec20[(i - 1)]));
fYec6[((i + fYec6_idx) & 2047)] = (fZec0[i] + (fSlow2 * fRec21[i]));
fRec20[i] = fYec6[(((i + fYec6_idx) - 1557) & 2047)];
}
fYec6_idx_save = vsize;
for (int j25 = 0; (j25 < 4); j25 = (j25 + 1)) {
fRec21_perm[j25] = fRec21_tmp[(vsize + j25)];
}
for (int j27 = 0; (j27 < 4); j27 = (j27 + 1)) {
fRec20_perm[j27] = fRec20_tmp[(vsize + j27)];
}
for (int j28 = 0; (j28 < 4); j28 = (j28 + 1)) {
fRec23_tmp[j28] = fRec23_perm[j28];
}
fYec7_idx = ((fYec7_idx + fYec7_idx_save) & 2047);
for (int j30 = 0; (j30 < 4); j30 = (j30 + 1)) {
fRec22_tmp[j30] = fRec22_perm[j30];
}
for (int i = 0; (i < vsize); i = (i + 1)) {
fRec23[i] = ((fSlow0 * fRec23[(i - 1)]) + (fSlow1 * fRec22[(i - 1)]));
fYec7[((i + fYec7_idx) & 2047)] = (fZec0[i] + (fSlow2 * fRec23[i]));
fRec22[i] = fYec7[(((i + fYec7_idx) - 1617) & 2047)];
}
fYec7_idx_save = vsize;
for (int j29 = 0; (j29 < 4); j29 = (j29 + 1)) {
fRec23_perm[j29] = fRec23_tmp[(vsize + j29)];
}
for (int j31 = 0; (j31 < 4); j31 = (j31 + 1)) {
fRec22_perm[j31] = fRec22_tmp[(vsize + j31)];
}
for (int j40 = 0; (j40 < 4); j40 = (j40 + 1)) {
fRec33_tmp[j40] = fRec33_perm[j40];
}
fYec12_idx = ((fYec12_idx + fYec12_idx_save) & 2047);
for (int j42 = 0; (j42 < 4); j42 = (j42 + 1)) {
fRec32_tmp[j42] = fRec32_perm[j42];
}
for (int i = 0; (i < vsize); i = (i + 1)) {
fRec33[i] = ((fSlow0 * fRec33[(i - 1)]) + (fSlow1 * fRec32[(i - 1)]));
fYec12[((i + fYec12_idx) & 2047)] = (fZec0[i] + (fSlow2 * fRec33[i]));
fRec32[i] = fYec12[(((i + fYec12_idx) - 1139) & 2047)];
}
fYec12_idx_save = vsize;
for (int j41 = 0; (j41 < 4); j41 = (j41 + 1)) {
fRec33_perm[j41] = fRec33_tmp[(vsize + j41)];
}
for (int j43 = 0; (j43 < 4); j43 = (j43 + 1)) {
fRec32_perm[j43] = fRec32_tmp[(vsize + j43)];
}
for (int j44 = 0; (j44 < 4); j44 = (j44 + 1)) {
fRec35_tmp[j44] = fRec35_perm[j44];
}
fYec13_idx = ((fYec13_idx + fYec13_idx_save) & 2047);
for (int j46 = 0; (j46 < 4); j46 = (j46 + 1)) {
fRec34_tmp[j46] = fRec34_perm[j46];
}
for (int i = 0; (i < vsize); i = (i + 1)) {
fRec35[i] = ((fSlow0 * fRec35[(i - 1)]) + (fSlow1 * fRec34[(i - 1)]));
fYec13[((i + fYec13_idx) & 2047)] = (fZec0[i] + (fSlow2 * fRec35[i]));
fRec34[i] = fYec13[(((i + fYec13_idx) - 1211) & 2047)];
}
fYec13_idx_save = vsize;
for (int j45 = 0; (j45 < 4); j45 = (j45 + 1)) {
fRec35_perm[j45] = fRec35_tmp[(vsize + j45)];
}
for (int j47 = 0; (j47 < 4); j47 = (j47 + 1)) {
fRec34_perm[j47] = fRec34_tmp[(vsize + j47)];
}
for (int j48 = 0; (j48 < 4); j48 = (j48 + 1)) {
fRec37_tmp[j48] = fRec37_perm[j48];
}
fYec14_idx = ((fYec14_idx + fYec14_idx_save) & 2047);
for (int j50 = 0; (j50 < 4); j50 = (j50 + 1)) {
fRec36_tmp[j50] = fRec36_perm[j50];
}
for (int i = 0; (i < vsize); i = (i + 1)) {
fRec37[i] = ((fSlow0 * fRec37[(i - 1)]) + (fSlow1 * fRec36[(i - 1)]));
fYec14[((i + fYec14_idx) & 2047)] = (fZec0[i] + (fSlow2 * fRec37[i]));
fRec36[i] = fYec14[(((i + fYec14_idx) - 1300) & 2047)];
}
fYec14_idx_save = vsize;
for (int j49 = 0; (j49 < 4); j49 = (j49 + 1)) {
fRec37_perm[j49] = fRec37_tmp[(vsize + j49)];
}
for (int j51 = 0; (j51 < 4); j51 = (j51 + 1)) {
fRec36_perm[j51] = fRec36_tmp[(vsize + j51)];
}
for (int j52 = 0; (j52 < 4); j52 = (j52 + 1)) {
fRec39_tmp[j52] = fRec39_perm[j52];
}
fYec15_idx = ((fYec15_idx + fYec15_idx_save) & 2047);
for (int j54 = 0; (j54 < 4); j54 = (j54 + 1)) {
fRec38_tmp[j54] = fRec38_perm[j54];
}
for (int i = 0; (i < vsize); i = (i + 1)) {
fRec39[i] = ((fSlow0 * fRec39[(i - 1)]) + (fSlow1 * fRec38[(i - 1)]));
fYec15[((i + fYec15_idx) & 2047)] = (fZec0[i] + (fSlow2 * fRec39[i]));
fRec38[i] = fYec15[(((i + fYec15_idx) - 1379) & 2047)];
}
fYec15_idx_save = vsize;
for (int j53 = 0; (j53 < 4); j53 = (j53 + 1)) {
fRec39_perm[j53] = fRec39_tmp[(vsize + j53)];
}
for (int j55 = 0; (j55 < 4); j55 = (j55 + 1)) {
fRec38_perm[j55] = fRec38_tmp[(vsize + j55)];
}
for (int j56 = 0; (j56 < 4); j56 = (j56 + 1)) {
fRec41_tmp[j56] = fRec41_perm[j56];
}
fYec16_idx = ((fYec16_idx + fYec16_idx_save) & 2047);
for (int j58 = 0; (j58 < 4); j58 = (j58 + 1)) {
fRec40_tmp[j58] = fRec40_perm[j58];
}
for (int i = 0; (i < vsize); i = (i + 1)) {
fRec41[i] = ((fSlow0 * fRec41[(i - 1)]) + (fSlow1 * fRec40[(i - 1)]));
fYec16[((i + fYec16_idx) & 2047)] = (fZec0[i] + (fSlow2 * fRec41[i]));
fRec40[i] = fYec16[(((i + fYec16_idx) - 1445) & 2047)];
}
fYec16_idx_save = vsize;
for (int j57 = 0; (j57 < 4); j57 = (j57 + 1)) {
fRec41_perm[j57] = fRec41_tmp[(vsize + j57)];
}
for (int j59 = 0; (j59 < 4); j59 = (j59 + 1)) {
fRec40_perm[j59] = fRec40_tmp[(vsize + j59)];
}
for (int j60 = 0; (j60 < 4); j60 = (j60 + 1)) {
fRec43_tmp[j60] = fRec43_perm[j60];
}
fYec17_idx = ((fYec17_idx + fYec17_idx_save) & 2047);
for (int j62 = 0; (j62 < 4); j62 = (j62 + 1)) {
fRec42_tmp[j62] = fRec42_perm[j62];
}
for (int i = 0; (i < vsize); i = (i + 1)) {
fRec43[i] = ((fSlow0 * fRec43[(i - 1)]) + (fSlow1 * fRec42[(i - 1)]));
fYec17[((i + fYec17_idx) & 2047)] = (fZec0[i] + (fSlow2 * fRec43[i]));
fRec42[i] = fYec17[(((i + fYec17_idx) - 1514) & 2047)];
}
fYec17_idx_save = vsize;
for (int j61 = 0; (j61 < 4); j61 = (j61 + 1)) {
fRec43_perm[j61] = fRec43_tmp[(vsize + j61)];
}
for (int j63 = 0; (j63 < 4); j63 = (j63 + 1)) {
fRec42_perm[j63] = fRec42_tmp[(vsize + j63)];
}
for (int j64 = 0; (j64 < 4); j64 = (j64 + 1)) {
fRec45_tmp[j64] = fRec45_perm[j64];
}
fYec18_idx = ((fYec18_idx + fYec18_idx_save) & 2047);
for (int j66 = 0; (j66 < 4); j66 = (j66 + 1)) {
fRec44_tmp[j66] = fRec44_perm[j66];
}
for (int i = 0; (i < vsize); i = (i + 1)) {
fRec45[i] = ((fSlow0 * fRec45[(i - 1)]) + (fSlow1 * fRec44[(i - 1)]));
fYec18[((i + fYec18_idx) & 2047)] = (fZec0[i] + (fSlow2 * fRec45[i]));
fRec44[i] = fYec18[(((i + fYec18_idx) - 1580) & 2047)];
}
fYec18_idx_save = vsize;
for (int j65 = 0; (j65 < 4); j65 = (j65 + 1)) {
fRec45_perm[j65] = fRec45_tmp[(vsize + j65)];
}
for (int j67 = 0; (j67 < 4); j67 = (j67 + 1)) {
fRec44_perm[j67] = fRec44_tmp[(vsize + j67)];
}
for (int j68 = 0; (j68 < 4); j68 = (j68 + 1)) {
fRec47_tmp[j68] = fRec47_perm[j68];
}
fYec19_idx = ((fYec19_idx + fYec19_idx_save) & 2047);
for (int j70 = 0; (j70 < 4); j70 = (j70 + 1)) {
fRec46_tmp[j70] = fRec46_perm[j70];
}
for (int i = 0; (i < vsize); i = (i + 1)) {
fRec47[i] = ((fSlow0 * fRec47[(i - 1)]) + (fSlow1 * fRec46[(i - 1)]));
fYec19[((i + fYec19_idx) & 2047)] = (fZec0[i] + (fSlow2 * fRec47[i]));
fRec46[i] = fYec19[(((i + fYec19_idx) - 1640) & 2047)];
}
fYec19_idx_save = vsize;
for (int j69 = 0; (j69 < 4); j69 = (j69 + 1)) {
fRec47_perm[j69] = fRec47_tmp[(vsize + j69)];
}
for (int j71 = 0; (j71 < 4); j71 = (j71 + 1)) {
fRec46_perm[j71] = fRec46_tmp[(vsize + j71)];
}
for (int i = 0; (i < vsize); i = (i + 1)) {
fZec1[i] = (((((((fRec8[i] + fRec10[i]) + fRec12[i]) + fRec14[i]) + fRec16[i]) + fRec18[i]) + fRec20[i]) + fRec22[i]);
}
for (int i = 0; (i < vsize); i = (i + 1)) {
fZec2[i] = (((((((fRec32[i] + fRec34[i]) + fRec36[i]) + fRec38[i]) + fRec40[i]) + fRec42[i]) + fRec44[i]) + fRec46[i]);
}
fYec8_idx = ((fYec8_idx + fYec8_idx_save) & 1023);
for (int j32 = 0; (j32 < 4); j32 = (j32 + 1)) {
fRec6_tmp[j32] = fRec6_perm[j32];
}
for (int i = 0; (i < vsize); i = (i + 1)) {
fYec8[((i + fYec8_idx) & 1023)] = (fZec1[i] + (0.5f * fRec6[(i - 1)]));
fRec6[i] = fYec8[(((i + fYec8_idx) - 556) & 1023)];
fRec7[i] = (fRec6[(i - 1)] - fZec1[i]);
}
fYec8_idx_save = vsize;
for (int j33 = 0; (j33 < 4); j33 = (j33 + 1)) {
fRec6_perm[j33] = fRec6_tmp[(vsize + j33)];
}
fYec20_idx = ((fYec20_idx + fYec20_idx_save) & 1023);
for (int j72 = 0; (j72 < 4); j72 = (j72 + 1)) {
fRec30_tmp[j72] = fRec30_perm[j72];
}
for (int i = 0; (i < vsize); i = (i + 1)) {
fYec20[((i + fYec20_idx) & 1023)] = (fZec2[i] + (0.5f * fRec30[(i - 1)]));
fRec30[i] = fYec20[(((i + fYec20_idx) - 579) & 1023)];
fRec31[i] = (fRec30[(i - 1)] - fZec2[i]);
}
fYec20_idx_save = vsize;
for (int j73 = 0; (j73 < 4); j73 = (j73 + 1)) {
fRec30_perm[j73] = fRec30_tmp[(vsize + j73)];
}
fYec9_idx = ((fYec9_idx + fYec9_idx_save) & 511);
for (int j34 = 0; (j34 < 4); j34 = (j34 + 1)) {
fRec4_tmp[j34] = fRec4_perm[j34];
}
for (int i = 0; (i < vsize); i = (i + 1)) {
fYec9[((i + fYec9_idx) & 511)] = (fRec7[i] + (0.5f * fRec4[(i - 1)]));
fRec4[i] = fYec9[(((i + fYec9_idx) - 441) & 511)];
fRec5[i] = (fRec4[(i - 1)] - fRec7[i]);
}
fYec9_idx_save = vsize;
for (int j35 = 0; (j35 < 4); j35 = (j35 + 1)) {
fRec4_perm[j35] = fRec4_tmp[(vsize + j35)];
}
fYec21_idx = ((fYec21_idx + fYec21_idx_save) & 511);
for (int j74 = 0; (j74 < 4); j74 = (j74 + 1)) {
fRec28_tmp[j74] = fRec28_perm[j74];
}
for (int i = 0; (i < vsize); i = (i + 1)) {
fYec21[((i + fYec21_idx) & 511)] = (fRec31[i] + (0.5f * fRec28[(i - 1)]));
fRec28[i] = fYec21[(((i + fYec21_idx) - 464) & 511)];
fRec29[i] = (fRec28[(i - 1)] - fRec31[i]);
}
fYec21_idx_save = vsize;
for (int j75 = 0; (j75 < 4); j75 = (j75 + 1)) {
fRec28_perm[j75] = fRec28_tmp[(vsize + j75)];
}
fYec10_idx = ((fYec10_idx + fYec10_idx_save) & 511);
for (int j36 = 0; (j36 < 4); j36 = (j36 + 1)) {
fRec2_tmp[j36] = fRec2_perm[j36];
}
for (int i = 0; (i < vsize); i = (i + 1)) {
fYec10[((i + fYec10_idx) & 511)] = (fRec5[i] + (0.5f * fRec2[(i - 1)]));
fRec2[i] = fYec10[(((i + fYec10_idx) - 341) & 511)];
fRec3[i] = (fRec2[(i - 1)] - fRec5[i]);
}
fYec10_idx_save = vsize;
for (int j37 = 0; (j37 < 4); j37 = (j37 + 1)) {
fRec2_perm[j37] = fRec2_tmp[(vsize + j37)];
}
fYec22_idx = ((fYec22_idx + fYec22_idx_save) & 511);
for (int j76 = 0; (j76 < 4); j76 = (j76 + 1)) {
fRec26_tmp[j76] = fRec26_perm[j76];
}
for (int i = 0; (i < vsize); i = (i + 1)) {
fYec22[((i + fYec22_idx) & 511)] = (fRec29[i] + (0.5f * fRec26[(i - 1)]));
fRec26[i] = fYec22[(((i + fYec22_idx) - 364) & 511)];
fRec27[i] = (fRec26[(i - 1)] - fRec29[i]);
}
fYec22_idx_save = vsize;
for (int j77 = 0; (j77 < 4); j77 = (j77 + 1)) {
fRec26_perm[j77] = fRec26_tmp[(vsize + j77)];
}
fYec11_idx = ((fYec11_idx + fYec11_idx_save) & 511);
for (int j38 = 0; (j38 < 4); j38 = (j38 + 1)) {
fRec0_tmp[j38] = fRec0_perm[j38];
}
for (int i = 0; (i < vsize); i = (i + 1)) {
fYec11[((i + fYec11_idx) & 511)] = (fRec3[i] + (0.5f * fRec0[(i - 1)]));
fRec0[i] = fYec11[(((i + fYec11_idx) - 225) & 511)];
fRec1[i] = (fRec0[(i - 1)] - fRec3[i]);
}
fYec11_idx_save = vsize;
for (int j39 = 0; (j39 < 4); j39 = (j39 + 1)) {
fRec0_perm[j39] = fRec0_tmp[(vsize + j39)];
}
fYec23_idx = ((fYec23_idx + fYec23_idx_save) & 511);
for (int j78 = 0; (j78 < 4); j78 = (j78 + 1)) {
fRec24_tmp[j78] = fRec24_perm[j78];
}
for (int i = 0; (i < vsize); i = (i + 1)) {
fYec23[((i + fYec23_idx) & 511)] = (fRec27[i] + (0.5f * fRec24[(i - 1)]));
fRec24[i] = fYec23[(((i + fYec23_idx) - 248) & 511)];
fRec25[i] = (fRec24[(i - 1)] - fRec27[i]);
}
fYec23_idx_save = vsize;
for (int j79 = 0; (j79 < 4); j79 = (j79 + 1)) {
fRec24_perm[j79] = fRec24_tmp[(vsize + j79)];
}
for (int i = 0; (i < vsize); i = (i + 1)) {
output0[i] = FAUSTFLOAT(((fSlow3 * fRec1[i]) + (fSlow4 * float(input0[i]))));
}
for (int i = 0; (i < vsize); i = (i + 1)) {
output1[i] = FAUSTFLOAT(((fSlow3 * fRec25[i]) + (fSlow4 * float(input1[i]))));
}
}
if (vindex < count) {
FAUSTFLOAT *input0 = &input0_ptr[vindex];
FAUSTFLOAT *input1 = &input1_ptr[vindex];
FAUSTFLOAT *output0 = &output0_ptr[vindex];
FAUSTFLOAT *output1 = &output1_ptr[vindex];
int vsize = (count - vindex);
for (int i = 0; (i < vsize); i = (i + 1)) {
fZec0[i] = (0.0149999997f * (float(input0[i]) + float(input1[i])));
}
for (int j0 = 0; (j0 < 4); j0 = (j0 + 1)) {
fRec9_tmp[j0] = fRec9_perm[j0];
}
fYec0_idx = ((fYec0_idx + fYec0_idx_save) & 2047);
for (int j2 = 0; (j2 < 4); j2 = (j2 + 1)) {
fRec8_tmp[j2] = fRec8_perm[j2];
}
for (int i = 0; (i < vsize); i = (i + 1)) {
fRec9[i] = ((fSlow0 * fRec9[(i - 1)]) + (fSlow1 * fRec8[(i - 1)]));
fYec0[((i + fYec0_idx) & 2047)] = ((fSlow2 * fRec9[i]) + fZec0[i]);
fRec8[i] = fYec0[(((i + fYec0_idx) - 1116) & 2047)];
}
fYec0_idx_save = vsize;
for (int j1 = 0; (j1 < 4); j1 = (j1 + 1)) {
fRec9_perm[j1] = fRec9_tmp[(vsize + j1)];
}
for (int j3 = 0; (j3 < 4); j3 = (j3 + 1)) {
fRec8_perm[j3] = fRec8_tmp[(vsize + j3)];
}
for (int j4 = 0; (j4 < 4); j4 = (j4 + 1)) {
fRec11_tmp[j4] = fRec11_perm[j4];
}
fYec1_idx = ((fYec1_idx + fYec1_idx_save) & 2047);
for (int j6 = 0; (j6 < 4); j6 = (j6 + 1)) {
fRec10_tmp[j6] = fRec10_perm[j6];
}
for (int i = 0; (i < vsize); i = (i + 1)) {
fRec11[i] = ((fSlow0 * fRec11[(i - 1)]) + (fSlow1 * fRec10[(i - 1)]));
fYec1[((i + fYec1_idx) & 2047)] = (fZec0[i] + (fSlow2 * fRec11[i]));
fRec10[i] = fYec1[(((i + fYec1_idx) - 1188) & 2047)];
}
fYec1_idx_save = vsize;
for (int j5 = 0; (j5 < 4); j5 = (j5 + 1)) {
fRec11_perm[j5] = fRec11_tmp[(vsize + j5)];
}
for (int j7 = 0; (j7 < 4); j7 = (j7 + 1)) {
fRec10_perm[j7] = fRec10_tmp[(vsize + j7)];
}
for (int j8 = 0; (j8 < 4); j8 = (j8 + 1)) {
fRec13_tmp[j8] = fRec13_perm[j8];
}
fYec2_idx = ((fYec2_idx + fYec2_idx_save) & 2047);
for (int j10 = 0; (j10 < 4); j10 = (j10 + 1)) {
fRec12_tmp[j10] = fRec12_perm[j10];
}
for (int i = 0; (i < vsize); i = (i + 1)) {
fRec13[i] = ((fSlow0 * fRec13[(i - 1)]) + (fSlow1 * fRec12[(i - 1)]));
fYec2[((i + fYec2_idx) & 2047)] = (fZec0[i] + (fSlow2 * fRec13[i]));
fRec12[i] = fYec2[(((i + fYec2_idx) - 1277) & 2047)];
}
fYec2_idx_save = vsize;
for (int j9 = 0; (j9 < 4); j9 = (j9 + 1)) {
fRec13_perm[j9] = fRec13_tmp[(vsize + j9)];
}
for (int j11 = 0; (j11 < 4); j11 = (j11 + 1)) {
fRec12_perm[j11] = fRec12_tmp[(vsize + j11)];
}
for (int j12 = 0; (j12 < 4); j12 = (j12 + 1)) {
fRec15_tmp[j12] = fRec15_perm[j12];
}
fYec3_idx = ((fYec3_idx + fYec3_idx_save) & 2047);
for (int j14 = 0; (j14 < 4); j14 = (j14 + 1)) {
fRec14_tmp[j14] = fRec14_perm[j14];
}
for (int i = 0; (i < vsize); i = (i + 1)) {
fRec15[i] = ((fSlow0 * fRec15[(i - 1)]) + (fSlow1 * fRec14[(i - 1)]));
fYec3[((i + fYec3_idx) & 2047)] = (fZec0[i] + (fSlow2 * fRec15[i]));
fRec14[i] = fYec3[(((i + fYec3_idx) - 1356) & 2047)];
}
fYec3_idx_save = vsize;
for (int j13 = 0; (j13 < 4); j13 = (j13 + 1)) {
fRec15_perm[j13] = fRec15_tmp[(vsize + j13)];
}
for (int j15 = 0; (j15 < 4); j15 = (j15 + 1)) {
fRec14_perm[j15] = fRec14_tmp[(vsize + j15)];
}
for (int j16 = 0; (j16 < 4); j16 = (j16 + 1)) {
fRec17_tmp[j16] = fRec17_perm[j16];
}
fYec4_idx = ((fYec4_idx + fYec4_idx_save) & 2047);
for (int j18 = 0; (j18 < 4); j18 = (j18 + 1)) {
fRec16_tmp[j18] = fRec16_perm[j18];
}
for (int i = 0; (i < vsize); i = (i + 1)) {
fRec17[i] = ((fSlow0 * fRec17[(i - 1)]) + (fSlow1 * fRec16[(i - 1)]));
fYec4[((i + fYec4_idx) & 2047)] = (fZec0[i] + (fSlow2 * fRec17[i]));
fRec16[i] = fYec4[(((i + fYec4_idx) - 1422) & 2047)];
}
fYec4_idx_save = vsize;
for (int j17 = 0; (j17 < 4); j17 = (j17 + 1)) {
fRec17_perm[j17] = fRec17_tmp[(vsize + j17)];
}
for (int j19 = 0; (j19 < 4); j19 = (j19 + 1)) {
fRec16_perm[j19] = fRec16_tmp[(vsize + j19)];
}
for (int j20 = 0; (j20 < 4); j20 = (j20 + 1)) {
fRec19_tmp[j20] = fRec19_perm[j20];
}
fYec5_idx = ((fYec5_idx + fYec5_idx_save) & 2047);
for (int j22 = 0; (j22 < 4); j22 = (j22 + 1)) {
fRec18_tmp[j22] = fRec18_perm[j22];
}
for (int i = 0; (i < vsize); i = (i + 1)) {
fRec19[i] = ((fSlow0 * fRec19[(i - 1)]) + (fSlow1 * fRec18[(i - 1)]));
fYec5[((i + fYec5_idx) & 2047)] = (fZec0[i] + (fSlow2 * fRec19[i]));
fRec18[i] = fYec5[(((i + fYec5_idx) - 1491) & 2047)];
}
fYec5_idx_save = vsize;
for (int j21 = 0; (j21 < 4); j21 = (j21 + 1)) {
fRec19_perm[j21] = fRec19_tmp[(vsize + j21)];
}
for (int j23 = 0; (j23 < 4); j23 = (j23 + 1)) {
fRec18_perm[j23] = fRec18_tmp[(vsize + j23)];
}
for (int j24 = 0; (j24 < 4); j24 = (j24 + 1)) {
fRec21_tmp[j24] = fRec21_perm[j24];
}
fYec6_idx = ((fYec6_idx + fYec6_idx_save) & 2047);
for (int j26 = 0; (j26 < 4); j26 = (j26 + 1)) {
fRec20_tmp[j26] = fRec20_perm[j26];
}
for (int i = 0; (i < vsize); i = (i + 1)) {
fRec21[i] = ((fSlow0 * fRec21[(i - 1)]) + (fSlow1 * fRec20[(i - 1)]));
fYec6[((i + fYec6_idx) & 2047)] = (fZec0[i] + (fSlow2 * fRec21[i]));
fRec20[i] = fYec6[(((i + fYec6_idx) - 1557) & 2047)];
}
fYec6_idx_save = vsize;
for (int j25 = 0; (j25 < 4); j25 = (j25 + 1)) {
fRec21_perm[j25] = fRec21_tmp[(vsize + j25)];
}
for (int j27 = 0; (j27 < 4); j27 = (j27 + 1)) {
fRec20_perm[j27] = fRec20_tmp[(vsize + j27)];
}
for (int j28 = 0; (j28 < 4); j28 = (j28 + 1)) {
fRec23_tmp[j28] = fRec23_perm[j28];
}
fYec7_idx = ((fYec7_idx + fYec7_idx_save) & 2047);
for (int j30 = 0; (j30 < 4); j30 = (j30 + 1)) {
fRec22_tmp[j30] = fRec22_perm[j30];
}
for (int i = 0; (i < vsize); i = (i + 1)) {
fRec23[i] = ((fSlow0 * fRec23[(i - 1)]) + (fSlow1 * fRec22[(i - 1)]));
fYec7[((i + fYec7_idx) & 2047)] = (fZec0[i] + (fSlow2 * fRec23[i]));
fRec22[i] = fYec7[(((i + fYec7_idx) - 1617) & 2047)];
}
fYec7_idx_save = vsize;
for (int j29 = 0; (j29 < 4); j29 = (j29 + 1)) {
fRec23_perm[j29] = fRec23_tmp[(vsize + j29)];
}
for (int j31 = 0; (j31 < 4); j31 = (j31 + 1)) {
fRec22_perm[j31] = fRec22_tmp[(vsize + j31)];
}
for (int j40 = 0; (j40 < 4); j40 = (j40 + 1)) {
fRec33_tmp[j40] = fRec33_perm[j40];
}
fYec12_idx = ((fYec12_idx + fYec12_idx_save) & 2047);
for (int j42 = 0; (j42 < 4); j42 = (j42 + 1)) {
fRec32_tmp[j42] = fRec32_perm[j42];
}
for (int i = 0; (i < vsize); i = (i + 1)) {
fRec33[i] = ((fSlow0 * fRec33[(i - 1)]) + (fSlow1 * fRec32[(i - 1)]));
fYec12[((i + fYec12_idx) & 2047)] = (fZec0[i] + (fSlow2 * fRec33[i]));
fRec32[i] = fYec12[(((i + fYec12_idx) - 1139) & 2047)];
}
fYec12_idx_save = vsize;
for (int j41 = 0; (j41 < 4); j41 = (j41 + 1)) {
fRec33_perm[j41] = fRec33_tmp[(vsize + j41)];
}
for (int j43 = 0; (j43 < 4); j43 = (j43 + 1)) {
fRec32_perm[j43] = fRec32_tmp[(vsize + j43)];
}
for (int j44 = 0; (j44 < 4); j44 = (j44 + 1)) {
fRec35_tmp[j44] = fRec35_perm[j44];
}
fYec13_idx = ((fYec13_idx + fYec13_idx_save) & 2047);
for (int j46 = 0; (j46 < 4); j46 = (j46 + 1)) {
fRec34_tmp[j46] = fRec34_perm[j46];
}
for (int i = 0; (i < vsize); i = (i + 1)) {
fRec35[i] = ((fSlow0 * fRec35[(i - 1)]) + (fSlow1 * fRec34[(i - 1)]));
fYec13[((i + fYec13_idx) & 2047)] = (fZec0[i] + (fSlow2 * fRec35[i]));
fRec34[i] = fYec13[(((i + fYec13_idx) - 1211) & 2047)];
}
fYec13_idx_save = vsize;
for (int j45 = 0; (j45 < 4); j45 = (j45 + 1)) {
fRec35_perm[j45] = fRec35_tmp[(vsize + j45)];
}
for (int j47 = 0; (j47 < 4); j47 = (j47 + 1)) {
fRec34_perm[j47] = fRec34_tmp[(vsize + j47)];
}
for (int j48 = 0; (j48 < 4); j48 = (j48 + 1)) {
fRec37_tmp[j48] = fRec37_perm[j48];
}
fYec14_idx = ((fYec14_idx + fYec14_idx_save) & 2047);
for (int j50 = 0; (j50 < 4); j50 = (j50 + 1)) {
fRec36_tmp[j50] = fRec36_perm[j50];
}
for (int i = 0; (i < vsize); i = (i + 1)) {
fRec37[i] = ((fSlow0 * fRec37[(i - 1)]) + (fSlow1 * fRec36[(i - 1)]));
fYec14[((i + fYec14_idx) & 2047)] = (fZec0[i] + (fSlow2 * fRec37[i]));
fRec36[i] = fYec14[(((i + fYec14_idx) - 1300) & 2047)];
}
fYec14_idx_save = vsize;
for (int j49 = 0; (j49 < 4); j49 = (j49 + 1)) {
fRec37_perm[j49] = fRec37_tmp[(vsize + j49)];
}
for (int j51 = 0; (j51 < 4); j51 = (j51 + 1)) {
fRec36_perm[j51] = fRec36_tmp[(vsize + j51)];
}
for (int j52 = 0; (j52 < 4); j52 = (j52 + 1)) {
fRec39_tmp[j52] = fRec39_perm[j52];
}
fYec15_idx = ((fYec15_idx + fYec15_idx_save) & 2047);
for (int j54 = 0; (j54 < 4); j54 = (j54 + 1)) {
fRec38_tmp[j54] = fRec38_perm[j54];
}
for (int i = 0; (i < vsize); i = (i + 1)) {
fRec39[i] = ((fSlow0 * fRec39[(i - 1)]) + (fSlow1 * fRec38[(i - 1)]));
fYec15[((i + fYec15_idx) & 2047)] = (fZec0[i] + (fSlow2 * fRec39[i]));
fRec38[i] = fYec15[(((i + fYec15_idx) - 1379) & 2047)];
}
fYec15_idx_save = vsize;
for (int j53 = 0; (j53 < 4); j53 = (j53 + 1)) {
fRec39_perm[j53] = fRec39_tmp[(vsize + j53)];
}
for (int j55 = 0; (j55 < 4); j55 = (j55 + 1)) {
fRec38_perm[j55] = fRec38_tmp[(vsize + j55)];
}
for (int j56 = 0; (j56 < 4); j56 = (j56 + 1)) {
fRec41_tmp[j56] = fRec41_perm[j56];
}
fYec16_idx = ((fYec16_idx + fYec16_idx_save) & 2047);
for (int j58 = 0; (j58 < 4); j58 = (j58 + 1)) {
fRec40_tmp[j58] = fRec40_perm[j58];
}
for (int i = 0; (i < vsize); i = (i + 1)) {
fRec41[i] = ((fSlow0 * fRec41[(i - 1)]) + (fSlow1 * fRec40[(i - 1)]));
fYec16[((i + fYec16_idx) & 2047)] = (fZec0[i] + (fSlow2 * fRec41[i]));
fRec40[i] = fYec16[(((i + fYec16_idx) - 1445) & 2047)];
}
fYec16_idx_save = vsize;
for (int j57 = 0; (j57 < 4); j57 = (j57 + 1)) {
fRec41_perm[j57] = fRec41_tmp[(vsize + j57)];
}
for (int j59 = 0; (j59 < 4); j59 = (j59 + 1)) {
fRec40_perm[j59] = fRec40_tmp[(vsize + j59)];
}
for (int j60 = 0; (j60 < 4); j60 = (j60 + 1)) {
fRec43_tmp[j60] = fRec43_perm[j60];
}
fYec17_idx = ((fYec17_idx + fYec17_idx_save) & 2047);
for (int j62 = 0; (j62 < 4); j62 = (j62 + 1)) {
fRec42_tmp[j62] = fRec42_perm[j62];
}
for (int i = 0; (i < vsize); i = (i + 1)) {
fRec43[i] = ((fSlow0 * fRec43[(i - 1)]) + (fSlow1 * fRec42[(i - 1)]));
fYec17[((i + fYec17_idx) & 2047)] = (fZec0[i] + (fSlow2 * fRec43[i]));
fRec42[i] = fYec17[(((i + fYec17_idx) - 1514) & 2047)];
}
fYec17_idx_save = vsize;
for (int j61 = 0; (j61 < 4); j61 = (j61 + 1)) {
fRec43_perm[j61] = fRec43_tmp[(vsize + j61)];
}
for (int j63 = 0; (j63 < 4); j63 = (j63 + 1)) {
fRec42_perm[j63] = fRec42_tmp[(vsize + j63)];
}
for (int j64 = 0; (j64 < 4); j64 = (j64 + 1)) {
fRec45_tmp[j64] = fRec45_perm[j64];
}
fYec18_idx = ((fYec18_idx + fYec18_idx_save) & 2047);
for (int j66 = 0; (j66 < 4); j66 = (j66 + 1)) {
fRec44_tmp[j66] = fRec44_perm[j66];
}
for (int i = 0; (i < vsize); i = (i + 1)) {
fRec45[i] = ((fSlow0 * fRec45[(i - 1)]) + (fSlow1 * fRec44[(i - 1)]));
fYec18[((i + fYec18_idx) & 2047)] = (fZec0[i] + (fSlow2 * fRec45[i]));
fRec44[i] = fYec18[(((i + fYec18_idx) - 1580) & 2047)];
}
fYec18_idx_save = vsize;
for (int j65 = 0; (j65 < 4); j65 = (j65 + 1)) {
fRec45_perm[j65] = fRec45_tmp[(vsize + j65)];
}
for (int j67 = 0; (j67 < 4); j67 = (j67 + 1)) {
fRec44_perm[j67] = fRec44_tmp[(vsize + j67)];
}
for (int j68 = 0; (j68 < 4); j68 = (j68 + 1)) {
fRec47_tmp[j68] = fRec47_perm[j68];
}
fYec19_idx = ((fYec19_idx + fYec19_idx_save) & 2047);
for (int j70 = 0; (j70 < 4); j70 = (j70 + 1)) {
fRec46_tmp[j70] = fRec46_perm[j70];
}
for (int i = 0; (i < vsize); i = (i + 1)) {
fRec47[i] = ((fSlow0 * fRec47[(i - 1)]) + (fSlow1 * fRec46[(i - 1)]));
fYec19[((i + fYec19_idx) & 2047)] = (fZec0[i] + (fSlow2 * fRec47[i]));
fRec46[i] = fYec19[(((i + fYec19_idx) - 1640) & 2047)];
}
fYec19_idx_save = vsize;
for (int j69 = 0; (j69 < 4); j69 = (j69 + 1)) {
fRec47_perm[j69] = fRec47_tmp[(vsize + j69)];
}
for (int j71 = 0; (j71 < 4); j71 = (j71 + 1)) {
fRec46_perm[j71] = fRec46_tmp[(vsize + j71)];
}
for (int i = 0; (i < vsize); i = (i + 1)) {
fZec1[i] = (((((((fRec8[i] + fRec10[i]) + fRec12[i]) + fRec14[i]) + fRec16[i]) + fRec18[i]) + fRec20[i]) + fRec22[i]);
}
for (int i = 0; (i < vsize); i = (i + 1)) {
fZec2[i] = (((((((fRec32[i] + fRec34[i]) + fRec36[i]) + fRec38[i]) + fRec40[i]) + fRec42[i]) + fRec44[i]) + fRec46[i]);
}
fYec8_idx = ((fYec8_idx + fYec8_idx_save) & 1023);
for (int j32 = 0; (j32 < 4); j32 = (j32 + 1)) {
fRec6_tmp[j32] = fRec6_perm[j32];
}
for (int i = 0; (i < vsize); i = (i + 1)) {
fYec8[((i + fYec8_idx) & 1023)] = (fZec1[i] + (0.5f * fRec6[(i - 1)]));
fRec6[i] = fYec8[(((i + fYec8_idx) - 556) & 1023)];
fRec7[i] = (fRec6[(i - 1)] - fZec1[i]);
}
fYec8_idx_save = vsize;
for (int j33 = 0; (j33 < 4); j33 = (j33 + 1)) {
fRec6_perm[j33] = fRec6_tmp[(vsize + j33)];
}
fYec20_idx = ((fYec20_idx + fYec20_idx_save) & 1023);
for (int j72 = 0; (j72 < 4); j72 = (j72 + 1)) {
fRec30_tmp[j72] = fRec30_perm[j72];
}
for (int i = 0; (i < vsize); i = (i + 1)) {
fYec20[((i + fYec20_idx) & 1023)] = (fZec2[i] + (0.5f * fRec30[(i - 1)]));
fRec30[i] = fYec20[(((i + fYec20_idx) - 579) & 1023)];
fRec31[i] = (fRec30[(i - 1)] - fZec2[i]);
}
fYec20_idx_save = vsize;
for (int j73 = 0; (j73 < 4); j73 = (j73 + 1)) {
fRec30_perm[j73] = fRec30_tmp[(vsize + j73)];
}
fYec9_idx = ((fYec9_idx + fYec9_idx_save) & 511);
for (int j34 = 0; (j34 < 4); j34 = (j34 + 1)) {
fRec4_tmp[j34] = fRec4_perm[j34];
}
for (int i = 0; (i < vsize); i = (i + 1)) {
fYec9[((i + fYec9_idx) & 511)] = (fRec7[i] + (0.5f * fRec4[(i - 1)]));
fRec4[i] = fYec9[(((i + fYec9_idx) - 441) & 511)];
fRec5[i] = (fRec4[(i - 1)] - fRec7[i]);
}
fYec9_idx_save = vsize;
for (int j35 = 0; (j35 < 4); j35 = (j35 + 1)) {
fRec4_perm[j35] = fRec4_tmp[(vsize + j35)];
}
fYec21_idx = ((fYec21_idx + fYec21_idx_save) & 511);
for (int j74 = 0; (j74 < 4); j74 = (j74 + 1)) {
fRec28_tmp[j74] = fRec28_perm[j74];
}
for (int i = 0; (i < vsize); i = (i + 1)) {
fYec21[((i + fYec21_idx) & 511)] = (fRec31[i] + (0.5f * fRec28[(i - 1)]));
fRec28[i] = fYec21[(((i + fYec21_idx) - 464) & 511)];
fRec29[i] = (fRec28[(i - 1)] - fRec31[i]);
}
fYec21_idx_save = vsize;
for (int j75 = 0; (j75 < 4); j75 = (j75 + 1)) {
fRec28_perm[j75] = fRec28_tmp[(vsize + j75)];
}
fYec10_idx = ((fYec10_idx + fYec10_idx_save) & 511);
for (int j36 = 0; (j36 < 4); j36 = (j36 + 1)) {
fRec2_tmp[j36] = fRec2_perm[j36];
}
for (int i = 0; (i < vsize); i = (i + 1)) {
fYec10[((i + fYec10_idx) & 511)] = (fRec5[i] + (0.5f * fRec2[(i - 1)]));
fRec2[i] = fYec10[(((i + fYec10_idx) - 341) & 511)];
fRec3[i] = (fRec2[(i - 1)] - fRec5[i]);
}
fYec10_idx_save = vsize;
for (int j37 = 0; (j37 < 4); j37 = (j37 + 1)) {
fRec2_perm[j37] = fRec2_tmp[(vsize + j37)];
}
fYec22_idx = ((fYec22_idx + fYec22_idx_save) & 511);
for (int j76 = 0; (j76 < 4); j76 = (j76 + 1)) {
fRec26_tmp[j76] = fRec26_perm[j76];
}
for (int i = 0; (i < vsize); i = (i + 1)) {
fYec22[((i + fYec22_idx) & 511)] = (fRec29[i] + (0.5f * fRec26[(i - 1)]));
fRec26[i] = fYec22[(((i + fYec22_idx) - 364) & 511)];
fRec27[i] = (fRec26[(i - 1)] - fRec29[i]);
}
fYec22_idx_save = vsize;
for (int j77 = 0; (j77 < 4); j77 = (j77 + 1)) {
fRec26_perm[j77] = fRec26_tmp[(vsize + j77)];
}
fYec11_idx = ((fYec11_idx + fYec11_idx_save) & 511);
for (int j38 = 0; (j38 < 4); j38 = (j38 + 1)) {
fRec0_tmp[j38] = fRec0_perm[j38];
}
for (int i = 0; (i < vsize); i = (i + 1)) {
fYec11[((i + fYec11_idx) & 511)] = (fRec3[i] + (0.5f * fRec0[(i - 1)]));
fRec0[i] = fYec11[(((i + fYec11_idx) - 225) & 511)];
fRec1[i] = (fRec0[(i - 1)] - fRec3[i]);
}
fYec11_idx_save = vsize;
for (int j39 = 0; (j39 < 4); j39 = (j39 + 1)) {
fRec0_perm[j39] = fRec0_tmp[(vsize + j39)];
}
fYec23_idx = ((fYec23_idx + fYec23_idx_save) & 511);
for (int j78 = 0; (j78 < 4); j78 = (j78 + 1)) {
fRec24_tmp[j78] = fRec24_perm[j78];
}
for (int i = 0; (i < vsize); i = (i + 1)) {
fYec23[((i + fYec23_idx) & 511)] = (fRec27[i] + (0.5f * fRec24[(i - 1)]));
fRec24[i] = fYec23[(((i + fYec23_idx) - 248) & 511)];
fRec25[i] = (fRec24[(i - 1)] - fRec27[i]);
}
fYec23_idx_save = vsize;
for (int j79 = 0; (j79 < 4); j79 = (j79 + 1)) {
fRec24_perm[j79] = fRec24_tmp[(vsize + j79)];
}
for (int i = 0; (i < vsize); i = (i + 1)) {
output0[i] = FAUSTFLOAT(((fSlow3 * fRec1[i]) + (fSlow4 * float(input0[i]))));
}
for (int i = 0; (i < vsize); i = (i + 1)) {
output1[i] = FAUSTFLOAT(((fSlow3 * fRec25[i]) + (fSlow4 * float(input1[i]))));
}
}
}
};
#endif