Hi.
i've two (MxN-1) matrices and i want to merge them to one matrix For Example
matrix A: 0 1 matrix B: 1 2 result matrix: 0 2 2
3 4 4 5 3 8 5
6 7 7 8 6 14 8
The first column of the result matrix is the first column of the matrix A and the last column of the result matrix ist the last column of the matrix B and and the columns in the middle are the sum of both A and B. Here is my kernel:
kernel void merge(int dim1, float matrix1[][], float matrix2[][], out float res_matrix[][])
{
int2 index = instance().xy;
if(index.x == 0)
{
res_matrix[index.y][index.x] = matrix1[index.y][index.x+1];
}
else if(index.x+1 == (dim1-1))
{
res_matrix[index.y][index.x+1] = matrix2[index.y][index.x+1];
}
else
{
res_matrix[index.y][index.x] = matrix1[index.y][index.x]+matrix2[index.y][index.x];
}
}
Here is my C++ Code:
const int rank = 2;
unsigned int dim[] = { MAX, MAX-1 };
::brook::Stream<float>m1(rank,dim);
m1.read(matrix2);
::brook::Stream<float>m2(rank,dim);
m2.read(matrix3);
unsigned int dimF[] = { MAX, MAX };
::brook::Stream<float>m3(rank,dimF);
merge(MAX,m1,m2,m3);
But i get the wrong results. But i'm doing wrong?