Add linspace and linspace's unittest.
This commit is contained in:
@@ -538,3 +538,15 @@ Matrix Aurora::vecnorm(const Matrix& aMatrix, NormMethod aNormMethod, int aDim)
|
||||
|
||||
return Matrix::New(resultData,column);
|
||||
}
|
||||
|
||||
Matrix Aurora::linspace(double aStart, double aEnd, int aNum)
|
||||
{
|
||||
double step = (aEnd - aStart) / (aNum - 1);
|
||||
double* resultData = Aurora::malloc(aNum);
|
||||
for (int i = 0; i < aNum; i++)
|
||||
{
|
||||
resultData[i] = aStart + step * i;
|
||||
}
|
||||
|
||||
return Matrix::New(resultData,aNum);
|
||||
}
|
||||
|
||||
@@ -72,6 +72,8 @@ namespace Aurora {
|
||||
|
||||
Matrix vecnorm(const Matrix& aMatrix, NormMethod aNormMethod, int aDim);
|
||||
|
||||
Matrix linspace(double aStart, double aEnd, int aNum);
|
||||
|
||||
/**
|
||||
* 多项式计算
|
||||
* @brief 例如p[1 0 1],x[3 2 5],代表对多项式 y = x^2 + 1 求(x=3, x=2, x=5)时所有的y
|
||||
|
||||
@@ -428,3 +428,14 @@ TEST_F(Function1D_Test, vecnrom) {
|
||||
EXPECT_DOUBLE_AE(result.getData()[0],9.5394);
|
||||
EXPECT_DOUBLE_AE(result.getData()[1],43.3474);
|
||||
}
|
||||
|
||||
TEST_F(Function1D_Test, linspace) {
|
||||
auto result = Aurora::linspace(-5,5,7);
|
||||
EXPECT_DOUBLE_AE(result.getData()[0],-5);
|
||||
EXPECT_DOUBLE_AE(result.getData()[1],-3.3333);
|
||||
EXPECT_DOUBLE_AE(result.getData()[2],-1.6667);
|
||||
EXPECT_DOUBLE_AE(result.getData()[3],0);
|
||||
EXPECT_DOUBLE_AE(result.getData()[4],1.6667);
|
||||
EXPECT_DOUBLE_AE(result.getData()[5], 3.3333);
|
||||
EXPECT_DOUBLE_AE(result.getData()[6], 5.0000);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user