pub fn dct(samples: &[f32; 32], out0: &mut [f32], out1: &mut [f32]) {
let t0: [f32; 4] = [
samples[12] - samples[19],
samples[13] - samples[18],
samples[14] - samples[17],
samples[15] - samples[16],
];
let t1: [f32; 4] = [
samples[8] - samples[23],
samples[9] - samples[22],
samples[10] - samples[21],
samples[11] - samples[20],
];
let t2: [f32; 4] = [
samples[4] - samples[27],
samples[5] - samples[26],
samples[6] - samples[25],
samples[7] - samples[24],
];
let t3: [f32; 4] = [
samples[0] - samples[31],
samples[1] - samples[30],
samples[2] - samples[29],
samples[3] - samples[28],
];
let t4: [f32; 4] = [
samples[0] + samples[31],
samples[1] + samples[30],
samples[2] + samples[29],
samples[3] + samples[28],
];
let t5: [f32; 4] = [
samples[4] + samples[27],
samples[5] + samples[26],
samples[6] + samples[25],
samples[7] + samples[24],
];
let t6: [f32; 4] = [
samples[8] + samples[23],
samples[9] + samples[22],
samples[10] + samples[21],
samples[11] + samples[20],
];
let t7: [f32; 4] = [
samples[12] + samples[19],
samples[13] + samples[18],
samples[14] + samples[17],
samples[15] + samples[16],
];
let t8: [f32; 4] = [
t0[0] * f32::from_bits(1069414683),
t0[1] * f32::from_bits(1073984175),
t0[2] * f32::from_bits(1079645762),
t0[3] * f32::from_bits(1092815430),
];
let t9: [f32; 4] = [
t1[0] * f32::from_bits(1061067246),
t1[1] * f32::from_bits(1062657950),
t1[2] * f32::from_bits(1064892987),
t1[3] * f32::from_bits(1066774581),
];
let t10: [f32; 4] = [
t2[0] * f32::from_bits(1057855544),
t2[1] * f32::from_bits(1058356026),
t2[2] * f32::from_bits(1059019886),
t2[3] * f32::from_bits(1059897405),
];
let t11: [f32; 4] = [
t3[0] * f32::from_bits(1056974725),
t3[1] * f32::from_bits(1057056395),
t3[2] * f32::from_bits(1057223771),
t3[3] * f32::from_bits(1057485416),
];
let t12: [f32; 4] = [t5[0] - t6[3], t5[1] - t6[2], t5[2] - t6[1], t5[3] - t6[0]];
let t13: [f32; 4] = [t4[0] - t7[3], t4[1] - t7[2], t4[2] - t7[1], t4[3] - t7[0]];
let t14: [f32; 4] = [
t10[0] - t9[3],
t10[1] - t9[2],
t10[2] - t9[1],
t10[3] - t9[0],
];
let t15: [f32; 4] = [
t11[0] - t8[3],
t11[1] - t8[2],
t11[2] - t8[1],
t11[3] - t8[0],
];
let t16: [f32; 4] = [t4[0] + t7[3], t4[1] + t7[2], t4[2] + t7[1], t4[3] + t7[0]];
let t17: [f32; 4] = [t5[0] + t6[3], t5[1] + t6[2], t5[2] + t6[1], t5[3] + t6[0]];
let t18: [f32; 4] = [
t8[3] + t11[0],
t8[2] + t11[1],
t8[1] + t11[2],
t8[0] + t11[3],
];
let t19: [f32; 4] = [
t9[3] + t10[0],
t9[2] + t10[1],
t9[1] + t10[2],
t9[0] + t10[3],
];
let t20: [f32; 4] = [
t12[0] * f32::from_bits(1061799040),
t12[1] * f32::from_bits(1065862217),
t12[2] * f32::from_bits(1071413542),
t12[3] * f32::from_bits(1084439708),
];
let t21: [f32; 4] = [
t13[0] * f32::from_bits(1057005197),
t13[1] * f32::from_bits(1057342072),
t13[2] * f32::from_bits(1058087743),
t13[3] * f32::from_bits(1059427869),
];
let t22: [f32; 4] = [
t14[0] * f32::from_bits(1061799040),
t14[1] * f32::from_bits(1065862217),
t14[2] * f32::from_bits(1071413542),
t14[3] * f32::from_bits(1084439708),
];
let t23: [f32; 4] = [
t15[0] * f32::from_bits(1057005197),
t15[1] * f32::from_bits(1057342072),
t15[2] * f32::from_bits(1058087743),
t15[3] * f32::from_bits(1059427869),
];
let t24: [f32; 4] = [
t16[0] - t17[3],
t16[1] - t17[2],
t16[2] - t17[1],
t16[3] - t17[0],
];
let t25: [f32; 4] = [
t21[0] - t20[3],
t21[1] - t20[2],
t21[2] - t20[1],
t21[3] - t20[0],
];
let t26: [f32; 4] = [
t18[0] - t19[3],
t18[1] - t19[2],
t18[2] - t19[1],
t18[3] - t19[0],
];
let t27: [f32; 4] = [
t23[0] - t22[3],
t23[1] - t22[2],
t23[2] - t22[1],
t23[3] - t22[0],
];
let t28: [f32; 4] = [
t16[0] + t17[3],
t16[1] + t17[2],
t16[2] + t17[1],
t16[3] + t17[0],
];
let t29: [f32; 4] = [
t20[3] + t21[0],
t20[2] + t21[1],
t20[1] + t21[2],
t20[0] + t21[3],
];
let t30: [f32; 4] = [
t18[0] + t19[3],
t18[1] + t19[2],
t18[2] + t19[1],
t18[3] + t19[0],
];
let t31: [f32; 4] = [
t22[3] + t23[0],
t22[2] + t23[1],
t22[1] + t23[2],
t22[0] + t23[3],
];
let t32: [f32; 4] = [
t24[0] * f32::from_bits(1057128951),
t24[1] * f32::from_bits(1058664893),
t24[2] * f32::from_bits(1063675095),
t24[3] * f32::from_bits(1076102863),
];
let t33: [f32; 4] = [
t25[0] * f32::from_bits(1057128951),
t25[1] * f32::from_bits(1058664893),
t25[2] * f32::from_bits(1063675095),
t25[3] * f32::from_bits(1076102863),
];
let t34: [f32; 4] = [
t26[0] * f32::from_bits(1057128951),
t26[1] * f32::from_bits(1058664893),
t26[2] * f32::from_bits(1063675095),
t26[3] * f32::from_bits(1076102863),
];
let t35: [f32; 4] = [
t27[0] * f32::from_bits(1057128951),
t27[1] * f32::from_bits(1058664893),
t27[2] * f32::from_bits(1063675095),
t27[3] * f32::from_bits(1076102863),
];
let t36: [f32; 4] = [
t28[0] - t28[3],
t28[1] - t28[2],
t32[0] - t32[3],
t32[1] - t32[2],
];
let t37: [f32; 4] = [
t29[0] - t29[3],
t29[1] - t29[2],
t33[0] - t33[3],
t33[1] - t33[2],
];
let t38: [f32; 4] = [
t30[0] - t30[3],
t30[1] - t30[2],
t34[0] - t34[3],
t34[1] - t34[2],
];
let t39: [f32; 4] = [
t31[0] - t31[3],
t31[1] - t31[2],
t35[0] - t35[3],
t35[1] - t35[2],
];
let t40: [f32; 4] = [
t28[0] + t28[3],
t28[1] + t28[2],
t32[0] + t32[3],
t32[1] + t32[2],
];
let t41: [f32; 4] = [
t29[0] + t29[3],
t29[1] + t29[2],
t33[0] + t33[3],
t33[1] + t33[2],
];
let t42: [f32; 4] = [
t30[0] + t30[3],
t30[1] + t30[2],
t34[0] + t34[3],
t34[1] + t34[2],
];
let t43: [f32; 4] = [
t31[0] + t31[3],
t31[1] + t31[2],
t35[0] + t35[3],
t35[1] + t35[2],
];
let t44: [f32; 4] = [
t36[0] * f32::from_bits(1057655764),
t36[1] * f32::from_bits(1067924853),
t36[2] * f32::from_bits(1057655764),
t36[3] * f32::from_bits(1067924853),
];
let t45: [f32; 4] = [
t37[0] * f32::from_bits(1057655764),
t37[1] * f32::from_bits(1067924853),
t37[2] * f32::from_bits(1057655764),
t37[3] * f32::from_bits(1067924853),
];
let t46: [f32; 4] = [
t38[0] * f32::from_bits(1057655764),
t38[1] * f32::from_bits(1067924853),
t38[2] * f32::from_bits(1057655764),
t38[3] * f32::from_bits(1067924853),
];
let t47: [f32; 4] = [
t39[0] * f32::from_bits(1057655764),
t39[1] * f32::from_bits(1067924853),
t39[2] * f32::from_bits(1057655764),
t39[3] * f32::from_bits(1067924853),
];
let t48: [f32; 4] = [
t40[0] - t40[1],
t40[2] - t40[3],
t44[0] - t44[1],
t44[2] - t44[3],
];
let t49: [f32; 4] = [
t41[0] - t41[1],
t41[2] - t41[3],
t45[0] - t45[1],
t45[2] - t45[3],
];
let t50: [f32; 4] = [
t42[0] - t42[1],
t42[2] - t42[3],
t46[0] - t46[1],
t46[2] - t46[3],
];
let t51: [f32; 4] = [
t43[0] - t43[1],
t43[2] - t43[3],
t47[0] - t47[1],
t47[2] - t47[3],
];
let t52: [f32; 4] = [
t40[0] + t40[1],
t40[2] + t40[3],
t44[0] + t44[1],
t44[2] + t44[3],
];
let t53: [f32; 4] = [
t41[0] + t41[1],
t41[2] + t41[3],
t45[0] + t45[1],
t45[2] + t45[3],
];
let t54: [f32; 4] = [
t42[0] + t42[1],
t42[2] + t42[3],
t46[0] + t46[1],
t46[2] + t46[3],
];
let t55: [f32; 4] = [
t43[0] + t43[1],
t43[2] + t43[3],
t47[0] + t47[1],
t47[2] + t47[3],
];
let t56: [f32; 4] = [
t48[0] * f32::from_bits(1060439283),
t48[1] * f32::from_bits(1060439283),
t48[2] * f32::from_bits(1060439283),
t48[3] * f32::from_bits(1060439283),
];
let t57: [f32; 4] = [
t49[0] * f32::from_bits(1060439283),
t49[1] * f32::from_bits(1060439283),
t49[2] * f32::from_bits(1060439283),
t49[3] * f32::from_bits(1060439283),
];
let t58: [f32; 4] = [
t50[0] * f32::from_bits(1060439283),
t50[1] * f32::from_bits(1060439283),
t50[2] * f32::from_bits(1060439283),
t50[3] * f32::from_bits(1060439283),
];
let t59: [f32; 4] = [
t51[0] * f32::from_bits(1060439283),
t51[1] * f32::from_bits(1060439283),
t51[2] * f32::from_bits(1060439283),
t51[3] * f32::from_bits(1060439283),
];
let t60: [f32; 4] = [
t52[2] + t56[2],
t52[3] + t56[3],
t53[2] + t57[2],
t53[3] + t57[3],
];
let t61: [f32; 4] = [
t54[2] + t58[2],
t54[3] + t58[3],
t55[2] + t59[2],
t55[3] + t59[3],
];
let t62: [f32; 4] = [
t52[1] + t60[1],
t56[1] + t56[3],
t60[1] + t56[1],
t56[3] + 0.0,
];
let t63: [f32; 4] = [
t53[1] + t60[3],
t57[1] + t57[3],
t60[3] + t57[1],
t57[3] + 0.0,
];
let t64: [f32; 4] = [
t54[1] + t61[1],
t58[1] + t58[3],
t61[1] + t58[1],
t58[3] + 0.0,
];
let t65: [f32; 4] = [
t55[1] + t61[3],
t59[1] + t59[3],
t61[3] + t59[1],
t59[3] + 0.0,
];
let t66: [f32; 4] = [
t53[0] + t63[0],
t57[0] + t63[1],
t60[2] + t63[2],
t57[2] + t63[3],
];
let t67: [f32; 4] = [
t63[0] + t60[2],
t63[1] + t57[2],
t63[2] + t57[0],
t63[3] + 0.0,
];
let t68: [f32; 4] = [
t55[0] + t65[0],
t59[0] + t65[1],
t61[2] + t65[2],
t59[2] + t65[3],
];
let t69: [f32; 4] = [
t65[0] + t61[2],
t65[1] + t59[2],
t65[2] + t59[0],
t65[3] + 0.0,
];
let t70: [f32; 4] = [
t54[0] + t68[0],
t58[0] + t68[1],
t61[0] + t68[2],
t58[2] + t68[3],
];
let t71: [f32; 4] = [
t68[0] + t64[0],
t68[1] + t64[1],
t68[2] + t64[2],
t68[3] + t64[3],
];
let t72: [f32; 4] = [
t64[0] + t69[0],
t64[1] + t69[1],
t64[2] + t69[2],
t64[3] + t69[3],
];
let t73: [f32; 4] = [
t69[0] + t61[0],
t69[1] + t58[2],
t69[2] + t58[0],
t69[3] + 0.0,
];
out0[0] = t56[0];
out0[16] = t73[2];
out0[32] = t67[2];
out0[48] = t72[2];
out0[64] = t62[2];
out0[80] = t71[2];
out0[96] = t66[2];
out0[112] = t70[2];
out0[128] = t60[0];
out0[144] = t73[0];
out0[160] = t67[0];
out0[176] = t72[0];
out0[192] = t62[0];
out0[208] = t71[0];
out0[224] = t66[0];
out0[240] = t70[0];
out0[256] = t52[0];
out1[0] = t56[0];
out1[16] = t70[1];
out1[32] = t66[1];
out1[48] = t71[1];
out1[64] = t62[1];
out1[80] = t72[1];
out1[96] = t67[1];
out1[112] = t73[1];
out1[128] = t56[2];
out1[144] = t70[3];
out1[160] = t66[3];
out1[176] = t71[3];
out1[192] = t62[3];
out1[208] = t72[3];
out1[224] = t67[3];
out1[240] = t73[3];
}