Add cuda sub2ind and unitest.
This commit is contained in:
@@ -843,8 +843,8 @@ TEST_F(Function2D_Cuda_Test, prod) {
|
||||
EXPECT_FLOAT_AE(result1[i], result2[i]);
|
||||
}
|
||||
|
||||
auto matrixHostComplex = Aurora::Matrix::fromRawData(new float[40], 4,5, 1,Aurora::Complex);
|
||||
for(unsigned int i=0; i<40;++i)
|
||||
auto matrixHostComplex = Aurora::Matrix::fromRawData(new float[20], 2,5, 1,Aurora::Complex);
|
||||
for(unsigned int i=0; i<20;++i)
|
||||
{
|
||||
matrixHost[i] = i + 1;
|
||||
}
|
||||
@@ -858,4 +858,22 @@ TEST_F(Function2D_Cuda_Test, prod) {
|
||||
{
|
||||
EXPECT_FLOAT_AE(result1[i], result2[i]);
|
||||
}
|
||||
}
|
||||
|
||||
TEST_F(Function2D_Cuda_Test, sub2ind) {
|
||||
float* dI1= new float[4]{1,2,1,2};
|
||||
Aurora::Matrix I1(std::shared_ptr<float>(dI1,std::default_delete<float[]>()),std::vector<int>{4});
|
||||
float* dI2= new float[4]{2,2,1,1};
|
||||
Aurora::Matrix I2(std::shared_ptr<float>(dI2,std::default_delete<float[]>()),std::vector<int>{4});
|
||||
float* dI4= new float[4]{1,1,2,2};
|
||||
Aurora::Matrix I3(std::shared_ptr<float>(dI4,std::default_delete<float[]>()),std::vector<int>{4});
|
||||
float* dsz= new float[3]{2,2,2};
|
||||
Aurora::Matrix sz(std::shared_ptr<float>(dsz,std::default_delete<float[]>()),std::vector<int>{3});
|
||||
auto result1 = Aurora::sub2ind(sz, {I1, I2, I3});
|
||||
auto result2 = Aurora::sub2ind(sz.toDeviceMatrix(), {I1.toDeviceMatrix(), I2.toDeviceMatrix(), I3.toDeviceMatrix()}).toHostMatrix();
|
||||
EXPECT_FLOAT_EQ(result1.getDataSize(), result2.getDataSize());
|
||||
for(unsigned int i=0; i<result1.getDataSize(); ++i)
|
||||
{
|
||||
EXPECT_FLOAT_EQ(result1[i], result2[i]);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user