From 9aa27cd91dae5e93d34b89e8e3ca8e4cd8a8a6ce Mon Sep 17 00:00:00 2001 From: Tom Deakin Date: Wed, 27 Apr 2016 11:42:23 +0100 Subject: [PATCH] Print out average error on check if there is an error --- src/main.cpp | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/src/main.cpp b/src/main.cpp index 355fac7..d45a4a5 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -3,6 +3,7 @@ #include #include #include +#include #include "common.h" #include "Stream.h" @@ -71,7 +72,26 @@ void check_solution(const unsigned int ntimes, std::vector& a, std::vector // Calculate the average error double errA = std::accumulate(a.begin(), a.end(), 0.0, [&](double sum, const T val){ return sum + fabs(val - goldA); }); - + errA /= a.size(); + double errB = std::accumulate(b.begin(), b.end(), 0.0, [&](double sum, const T val){ return sum + fabs(val - goldB); }); + errB /= b.size(); + double errC = std::accumulate(c.begin(), c.end(), 0.0, [&](double sum, const T val){ return sum + fabs(val - goldC); }); + errC /= c.size(); + + double epsi = std::numeric_limits::epsilon() * 100.0; + + if (errA > epsi) + std::cerr + << "Validation failed on a[]. Average error " << errA + << std::endl; + if (errB > epsi) + std::cerr + << "Validation failed on b[]. Average error " << errB + << std::endl; + if (errC > epsi) + std::cerr + << "Validation failed on c[]. Average error " << errC + << std::endl; }