@@ -332,21 +332,22 @@ void check_solution(const size_t num_times, T const* a, T const* b, T const* c,
332332 size_t failed = 0 ;
333333 T max_rel = std::numeric_limits<T>::epsilon () * T (100.0 );
334334 T max_rel_dot = std::numeric_limits<T>::epsilon () * T (10000000.0 );
335- auto check = [&](const char * name, T is, T should, T max_rel , size_t i = size_t (-1 )) {
335+ auto check = [&](const char * name, T is, T should, T mrel , size_t i = size_t (-1 )) {
336336 // Relative difference:
337337 T diff = std::abs (is - should);
338338 T abs_is = std::abs (is);
339339 T abs_sh = std::abs (should);
340340 T largest = std::max (abs_is, abs_sh);
341- T same = diff <= largest * max_rel ;
341+ T same = diff <= largest * mrel ;
342342 if (!same || std::isnan (is)) {
343343 ++failed;
344344 if (failed > 10 ) return ;
345345 std::cerr << " FAILED validation of " << name;
346346 if (i != size_t (-1 )) std::cerr << " [" << i << " ]" ;
347347 std::cerr << " : " << is << " (is) != " << should
348348 << " (should)" << " , diff=" << diff << " > "
349- << largest * max_rel << std::endl;
349+ << largest * mrel << " (largest=" << largest
350+ << " , max_rel=" << mrel << " )" << std::endl;
350351 }
351352 };
352353
@@ -360,9 +361,9 @@ void check_solution(const size_t num_times, T const* a, T const* b, T const* c,
360361
361362 // Calculate the L^infty-norm relative error
362363 for (size_t i = 0 ; i < array_size; ++i) {
363- check (" a" , a[i], goldA, i, max_rel );
364- check (" b" , b[i], goldB, i, max_rel );
365- check (" c" , c[i], goldC, i, max_rel );
364+ check (" a" , a[i], goldA, max_rel, i );
365+ check (" b" , b[i], goldB, max_rel, i );
366+ check (" c" , c[i], goldC, max_rel, i );
366367 }
367368
368369 if (failed > 0 && !silence_errors)
0 commit comments