Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Matrix multiplication using 1d arrays

I'm trying to multiply two matrices stored inside 1d arrays.

I'm using this function, but my program crashes, I assume due to an out of bounds error. However, I have no (easy) ability to debug, so I have to decide if my code is correct, and to me it seems it is...

void SampleUtils::multiplyMatrices(float* matA, int rA, int cA, float* matB,
        int rB, int cB, float* matC, int rC, int cC) {
    for (int i = 0; i <= rA; i++) {
        for (int j = 0; j <= cB; j++) {
            float sum = 0.0;
            for (int k = 0; k <= rB; k++)
                sum = sum + matA[i * cA + k] * matB[k * cB + j];
            matC[i * cC + j] = sum;
        }

    }

So, can anyone find out what I did wrong?

Thanks...

like image 708
Tom Teman Avatar asked Apr 20 '12 19:04

Tom Teman


1 Answers

Chances are you mean < instead of <= in your for loops.

like image 86
Fraser Avatar answered Oct 02 '22 00:10

Fraser