]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Reorder how vmult and Tvmult work, make them more conformant to the
authorWolfgang Bangerth <bangerth@math.tamu.edu>
Fri, 26 May 2000 12:09:27 +0000 (12:09 +0000)
committerWolfgang Bangerth <bangerth@math.tamu.edu>
Fri, 26 May 2000 12:09:27 +0000 (12:09 +0000)
present coding habits.

git-svn-id: https://svn.dealii.org/trunk@2956 0785d39b-7218-0410-832d-ea1e28bc413d

deal.II/lac/include/lac/full_matrix.templates.h

index ab181fc5776ad48021c75cb764d6af800ee09a81..02dd2809c5c201daa8eb4433ff6365b1d93fd2c1 100644 (file)
@@ -161,9 +161,9 @@ FullMatrix<number>::vmult (Vector<number2>& dst,
   Assert(dst.size() == m(), ExcDimensionMismatch(dst.size(), m()));
   Assert(src.size() == n(), ExcDimensionMismatch(src.size(), n()));
 
-  number2 s;
   if ((n()==3) && (m()==3))
   {
+    number2 s;
     number2 s0,s1,s2;
     s   = src(0);
     s0  = s*val[0]; s1  = s*val[3]; s2  = s*val[6]; 
@@ -187,6 +187,7 @@ FullMatrix<number>::vmult (Vector<number2>& dst,
   }
   else if ((n()==4) && (m()==4))
   {
+    number2 s;
     number2 s0,s1,s2,s3;
     s = src(0);
     s0  = s*val[0]; s1  = s*val[4]; s2  = s*val[8];  s3  = s*val[12];
@@ -214,6 +215,7 @@ FullMatrix<number>::vmult (Vector<number2>& dst,
   }
   else if ((n()==8) && (m()==8))
   {
+    number2 s;
     number2 s0,s1,s2,s3,s4,s5,s6,s7;
     s = src(0);
     s0 = s*val[0]; s1 = s*val[8]; s2 = s*val[16]; s3 = s*val[24];
@@ -268,16 +270,29 @@ FullMatrix<number>::vmult (Vector<number2>& dst,
     number* e = val;
     const unsigned int size_m = m(),
                       size_n = n();
-    for (unsigned int i=0; i<size_m; ++i)
-    {
-      s = 0.;
-      for (unsigned int j=0; j<size_n; ++j)
-       s += src(j) * *(e++);
-      if (!adding) dst(i) = s;
-      else dst(i) += s;
-    }
-  }
-}
+    if (!adding)
+      {
+       for (unsigned int i=0; i<size_m; ++i)
+         {
+           number2 s = 0.;
+           for (unsigned int j=0; j<size_n; ++j)
+             s += src(j) * *(e++);
+           dst(i) = s;
+         };
+      }
+    else
+      {
+       for (unsigned int i=0; i<size_m; ++i)
+         {
+           number2 s = 0.;
+           for (unsigned int j=0; j<size_n; ++j)
+             s += src(j) * *(e++);
+           dst(i) += s;
+         };
+      };
+  };
+};
+
 
 
 template <typename number>
@@ -291,18 +306,29 @@ void FullMatrix<number>::Tvmult (Vector<number2>       &dst,
   Assert(dst.size() == n(), ExcDimensionMismatch(dst.size(), n()));
   Assert(src.size() == m(), ExcDimensionMismatch(src.size(), m()));
 
-  unsigned int i,j;
-  number2 s;
   const unsigned int size_m = m(),
                     size_n = n();
-  for (i=0; i<size_n; ++i)
-  {
-    s = 0.;
-    for (j=0; j<size_m; ++j)
-      s += src(j) * el(j,i);
-    if(!adding) dst(i) = s;
-    else dst(i) += s;
-  }
+
+  if (!adding)
+    {
+      for (unsigned int i=0; i<size_n; ++i)
+       {
+         number2 s = 0.;
+         for (unsigned int j=0; j<size_m; ++j)
+           s += src(j) * el(j,i);
+         dst(i) = s;
+       };
+    }
+  else
+    {
+      for (unsigned int i=0; i<size_n; ++i)
+       {
+         number2 s = 0.;
+         for (unsigned int j=0; j<size_m; ++j)
+           s += src(j) * el(j,i);
+         dst(i) += s;
+       };
+    };
 }
 
 

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.