Add linspace and linspace's unittest.

This commit is contained in:
sunwen
2023-04-26 13:41:57 +08:00
parent 7693ce9f9e
commit 6fd22ffc89
3 changed files with 25 additions and 0 deletions

View File

@@ -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);
}

View File

@@ -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

View File

@@ -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);
}