mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-16 06:53:33 +08:00
Matrix: add isAllFinite() to check if every element is finite
This commit is contained in:
@@ -594,6 +594,21 @@ public:
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
bool isAllFinite() const
|
||||
{
|
||||
const Matrix<float, M, N> &self = *this;
|
||||
|
||||
for (size_t i = 0; i < M; i++) {
|
||||
for (size_t j = 0; j < N; j++) {
|
||||
if (!std::isfinite(self(i, j))) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
template<typename Type, size_t M, size_t N>
|
||||
|
||||
@@ -72,6 +72,7 @@ TEST(MatrixAssignmentTest, Assignment)
|
||||
}
|
||||
|
||||
EXPECT_TRUE(m_nan.isAllNan());
|
||||
EXPECT_FALSE(m_nan.isAllFinite());
|
||||
|
||||
float data2d[3][3] = {
|
||||
{1, 2, 3},
|
||||
@@ -87,6 +88,7 @@ TEST(MatrixAssignmentTest, Assignment)
|
||||
}
|
||||
|
||||
EXPECT_FALSE(m2.isAllNan());
|
||||
EXPECT_TRUE(m2.isAllFinite());
|
||||
|
||||
float data_times_2[9] = {2, 4, 6, 8, 10, 12, 14, 16, 18};
|
||||
Matrix3f m3(data_times_2);
|
||||
|
||||
Reference in New Issue
Block a user