Add acosd and acosd's unittest.
This commit is contained in:
@@ -4,4 +4,7 @@
|
|||||||
//必须在mkl.h和Eigen的头之前,<complex>之后
|
//必须在mkl.h和Eigen的头之前,<complex>之后
|
||||||
#define MKL_Complex16 std::complex<double>
|
#define MKL_Complex16 std::complex<double>
|
||||||
#include "mkl.h"
|
#include "mkl.h"
|
||||||
|
|
||||||
|
#define PI 3.141592653589793238462
|
||||||
|
|
||||||
#endif //AURORA_AURORADEFS_H
|
#endif //AURORA_AURORADEFS_H
|
||||||
|
|||||||
@@ -385,3 +385,21 @@ Matrix Aurora::acos(const Matrix& aMatrix)
|
|||||||
vdAcos(size, matrixData, resultData);
|
vdAcos(size, matrixData, resultData);
|
||||||
return Matrix::New(resultData, aMatrix);
|
return Matrix::New(resultData, aMatrix);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Matrix Aurora::acosd(const Matrix& aMatrix)
|
||||||
|
{
|
||||||
|
if(aMatrix.isComplex() || aMatrix.isNull())
|
||||||
|
{
|
||||||
|
return Matrix();
|
||||||
|
}
|
||||||
|
|
||||||
|
size_t size = aMatrix.getDataSize();
|
||||||
|
double* matrixData = aMatrix.getData();
|
||||||
|
double* resultData = Aurora::malloc(size);
|
||||||
|
vdAcos(size, matrixData, resultData);
|
||||||
|
for(size_t i=0; i<size; ++i)
|
||||||
|
{
|
||||||
|
resultData[i] = resultData[i] * 180 / PI;
|
||||||
|
}
|
||||||
|
return Matrix::New(resultData, aMatrix);
|
||||||
|
}
|
||||||
|
|||||||
@@ -55,6 +55,8 @@ namespace Aurora {
|
|||||||
|
|
||||||
Matrix acos(const Matrix& aMatrix);
|
Matrix acos(const Matrix& aMatrix);
|
||||||
|
|
||||||
|
Matrix acosd(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
|
||||||
|
|||||||
@@ -255,3 +255,13 @@ TEST_F(Function1D_Test, acos) {
|
|||||||
EXPECT_DOUBLE_AE(result.getData()[1],0.5917);
|
EXPECT_DOUBLE_AE(result.getData()[1],0.5917);
|
||||||
EXPECT_DOUBLE_AE(result.getData()[2],1.1593);
|
EXPECT_DOUBLE_AE(result.getData()[2],1.1593);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST_F(Function1D_Test, acosd) {
|
||||||
|
double *data = new double[3]{0.02,0.83,0.4,};
|
||||||
|
auto matrix = Aurora::Matrix::fromRawData(data, 3);
|
||||||
|
auto result = Aurora::acosd(matrix);
|
||||||
|
result.printf();
|
||||||
|
EXPECT_DOUBLE_AE(result.getData()[0],88.854);
|
||||||
|
EXPECT_DOUBLE_AE(result.getData()[1],33.9013);
|
||||||
|
EXPECT_DOUBLE_AE(result.getData()[2],66.4218);
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user