Add conj and conj's unittest.
This commit is contained in:
@@ -403,3 +403,15 @@ Matrix Aurora::acosd(const Matrix& aMatrix)
|
|||||||
}
|
}
|
||||||
return Matrix::New(resultData, aMatrix);
|
return Matrix::New(resultData, aMatrix);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Matrix Aurora::conj(const Matrix& aMatrix)
|
||||||
|
{
|
||||||
|
if(!aMatrix.isComplex())
|
||||||
|
{
|
||||||
|
return Matrix::copyFromRawData(aMatrix.getData(),aMatrix.getDimSize(0),aMatrix.getDimSize(1),aMatrix.getDimSize(2));
|
||||||
|
}
|
||||||
|
size_t size = aMatrix.getDataSize();
|
||||||
|
double* data = malloc(size,true);
|
||||||
|
vzConj(size,(MKL_Complex16*)aMatrix.getData(), (MKL_Complex16*)data);
|
||||||
|
return Matrix::New(data, aMatrix);
|
||||||
|
}
|
||||||
|
|||||||
@@ -57,6 +57,8 @@ namespace Aurora {
|
|||||||
|
|
||||||
Matrix acosd(const Matrix& aMatrix);
|
Matrix acosd(const Matrix& aMatrix);
|
||||||
|
|
||||||
|
Matrix conj(const Matrix& aMatrix);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 多项式计算
|
* 多项式计算
|
||||||
* @brief 例如p[1 0 1],x[3 2 5],代表对多项式 y = x^2 + 1 求(x=3, x=2, x=5)时所有的y
|
* @brief 例如p[1 0 1],x[3 2 5],代表对多项式 y = x^2 + 1 求(x=3, x=2, x=5)时所有的y
|
||||||
|
|||||||
@@ -260,8 +260,31 @@ TEST_F(Function1D_Test, acosd) {
|
|||||||
double *data = new double[3]{0.02,0.83,0.4,};
|
double *data = new double[3]{0.02,0.83,0.4,};
|
||||||
auto matrix = Aurora::Matrix::fromRawData(data, 3);
|
auto matrix = Aurora::Matrix::fromRawData(data, 3);
|
||||||
auto result = Aurora::acosd(matrix);
|
auto result = Aurora::acosd(matrix);
|
||||||
result.printf();
|
|
||||||
EXPECT_DOUBLE_AE(result.getData()[0],88.854);
|
EXPECT_DOUBLE_AE(result.getData()[0],88.854);
|
||||||
EXPECT_DOUBLE_AE(result.getData()[1],33.9013);
|
EXPECT_DOUBLE_AE(result.getData()[1],33.9013);
|
||||||
EXPECT_DOUBLE_AE(result.getData()[2],66.4218);
|
EXPECT_DOUBLE_AE(result.getData()[2],66.4218);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST_F(Function1D_Test, conj) {
|
||||||
|
double *data = new double[6]{0.02,1,0.83,-1,0.4,2};
|
||||||
|
auto matrix = Aurora::Matrix::fromRawData(data, 3,1,1,Aurora::Complex);
|
||||||
|
auto result = Aurora::conj(matrix);
|
||||||
|
EXPECT_DOUBLE_AE(result.getData()[0],0.02);
|
||||||
|
EXPECT_DOUBLE_AE(result.getData()[1],-1);
|
||||||
|
EXPECT_DOUBLE_AE(result.getData()[2],0.83);
|
||||||
|
EXPECT_DOUBLE_AE(result.getData()[3],1);
|
||||||
|
EXPECT_DOUBLE_AE(result.getData()[4],0.4);
|
||||||
|
EXPECT_DOUBLE_AE(result.getData()[5],-2);
|
||||||
|
EXPECT_DOUBLE_AE((double)result.getValueType(), (double)Aurora::Complex);
|
||||||
|
|
||||||
|
data = new double[6]{0.02,1,0.83,-1,0.4,2};
|
||||||
|
matrix = Aurora::Matrix::fromRawData(data, 6,1,1);
|
||||||
|
result = Aurora::conj(matrix);
|
||||||
|
EXPECT_DOUBLE_AE(result.getData()[0],0.02);
|
||||||
|
EXPECT_DOUBLE_AE(result.getData()[1],1);
|
||||||
|
EXPECT_DOUBLE_AE(result.getData()[2],0.83);
|
||||||
|
EXPECT_DOUBLE_AE(result.getData()[3],-1);
|
||||||
|
EXPECT_DOUBLE_AE(result.getData()[4],0.4);
|
||||||
|
EXPECT_DOUBLE_AE(result.getData()[5],2);
|
||||||
|
EXPECT_DOUBLE_AE((double)result.getValueType(), (double)Aurora::Normal);
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user