]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Add #ratio# function.
authorWolfgang Bangerth <bangerth@math.tamu.edu>
Mon, 11 May 1998 16:51:18 +0000 (16:51 +0000)
committerWolfgang Bangerth <bangerth@math.tamu.edu>
Mon, 11 May 1998 16:51:18 +0000 (16:51 +0000)
git-svn-id: https://svn.dealii.org/trunk@277 0785d39b-7218-0410-832d-ea1e28bc413d

deal.II/lac/source/dvector.cc

index b04e9b74bc20eaa8e9c5acd71f6a17ae6bbd5bda..56949a1ed78f086443b74af0070a8326c0571606 100644 (file)
@@ -51,6 +51,7 @@ dVector::dVector (const dVector& v) :
 void dVector::reinit (const unsigned int n, const bool fast)
 {
   Assert (n>0, ExcInvalidNumber(n));
+
   if (n>maxdim)
   {
     if (val) delete[] val;
@@ -254,7 +255,8 @@ double dVector::linfty_norm () const {
 
 dVector& dVector::operator += (const dVector& v)
 {
-  if (v.dim != dim) reinit(v,1);
+  if (v.dim != dim)
+    reinit (v, true);
 
   for (unsigned int i=0; i<dim; ++i)
     val[i] += v.val[i];
@@ -265,7 +267,8 @@ dVector& dVector::operator += (const dVector& v)
 
 dVector& dVector::operator -= (const dVector& v)
 {
-  if (v.dim != dim) reinit(v,1);
+  if (v.dim != dim)
+    reinit (v, true);
 
   for (unsigned int i=0; i<dim; ++i)
     val[i] -= v.val[i];
@@ -351,20 +354,20 @@ void dVector::sadd (const double x, const double a,
 
 
 
-void dVector::equ (const double a, const dVector& u,
-                  const double b, const dVector& v)
+void dVector::scale (const double factor)
 {
-  Assert (dim == v.dim, ExcDimensionsDontMatch(dim, v.dim));
   for (unsigned int i=0; i<dim; ++i)
-    val[i] = a*u.val[i] + b*v.val[i];
+    val[i] *= factor;
 }
 
 
 
-void dVector::scale (const double factor)
+void dVector::equ (const double a, const dVector& u,
+                  const double b, const dVector& v)
 {
+  Assert (dim == v.dim, ExcDimensionsDontMatch(dim, v.dim));
   for (unsigned int i=0; i<dim; ++i)
-    val[i] *= factor;
+    val[i] = a*u.val[i] + b*v.val[i];
 }
 
 
@@ -378,6 +381,18 @@ void dVector::equ (const double a, const dVector& u)
 
 
 
+void dVector::ratio (const dVector &a, const dVector &b) {
+  Assert (a.dim == b.dim, ExcDimensionsDontMatch (a.dim, b.dim));
+
+                                  // no need to reinit with zeros, since
+                                  // we overwrite them anyway
+  reinit (a.size(), true);
+  for (unsigned int i=0; i<dim; ++i)
+    val[i] = a.val[i] / b.val[i];
+};
+
+
+
 dVector& dVector::operator = (const double s)
 {
   for (unsigned int i=0; i<dim; ++i)
@@ -389,7 +404,8 @@ dVector& dVector::operator = (const double s)
 
 dVector& dVector::operator = (const dVector& v)
 {
-  if (v.dim != dim) reinit(v,1);
+  if (v.dim != dim)
+    reinit (v, true);
 
   for (unsigned int i=0; i<dim; ++i)
     val[i] = v.val[i];

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.