in src/main/java/org/apache/commons/imaging/formats/jpeg/decoder/Dct.java [114:206]
public static void forwardDct8x8(final float[] matrix) {
float a00;
float a10;
float a20;
float a30;
float a40;
float a50;
float a60;
float a70;
float a01;
float a11;
float a21;
float a31;
float neg_a41;
float a51;
float a61;
float a22;
float a23;
float mul5;
float a43;
float a53;
float a63;
float a54;
float a74;
for (int i = 0; i < 8; i++) {
a00 = matrix[8 * i] + matrix[8 * i + 7];
a10 = matrix[8 * i + 1] + matrix[8 * i + 6];
a20 = matrix[8 * i + 2] + matrix[8 * i + 5];
a30 = matrix[8 * i + 3] + matrix[8 * i + 4];
a40 = matrix[8 * i + 3] - matrix[8 * i + 4];
a50 = matrix[8 * i + 2] - matrix[8 * i + 5];
a60 = matrix[8 * i + 1] - matrix[8 * i + 6];
a70 = matrix[8 * i] - matrix[8 * i + 7];
a01 = a00 + a30;
a11 = a10 + a20;
a21 = a10 - a20;
a31 = a00 - a30;
neg_a41 = a40 + a50;
a51 = a50 + a60;
a61 = a60 + a70;
a22 = a21 + a31;
a23 = a22 * A1;
mul5 = (a61 - neg_a41) * A5;
a43 = neg_a41 * A2 - mul5;
a53 = a51 * A3;
a63 = a61 * A4 - mul5;
a54 = a70 + a53;
a74 = a70 - a53;
matrix[8 * i] = a01 + a11;
matrix[8 * i + 4] = a01 - a11;
matrix[8 * i + 2] = a31 + a23;
matrix[8 * i + 6] = a31 - a23;
matrix[8 * i + 5] = a74 + a43;
matrix[8 * i + 1] = a54 + a63;
matrix[8 * i + 7] = a54 - a63;
matrix[8 * i + 3] = a74 - a43;
}
for (int i = 0; i < 8; i++) {
a00 = matrix[i] + matrix[56 + i];
a10 = matrix[8 + i] + matrix[48 + i];
a20 = matrix[16 + i] + matrix[40 + i];
a30 = matrix[24 + i] + matrix[32 + i];
a40 = matrix[24 + i] - matrix[32 + i];
a50 = matrix[16 + i] - matrix[40 + i];
a60 = matrix[8 + i] - matrix[48 + i];
a70 = matrix[i] - matrix[56 + i];
a01 = a00 + a30;
a11 = a10 + a20;
a21 = a10 - a20;
a31 = a00 - a30;
neg_a41 = a40 + a50;
a51 = a50 + a60;
a61 = a60 + a70;
a22 = a21 + a31;
a23 = a22 * A1;
mul5 = (a61 - neg_a41) * A5;
a43 = neg_a41 * A2 - mul5;
a53 = a51 * A3;
a63 = a61 * A4 - mul5;
a54 = a70 + a53;
a74 = a70 - a53;
matrix[i] = a01 + a11;
matrix[32 + i] = a01 - a11;
matrix[16 + i] = a31 + a23;
matrix[48 + i] = a31 - a23;
matrix[40 + i] = a74 + a43;
matrix[8 + i] = a54 + a63;
matrix[56 + i] = a54 - a63;
matrix[24 + i] = a74 - a43;
}
}