Add Matrix-Vector and Matrix-Matrix product
function mul to Matrix class.
This commit is contained in:
@@ -357,4 +357,32 @@ TEST_F(Matrix_Test, matrixCompare){
|
||||
EXPECT_EQ(C.getData()[2], 1);
|
||||
EXPECT_EQ(C.getData()[3], 0);
|
||||
|
||||
}
|
||||
|
||||
TEST_F(Matrix_Test, matrixfunction){
|
||||
double *dataA = new double[9]{1,6,9,4,1,0,5,8,1};
|
||||
double *dataB = new double[3]{1,2,3};
|
||||
Aurora::Matrix A = Aurora::Matrix::fromRawData(dataA, 3, 3);
|
||||
Aurora::Matrix B = Aurora::Matrix::fromRawData(dataB, 1, 3);
|
||||
auto C = B.mul(A);
|
||||
EXPECT_DOUBLE_EQ(C.getData()[0], 40);
|
||||
EXPECT_DOUBLE_EQ(C.getData()[1], 6);
|
||||
EXPECT_DOUBLE_EQ(C.getData()[2], 24);
|
||||
B.forceReshape(3, 1, 1);
|
||||
C = A.mul(B);
|
||||
EXPECT_DOUBLE_EQ(C.getData()[0], 24);
|
||||
EXPECT_DOUBLE_EQ(C.getData()[1], 32);
|
||||
EXPECT_DOUBLE_EQ(C.getData()[2], 12);
|
||||
double *dataD = new double[9]{2.1,3,9,-3,1,0,51,-8,1};
|
||||
Aurora::Matrix D = Aurora::Matrix::fromRawData(dataD, 3, 3);
|
||||
C = A.mul(D);
|
||||
EXPECT_DOUBLE_EQ(C.getData()[0], 59.1);
|
||||
EXPECT_DOUBLE_EQ(C.getData()[1], 87.6);
|
||||
EXPECT_DOUBLE_EQ(C.getData()[2], 27.9);
|
||||
EXPECT_DOUBLE_EQ(C.getData()[3], 1);
|
||||
EXPECT_DOUBLE_EQ(C.getData()[4], -17);
|
||||
EXPECT_DOUBLE_EQ(C.getData()[5], -27);
|
||||
EXPECT_DOUBLE_EQ(C.getData()[6], 24);
|
||||
EXPECT_DOUBLE_EQ(C.getData()[7], 306);
|
||||
EXPECT_DOUBLE_EQ(C.getData()[8], 460);
|
||||
}
|
||||
Reference in New Issue
Block a user