]> https://gitweb.dealii.org/ - dealii-svn.git/commitdiff
Take over fixes from the main branch.
authorwolf <wolf@0785d39b-7218-0410-832d-ea1e28bc413d>
Mon, 8 May 2000 09:12:50 +0000 (09:12 +0000)
committerwolf <wolf@0785d39b-7218-0410-832d-ea1e28bc413d>
Mon, 8 May 2000 09:12:50 +0000 (09:12 +0000)
git-svn-id: https://svn.dealii.org/branches/Branch-3-0@2822 0785d39b-7218-0410-832d-ea1e28bc413d

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

index 0ef1df83e40d2dc258a5cf2ee103696567e550c1..a27cb74dbbb6ecfa9ec26f7f5ca8124c7a46b1b9 100644 (file)
@@ -232,6 +232,10 @@ class FullMatrix : public Subscriptor
                                     /**
                                      * Matrix-matrix-multiplication.
                                      * $C=A*B$.
+                                     *
+                                     * Assumes that #A# and #B# have
+                                     * compatible sizes and thet #C#
+                                     * already has the right size.
                                      */
     template<typename number2>
     void mmult (FullMatrix<number2>       &C,
@@ -241,6 +245,10 @@ class FullMatrix : public Subscriptor
                                      * Matrix-matrix-multiplication using
                                      * transpose of #this#.
                                      * $C=A^T*B$.
+                                     *
+                                     * Assumes that #A# and #B# have
+                                     * compatible sizes and thet #C#
+                                     * already has the right size.
                                      */
     template<typename number2>
     void Tmmult (FullMatrix<number2>       &C,
index d73fa76fe43b5d895f5c22042b8e77196a96efb2..40e031886c033f393d326f0ad729b2e9e9e9bd10 100644 (file)
@@ -505,86 +505,47 @@ void FullMatrix<number>::diagadd (const number src)
 
 template <typename number>
 template <typename number2>
-void FullMatrix<number>::mmult (FullMatrix<number2>dst,
-                               const FullMatrix<number2>src) const
+void FullMatrix<number>::mmult (FullMatrix<number2>       &dst,
+                               const FullMatrix<number2> &src) const
 {
   Assert (val != 0, ExcEmptyMatrix());
   Assert (n() == src.m(), ExcDimensionMismatch(n(), src.m()));
+  Assert (dst.n() == src.n(), ExcDimensionMismatch(dst.n(), src.n()));
+  Assert (dst.m() == m(), ExcDimensionMismatch(m(), dst.m()));
   
-  unsigned int i,j,k;
-  number2 s = 1.;
-  dst.reinit(m(), src.n());
-
-  for (i=0;i<m();i++)
-    for (j=0; j<src.n(); ++j)
+  for (unsigned int i=0; i<m(); i++)
+    for (unsigned int j=0; j<src.n(); j++)
       {
-       s = 0.;
-       for (k=0;k<n();k++) s+= el(i,k) * src.el(k,j);
+       number2 s = 0.;
+       for (unsigned k=0; k<n(); k++)
+         s+= el(i,k) * src.el(k,j);
        dst.el(i,j) = s;
       }
 }
 
 
-/*void FullMatrix<number>::mmult (FullMatrix& dst, const FullMatrix& src) const
-{
-  Assert (val != 0, ExcEmptyMatrix());  
-  Assert (m() == src.n(), ExcDimensionMismatch(m(), src.n()));
-
-  unsigned int i,j,k;
-  number2 s = 1.;
-
-  dst.reinit(n(), src.m());
-
-  for (i=0;i<n();i++)
-    for (j=0;j<src.m();j++)
-      {
-       s = 0.;
-       for (k=0;k<m();k++) s+= el(i,k) * src.el(k,j);
-       dst.el(i,j) = s;
-      }
-}*/
-
 
 template <typename number>
 template <typename number2>
-void FullMatrix<number>::Tmmult (FullMatrix<number2>& dst, const FullMatrix<number2>& src) const
+void FullMatrix<number>::Tmmult (FullMatrix<number2>       &dst,
+                                const FullMatrix<number2> &src) const
 {
   Assert (val != 0, ExcEmptyMatrix());  
-  Assert (n() == src.n(), ExcDimensionMismatch(n(), src.n()));
-
-  unsigned int i,j,k;
-  number2 s = 1.;
-  dst.reinit(m(), src.m());
+  Assert (m() == src.m(), ExcDimensionMismatch(m(), src.m()));
+  Assert (n() == dst.m(), ExcDimensionMismatch(n(), dst.m()));
+  Assert (src.n() == dst.n(), ExcDimensionMismatch(src.n(), dst.n()));
 
-  for (i=0;i<m();i++)
-    for (j=0;j<src.m();j++)
+  for (unsigned int i=0; i<n(); i++)
+    for (unsigned int j=0; j<src.n(); j++)
       {
-       s = 0.;
-       for (k=0;k<n();k++) s+= el(k,i) * src.el(k,j);
+       number2 s = 0;
+       for (unsigned int k=0; k<m(); k++)
+         s += el(k,i) * src.el(k,j);
        dst.el(i,j) = s;
       }
 }
 
 
-/*void FullMatrix<number>::Tmmult(FullMatrix& dst, const FullMatrix& src) const
-{
-  Assert (val != 0, ExcEmptyMatrix());  
-  Assert (m() == src.n(), ExcDimensionMismatch(m(), src.n()));
-
-  unsigned int i,j,k;
-  number2 s = 1.;
-  
-  dst.reinit(n(), src.m());
-
-  for (i=0;i<n();i++)
-    for (j=0;j<src.m();j++)
-      {
-       s = 0.;
-       for (k=0;k<m();k++) s+= el(k,i) * src.el(k,j);
-       dst.el(i,j) = s;
-      }
-}*/
-
 
 template <typename number>
 template <typename number2>

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.