Fix flaky tests: add iteration guards, yield in busy-waits, cap thread count

libeigen/eigen!2208

Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com>
This commit is contained in:
Rasmus Munk Larsen
2026-02-24 18:29:07 -08:00
parent 28d090a49c
commit 34092d2788
10 changed files with 92 additions and 61 deletions

View File

@@ -28,12 +28,9 @@ void inverse_general_4x4(int repeat) {
typedef typename MatrixType::Scalar Scalar;
double error_sum = 0., error_max = 0.;
for (int i = 0; i < repeat; ++i) {
MatrixType m;
bool is_invertible;
do {
m = MatrixType::Random();
is_invertible = Eigen::FullPivLU<MatrixType>(m).isInvertible();
} while (!is_invertible);
// Create a random diagonally dominant (thus invertible) matrix.
MatrixType m = MatrixType::Random();
m.diagonal().array() += Scalar(8); // 2 * 4 for a 4x4 matrix.
MatrixType inv = m.inverse();
double error = double((m * inv - MatrixType::Identity()).norm());
error_sum += error;