From 5d14039ca36fd78497fbd6a37ecb6c8a3b462d3d Mon Sep 17 00:00:00 2001 From: jmmuller Date: Mon, 22 Jan 2024 17:39:00 +0100 Subject: [PATCH] fix L1Solver bench (evaluation order differs between gcc and clang, it changes random args) --- MMVII/src/Matrix/cL1BarrodaleSover.cpp | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/MMVII/src/Matrix/cL1BarrodaleSover.cpp b/MMVII/src/Matrix/cL1BarrodaleSover.cpp index 9c87fcd269..b73bb97b65 100755 --- a/MMVII/src/Matrix/cL1BarrodaleSover.cpp +++ b/MMVII/src/Matrix/cL1BarrodaleSover.cpp @@ -225,12 +225,15 @@ template void cCraig_Barrodale_Roberts_l1::Bench() { int aNbEq = 3 + aDim * 3; cCraig_Barrodale_Roberts_l1 aSys(aDim); - for (int aKEq = 0 ; aKEq::RanGenerate(aDim),RandInInterval(-10.0,10.0)); - } - cDenseVect aVec = aSys.Solve(); - aSys.Bench1Sol(aVec); + for (int aKEq = 0 ; aKEq::RanGenerate(aDim); + auto v3 = RandInInterval(-10.0,10.0); + aSys.PublicAddObservation(v1,v2,v3); // use variable to force evaluation order + } + cDenseVect aVec = aSys.Solve(); + aSys.Bench1Sol(aVec); } } }