diff --git a/src/matrixMath.c b/src/matrixMath.c index 7c1343e..4e2d0eb 100644 --- a/src/matrixMath.c +++ b/src/matrixMath.c @@ -130,7 +130,7 @@ void multiplyAny(GLfloat* out, GLfloat* A, GLfloat* B, int wA, int hA, int wB) { for (int i = 0; i < sizeOut; i++) { result[i] = 0; for (int j = 0; j < wA; j++) { - result[i] += A[j * hA + i % hA] * B[j + i / hA * wB]; + result[i] += A[j * hA + i % hA] * B[j + i / hA * wA]; } } memcpy(out, result, sizeOut * sizeof(GLfloat)); diff --git a/src/test.c b/src/test.c index 79c1d36..af8dcf8 100644 --- a/src/test.c +++ b/src/test.c @@ -401,10 +401,10 @@ void testMultiplyAny() { GLfloat result[4] = {0, 0, 0, 0}; // 2x2 result matrix - GLfloat expectedResult[4] = {39, 54, - 69, 49}; + GLfloat expectedResult[4] = {76, 100, + 103, 136}; - multiplyAny(&result, &matrix1, &matrix2, 2, 3, 2); + multiplyAny(&result, &matrix1, &matrix2, 3, 2, 2); printTest("Multiply Any", sumDiffAny(result, expectedResult, 2, 2) < EPSILON); }