Change sortrows logic.

This commit is contained in:
kradchen
2023-05-24 11:04:36 +08:00
parent 8b7bff2f00
commit e0aebc7922
3 changed files with 119 additions and 77 deletions

View File

@@ -291,27 +291,19 @@ TEST_F(Function2D_Test, sort) {
}
TEST_F(Function2D_Test, sortrows) {
double *dataB = new double[16]{1.1, 2.6, 6.2, 3.8,
4.3, 10.6, 5.7, 6.9,
7.1, 8.3, 9.7, 11.2,
17.8, 13.3,7 , -7.7};
auto B = Aurora::Matrix::fromRawData(dataB, 4, 4);
auto ret = Aurora::sortrows(B);
EXPECT_EQ(4, ret.getDimSize(0));
EXPECT_EQ(4, ret.getDimSize(1));
EXPECT_DOUBLE_EQ(5.7, ret.getData()[2]);
EXPECT_DOUBLE_EQ(8.3, ret.getData()[5]);
EXPECT_DOUBLE_EQ(17.8, ret.getData()[12]);
ret = Aurora::sortrows(B*5);
EXPECT_EQ(4, ret.getDimSize(0));
EXPECT_EQ(4, ret.getDimSize(1));
EXPECT_DOUBLE_EQ(28.5, ret.getData()[2]);
EXPECT_DOUBLE_EQ(41.5, ret.getData()[5]);
EXPECT_DOUBLE_EQ(89, ret.getData()[12]);
//big sort 10w以上多线程快
double * dataA = Aurora::random(1000000*4);
auto A = Aurora::Matrix::New(dataA, 4, 1000000);
ret = Aurora::sortrows(A);
double *dataB = new double[42]{
95, 27, 95, 79, 67, 70, 69,
95, 7, 48, 95, 75, 3, 31,
95, 7, 48, 65, 74, 27, 95,
95, 7, 14, 3, 39, 4, 3,
76, 15, 42, 84, 65, 9, 43,
76, 97, 91, 93, 17, 82, 38
};
auto B = transpose(Aurora::Matrix::fromRawData(dataB, 7, 6));
Aurora::Matrix idx ;
auto ret = Aurora::sortrows(B,&idx);
ret.printf();
idx.printf();
}
TEST_F(Function2D_Test, median) {