UnitTest for complex mul and div for CudaMatrix
This commit is contained in:
@@ -350,6 +350,53 @@ TEST_F(CudaMatrix_Test, MatrixDiv) {
|
||||
}
|
||||
}
|
||||
|
||||
TEST_F(CudaMatrix_Test, MatrixComplexMulAndDiv){
|
||||
float * dataA = new float[100];
|
||||
float * dataB = new float[100];
|
||||
auto A = Aurora::Matrix::fromRawData(dataA,5,10,1,Aurora::Complex);
|
||||
auto B = Aurora::Matrix::fromRawData(dataB,5,10,1,Aurora::Complex);
|
||||
for (size_t i = 0; i < 100; i++)
|
||||
{
|
||||
dataA[i] = (float)1;
|
||||
dataB[i] = (float)(-2);
|
||||
}
|
||||
auto dA = A.toDeviceMatrix();
|
||||
auto dB = B.toDeviceMatrix();
|
||||
auto ret1 = A*B;
|
||||
auto ret2 = dA*dB;
|
||||
for (size_t i = 0; i < ret1.getDataSize()*2; i++)
|
||||
{
|
||||
ASSERT_FLOAT_EQ(ret1[i], ret2.getValue(i))<<"index:"<<i;
|
||||
}
|
||||
ret2 = A.toDeviceMatrix()*dB;
|
||||
for (size_t i = 0; i < ret1.getDataSize()*2; i++)
|
||||
{
|
||||
ASSERT_FLOAT_EQ(ret1[i], ret2.getValue(i))<<"index:"<<i;
|
||||
}
|
||||
ret2 = dA*B.toDeviceMatrix();
|
||||
for (size_t i = 0; i < ret1.getDataSize()*2; i++)
|
||||
{
|
||||
ASSERT_FLOAT_EQ(ret1[i], ret2.getValue(i))<<"index:"<<i;
|
||||
}
|
||||
ret1 = A/B;
|
||||
ret2 = dA/dB;
|
||||
for (size_t i = 0; i < ret1.getDataSize()*2; i++)
|
||||
{
|
||||
ASSERT_FLOAT_EQ(ret1[i], ret2.getValue(i))<<"index:"<<i;
|
||||
}
|
||||
ret2 = A.toDeviceMatrix()/dB;
|
||||
for (size_t i = 0; i < ret1.getDataSize()*2; i++)
|
||||
{
|
||||
ASSERT_FLOAT_EQ(ret1[i], ret2.getValue(i))<<"index:"<<i;
|
||||
}
|
||||
ret2 = dA/B.toDeviceMatrix();
|
||||
for (size_t i = 0; i < ret1.getDataSize()*2; i++)
|
||||
{
|
||||
ASSERT_FLOAT_EQ(ret1[i], ret2.getValue(i))<<"index:"<<i;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
TEST_F(CudaMatrix_Test, MatrixPow){
|
||||
auto A = Aurora::zeros(1000,1,1);
|
||||
auto B = Aurora::zeros(1000,1,1);
|
||||
|
||||
Reference in New Issue
Block a user