From cea26a549e1de96278f03371b3ee9484f1986d29 Mon Sep 17 00:00:00 2001
From: Oliver Sander <sander@igpm.rwth-aachen.de>
Date: Sun, 1 Jan 2012 17:49:55 +0000
Subject: [PATCH] Use a loop to get cleaner code

[[Imported from SVN: r8335]]
---
 test/rotationtest.cc | 61 +++++++++++++++-----------------------------
 1 file changed, 20 insertions(+), 41 deletions(-)

diff --git a/test/rotationtest.cc b/test/rotationtest.cc
index 2970fbaa..0e61129a 100644
--- a/test/rotationtest.cc
+++ b/test/rotationtest.cc
@@ -161,47 +161,26 @@ void testDerivativeOfInterpolatedPosition()
                     double intervalLength = l/(double(3));
                     Dune::FieldVector<double,3> variation;
                     
-                    variation = 0;   variation[0] = eps;
-                    fdGrad[0] =  Rotation<double,3>::interpolateDerivative(q[i].mult(Rotation<double,3>::exp(SkewMatrix<double,3>(variation))), 
-                                                                           q[j], s);
-                    variation = 0;   variation[0] = -eps;
-                    fdGrad[0] -= Rotation<double,3>::interpolateDerivative(q[i].mult(Rotation<double,3>::exp(SkewMatrix<double,3>(variation))), 
-                                                                           q[j], s);
-                    fdGrad[0] /= 2*eps;
-                    
-                    variation = 0;   variation[1] = eps;
-                    fdGrad[1] =  Rotation<double,3>::interpolateDerivative(q[i].mult(Rotation<double,3>::exp(SkewMatrix<double,3>(variation))), 
-                                                                           q[j], s);
-                    variation = 0;   variation[1] = -eps;
-                    fdGrad[1] -= Rotation<double,3>::interpolateDerivative(q[i].mult(Rotation<double,3>::exp(SkewMatrix<double,3>(variation))), 
-                                                                           q[j], s);
-                    fdGrad[1] /= 2*eps;
-                    
-                    variation = 0;   variation[2] = eps;
-                    fdGrad[2] =  Rotation<double,3>::interpolateDerivative(q[i].mult(Rotation<double,3>::exp(SkewMatrix<double,3>(variation))), 
-                                                                           q[j], s);
-                    variation = 0;   variation[2] = -eps;
-                    fdGrad[2] -= Rotation<double,3>::interpolateDerivative(q[i].mult(Rotation<double,3>::exp(SkewMatrix<double,3>(variation))), 
-                                                                           q[j], s);
-                    fdGrad[2] /= 2*eps;
-                    
-                    variation = 0;   variation[0] = eps;
-                    fdGrad[3] =  Rotation<double,3>::interpolateDerivative(q[i], q[j].mult(Rotation<double,3>::exp(SkewMatrix<double,3>(variation))), s);
-                    variation = 0;   variation[0] = -eps;
-                    fdGrad[3] -= Rotation<double,3>::interpolateDerivative(q[i], q[j].mult(Rotation<double,3>::exp(SkewMatrix<double,3>(variation))), s);
-                    fdGrad[3] /= 2*eps;
-                    
-                    variation = 0;   variation[1] = eps;
-                    fdGrad[4] =  Rotation<double,3>::interpolateDerivative(q[i], q[j].mult(Rotation<double,3>::exp(SkewMatrix<double,3>(variation))), s);
-                    variation = 0;   variation[1] = -eps;
-                    fdGrad[4] -= Rotation<double,3>::interpolateDerivative(q[i], q[j].mult(Rotation<double,3>::exp(SkewMatrix<double,3>(variation))), s);
-                    fdGrad[4] /= 2*eps;
-                    
-                    variation = 0;   variation[2] = -eps;
-                    fdGrad[5] =  Rotation<double,3>::interpolateDerivative(q[i], q[j].mult(Rotation<double,3>::exp(SkewMatrix<double,3>(variation))), s);
-                    variation = 0;   variation[2] = -eps;
-                    fdGrad[5] -= Rotation<double,3>::interpolateDerivative(q[i], q[j].mult(Rotation<double,3>::exp(SkewMatrix<double,3>(variation))), s);
-                    fdGrad[5] /= 2*eps;
+                    for (int m=0; m<3; m++) {
+                        variation = 0;
+                        variation[m] = eps;
+                        fdGrad[m] =  Rotation<double,3>::interpolateDerivative(q[i].mult(Rotation<double,3>::exp(SkewMatrix<double,3>(variation))), 
+                                                                               q[j], s);
+                        variation = 0;
+                        variation[m] = -eps;
+                        fdGrad[m] -= Rotation<double,3>::interpolateDerivative(q[i].mult(Rotation<double,3>::exp(SkewMatrix<double,3>(variation))), 
+                                                                               q[j], s);
+                        fdGrad[m] /= 2*eps;
+                        
+                        variation = 0;
+                        variation[m] = eps;
+                        fdGrad[3+m] =  Rotation<double,3>::interpolateDerivative(q[i], q[j].mult(Rotation<double,3>::exp(SkewMatrix<double,3>(variation))), s);
+                        variation = 0;   
+                        variation[m] = -eps;
+                        fdGrad[3+m] -= Rotation<double,3>::interpolateDerivative(q[i], q[j].mult(Rotation<double,3>::exp(SkewMatrix<double,3>(variation))), s);
+                        fdGrad[3+m] /= 2*eps;
+                        
+                    }
                     
                     // Compute analytical velocity vector gradient
                     RodLocalStiffness<OneDGrid,double>::interpolationVelocityDerivative(q[i], q[j], s, intervalLength, grad);
-- 
GitLab