Hello(adsbygoogle = window.adsbygoogle || []).push({});

I found a bug in my code and can't figuring out the error. I tried debugging by showing the output of each variable step by step but I can't find my error. Here is what I have and what I want to do:

I have a matrix A:

0000

0101

1010

1111

And I have a matrix B:

10000

21000

30100

41100

20010

21010

40110

41110

30001

41001

30101

41101

40011

41011

40111

41111

The matrix B has 16 rows and 5 coloumns. The matrix A has 4 rows and 4 coloumns. Now I declare a matrix C that has 4 rows and 16 coloumns.

What I want to do is to calculate the inner product of each row from B with a corresponding row from A. With corresponding I mean that the first coloumn of B shoud define the row from A that I want to multiply. So the B matrix has in fact also four-dimensional vectors and the first element corresponds to the row of A. One could say this first coloumn of B is an index for choosing the row of A. Because C++ start counting by zero I substract one for my index. Here is my code:

Code (C):

std::vector< std::vector<int> > C(4, std::vector<int>(16));

std::vector<int> index(4);

std::vector<int> vectorA(4);

std::vector<int> vectorB(4);

for( int y = 0; y < 16; y++)

{

for(int i=0; i<4; ++i){

vectorA[i] = A[ B[y][0]-1 ][i];

}

for( int x = 1; x < 4; x++)

{

vectorB[x -1] = B[y][x];

}

C[ B[y][0] -1][index[ B[y][0] -1] ] = inner_product(vectorA.begin(), vectorA.end(), vectorB.begin(), 0);

index[B[y][0]-1] += 1;

}

This results in my matrix C:

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

1 1 2 0 0 0 0 0 0 0 0 0 0 0 0 0

1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0

2 2 3 1 2 1 2 2 3 0 0 0 0 0 0 0

The first two rows are correct but row three and four are false.

The correct solution has to be (maybe except of ordering in row 3 and 4):

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

1 1 2 0 0 0 0 0 0 0 0 0 0 0 0 0

1 1 2 0 0 0 0 0 0 0 0 0 0 0 0 0

4 3 3 2 3 2 3 2 2 0 0 0 0 0 0 0

Where is my problem? Please help, it drives me crazy :(

Thanks and greetings.

**Physics Forums | Science Articles, Homework Help, Discussion**

Join Physics Forums Today!

The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

# C/++/# Error in inner product of vectors and index

Have something to add?

Draft saved
Draft deleted

**Physics Forums | Science Articles, Homework Help, Discussion**