Add vecnorm and unitest
This commit is contained in:
@@ -902,3 +902,41 @@ TEST_F(Function1D_Cuda_Test, vertcat) {
|
||||
EXPECT_FLOAT_EQ(result.getDimSize(0),6);
|
||||
EXPECT_FLOAT_EQ(result.getDimSize(1),1);
|
||||
}
|
||||
|
||||
TEST_F(Function1D_Cuda_Test, vecnorm) {
|
||||
//1Dim
|
||||
float *data = new float[3]{1,2,-3};
|
||||
auto matrix = Aurora::Matrix::fromRawData(data, 3).toDeviceMatrix();
|
||||
auto result = Aurora::vecnorm(matrix,Aurora::NormMethod::Norm1,1).toHostMatrix();
|
||||
EXPECT_FLOAT_AE(result.getData()[0],6);
|
||||
result = Aurora::vecnorm(matrix,Aurora::NormMethod::Norm2,1).toHostMatrix();
|
||||
EXPECT_FLOAT_AE(result.getData()[0],3.74166);
|
||||
|
||||
//2Dims
|
||||
data = new float[8]{1,2,-3,6,7,9,22.3,-8.6};
|
||||
matrix = Aurora::Matrix::fromRawData(data, 4,2).toDeviceMatrix();
|
||||
result = Aurora::vecnorm(matrix,Aurora::NormMethod::Norm1,1).toHostMatrix();
|
||||
EXPECT_FLOAT_AE(result.getData()[0],12);
|
||||
EXPECT_FLOAT_AE(result.getData()[1],46.9);
|
||||
result = Aurora::vecnorm(matrix,Aurora::NormMethod::Norm2,1).toHostMatrix();
|
||||
EXPECT_FLOAT_AE(result.getData()[0],7.0711);
|
||||
EXPECT_FLOAT_AE(result.getData()[1],26.4811);
|
||||
|
||||
//1Dim Complex
|
||||
data = new float[6]{1,2,-3,4,5,-6};
|
||||
matrix = Aurora::Matrix::fromRawData(data, 3,1,1,Aurora::Complex).toDeviceMatrix();
|
||||
result = Aurora::vecnorm(matrix,Aurora::NormMethod::Norm1,1).toHostMatrix();
|
||||
EXPECT_FLOAT_AE(result.getData()[0],15.0463);
|
||||
result = Aurora::vecnorm(matrix,Aurora::NormMethod::Norm2,1).toHostMatrix();
|
||||
EXPECT_FLOAT_AE(result.getData()[0],9.5394);
|
||||
|
||||
//2Dims Complex
|
||||
data = new float[12]{1,2,-3,4,5,-6,7,8,9,22,24,25};
|
||||
matrix = Aurora::Matrix::fromRawData(data, 3,2,1,Aurora::Complex).toDeviceMatrix();
|
||||
result = Aurora::vecnorm(matrix,Aurora::NormMethod::Norm1,1).toHostMatrix();
|
||||
EXPECT_FLOAT_AE(result.getData()[0],15.0463);
|
||||
EXPECT_FLOAT_AE(result.getData()[1],69.0553);
|
||||
result = Aurora::vecnorm(matrix,Aurora::NormMethod::Norm2,1).toHostMatrix();
|
||||
EXPECT_FLOAT_AE(result.getData()[0],9.5394);
|
||||
EXPECT_FLOAT_AE(result.getData()[1],43.3474);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user