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){
|
TEST_F(CudaMatrix_Test, MatrixPow){
|
||||||
auto A = Aurora::zeros(1000,1,1);
|
auto A = Aurora::zeros(1000,1,1);
|
||||||
auto B = Aurora::zeros(1000,1,1);
|
auto B = Aurora::zeros(1000,1,1);
|
||||||
|
|||||||
Reference in New Issue
Block a user