From 2be33e476f8c465d52325ad86b1e224ce552af5f Mon Sep 17 00:00:00 2001
From: Oliver Sander <sander@igpm.rwth-aachen.de>
Date: Tue, 7 Feb 2012 16:41:04 +0000
Subject: [PATCH] use the relative error when looking for differences between
 analytical and fd expressions

[[Imported from SVN: r8404]]
---
 test/cosseratenergytest.cc | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/test/cosseratenergytest.cc b/test/cosseratenergytest.cc
index edaaffe9..0b0821e8 100644
--- a/test/cosseratenergytest.cc
+++ b/test/cosseratenergytest.cc
@@ -316,7 +316,11 @@ void testEnergyGradient()
             for (size_t k=0; k<gradient[j].size(); k++)
                 diff = std::max(diff, std::fabs(gradient[j][k] - fdGradient[j][k]));
 
-        if (diff > 1e-4) {
+        double maxRelError = 0;
+        for (size_t j=0; j<gradient.size(); j++)
+            maxRelError = std::max(maxRelError, diff/gradient[j].infinity_norm());
+            
+        if (maxRelError > 1e-3) {
          
             std::cout << "Analytical and FD gradients differ!" << std::endl;
             
-- 
GitLab