in pedalboard/juce_overrides/juce_PatchedMP3AudioFormat.cpp [1462:1547]
static void dct12(const float *in, float *out1, float *out2, const float *wi,
float *ts) noexcept {
{
ts[0] = out1[0];
ts[subBandLimit * 1] = out1[1];
ts[subBandLimit * 2] = out1[2];
ts[subBandLimit * 3] = out1[3];
ts[subBandLimit * 4] = out1[4];
ts[subBandLimit * 5] = out1[5];
DCT12Inputs inputs(in);
{
auto tmp1 = (inputs.in0 - inputs.in4);
auto tmp2 = (inputs.in1 - inputs.in5) * cos12[1];
auto tmp0 = tmp1 + tmp2;
tmp1 -= tmp2;
ts[16 * subBandLimit] = out1[16] + tmp0 * wi[10];
ts[13 * subBandLimit] = out1[13] + tmp0 * wi[7];
ts[7 * subBandLimit] = out1[7] + tmp1 * wi[1];
ts[10 * subBandLimit] = out1[10] + tmp1 * wi[4];
}
inputs.process();
ts[17 * subBandLimit] = out1[17] + inputs.in2 * wi[11];
ts[12 * subBandLimit] = out1[12] + inputs.in2 * wi[6];
ts[14 * subBandLimit] = out1[14] + inputs.in3 * wi[8];
ts[15 * subBandLimit] = out1[15] + inputs.in3 * wi[9];
ts[6 * subBandLimit] = out1[6] + inputs.in0 * wi[0];
ts[11 * subBandLimit] = out1[11] + inputs.in0 * wi[5];
ts[8 * subBandLimit] = out1[8] + inputs.in4 * wi[2];
ts[9 * subBandLimit] = out1[9] + inputs.in4 * wi[3];
}
{
DCT12Inputs inputs(++in);
auto tmp1 = (inputs.in0 - inputs.in4);
auto tmp2 = (inputs.in1 - inputs.in5) * cos12[1];
auto tmp0 = tmp1 + tmp2;
tmp1 -= tmp2;
out2[4] = tmp0 * wi[10];
out2[1] = tmp0 * wi[7];
ts[13 * subBandLimit] += tmp1 * wi[1];
ts[16 * subBandLimit] += tmp1 * wi[4];
inputs.process();
out2[5] = inputs.in2 * wi[11];
out2[0] = inputs.in2 * wi[6];
out2[2] = inputs.in3 * wi[8];
out2[3] = inputs.in3 * wi[9];
ts[12 * subBandLimit] += inputs.in0 * wi[0];
ts[17 * subBandLimit] += inputs.in0 * wi[5];
ts[14 * subBandLimit] += inputs.in4 * wi[2];
ts[15 * subBandLimit] += inputs.in4 * wi[5 - 2];
}
{
DCT12Inputs inputs(++in);
out2[12] = out2[13] = out2[14] = out2[15] = out2[16] = out2[17] = 0;
auto tmp1 = (inputs.in0 - inputs.in4);
auto tmp2 = (inputs.in1 - inputs.in5) * cos12[1];
auto tmp0 = tmp1 + tmp2;
tmp1 -= tmp2;
out2[10] = tmp0 * wi[10];
out2[7] = tmp0 * wi[7];
out2[1] += tmp1 * wi[1];
out2[4] += tmp1 * wi[4];
inputs.process();
out2[11] = inputs.in2 * wi[11];
out2[6] = inputs.in2 * wi[6];
out2[8] = inputs.in3 * wi[8];
out2[9] = inputs.in3 * wi[9];
out2[0] += inputs.in0 * wi[0];
out2[5] += inputs.in0 * wi[5];
out2[2] += inputs.in4 * wi[2];
out2[3] += inputs.in4 * wi[3];
}
}