getfem-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Getfem-commits] r4886 - in /trunk/getfem/src: dal_static_stored_objects


From: Yves . Renard
Subject: [Getfem-commits] r4886 - in /trunk/getfem/src: dal_static_stored_objects.cc getfem/bgeot_tensor.h getfem_generic_assembly.cc
Date: Mon, 16 Mar 2015 16:32:08 -0000

Author: renard
Date: Mon Mar 16 17:32:08 2015
New Revision: 4886

URL: http://svn.gna.org/viewcvs/getfem?rev=4886&view=rev
Log:
correction for _GLIBCXX_DEBUG mode, the sequel

Modified:
    trunk/getfem/src/dal_static_stored_objects.cc
    trunk/getfem/src/getfem/bgeot_tensor.h
    trunk/getfem/src/getfem_generic_assembly.cc

Modified: trunk/getfem/src/dal_static_stored_objects.cc
URL: 
http://svn.gna.org/viewcvs/getfem/trunk/getfem/src/dal_static_stored_objects.cc?rev=4886&r1=4885&r2=4886&view=diff
==============================================================================
--- trunk/getfem/src/dal_static_stored_objects.cc       (original)
+++ trunk/getfem/src/dal_static_stored_objects.cc       Mon Mar 16 17:32:08 2015
@@ -179,7 +179,7 @@
   {
     getfem::local_guard guard = locks_.get_lock();
     std::list<pstatic_stored_object>::iterator it;
-    for (it = to_delete.begin(); it != to_delete.end(); ++it) 
+    for (it = to_delete.begin(); it != to_delete.end(); ) 
     {
       stored_key_tab::iterator itk = stored_keys_.find(*it);
       stored_object_tab::iterator ito = end();
@@ -193,8 +193,8 @@
         delete ito->first.p;
         erase(ito);
         it = to_delete.erase(it);
-        if (it ==  to_delete.end()) break;
-        --it;
+      } else {
+        ++it;
       }
     }
   }

Modified: trunk/getfem/src/getfem/bgeot_tensor.h
URL: 
http://svn.gna.org/viewcvs/getfem/trunk/getfem/src/getfem/bgeot_tensor.h?rev=4886&r1=4885&r2=4886&view=diff
==============================================================================
--- trunk/getfem/src/getfem/bgeot_tensor.h      (original)
+++ trunk/getfem/src/getfem/bgeot_tensor.h      Mon Mar 16 17:32:08 2015
@@ -301,14 +301,14 @@
         pf += dd; pft += ddt;
       } else {
         const_iterator pl = pft; iterator pt = tmp->begin();
-        *pt = *pl;
+        *pt++ = *pl;
         for(size_type k = 1; k < dimt; ++k, ++pt) { pl += cot; *pt = *pl;}
 
         iterator pff = pf;
         for (size_type k = 0; k < dim; ++k) {
           if (k) pff += co;
           *pff = T(0); pt = tmp->begin(); pl = m.begin() + k;
-          *pff += (*pl) * (*pt);
+          *pff += (*pl) * (*pt); ++pt;
           for (size_type l = 1; l < dimt; ++l, ++pt) {
             pl += dim;
             *pff += (*pl) * (*pt);
@@ -370,7 +370,7 @@
       }
       else {
         const_iterator pl = pft; iterator pt = tmp->begin();
-        *pt = *pl;
+        *pt++ = *pl;
         for(size_type k = 1; k < dimt; ++k, ++pt) { pl += cot; *pt = *pl; }
 
         iterator pff = pf; pl = m.begin();

Modified: trunk/getfem/src/getfem_generic_assembly.cc
URL: 
http://svn.gna.org/viewcvs/getfem/trunk/getfem/src/getfem_generic_assembly.cc?rev=4886&r1=4885&r2=4886&view=diff
==============================================================================
--- trunk/getfem/src/getfem_generic_assembly.cc (original)
+++ trunk/getfem/src/getfem_generic_assembly.cc Mon Mar 16 17:32:08 2015
@@ -2681,10 +2681,11 @@
         // Performs t(i*Qmult+j, k*Qmult + j) = Z(i,k);
         for (size_type k = 0; k < target_dim; ++k) {
           base_tensor::iterator it = t.begin() + (ss * k);
-          for (size_type i = 0; i < ndof; ++i, ++itZ, it += Qmult) {
+          for (size_type i = 0; i < ndof; ++i, ++itZ) {
+            if (i) it += Qmult;
             base_tensor::iterator it2 = it;
-            for (size_type j = 0; j < Qmult; ++j, it2 += sss)
-              *it2 = *itZ;
+            *it2 = *itZ;
+            for (size_type j = 1; j < Qmult; ++j) { it2 += sss; *it2 = *itZ; }
           }
         }
       }
@@ -2733,10 +2734,11 @@
         for (size_type l = 0; l < N; ++l)
           for (size_type k = 0; k < target_dim; ++k) {
             base_tensor::iterator it = t.begin() + (ss * k + ssss*l);
-            for (size_type i = 0; i < ndof; ++i, ++itZ, it += Qmult) {
+            for (size_type i = 0; i < ndof; ++i, ++itZ) {
+              if (i) it += Qmult;
               base_tensor::iterator it2 = it;
-              for (size_type j = 0; j < Qmult; ++j, it2 += sss)
-                *it2 = *itZ;
+              *it2 = *itZ;
+              for (size_type j = 1; j < Qmult; ++j) { it2 += sss; *it2 = *itZ; 
}
             }
           }
       }
@@ -2786,10 +2788,11 @@
         for (size_type l = 0; l < N2; ++l)
           for (size_type k = 0; k < target_dim; ++k) {
             base_tensor::iterator it = t.begin() + (ss * k + ssss*l);
-            for (size_type i = 0; i < ndof; ++i, ++itZ, it += Qmult) {
+            for (size_type i = 0; i < ndof; ++i, ++itZ) {
+              if (i) it += Qmult;
               base_tensor::iterator it2 = it;
-              for (size_type j = 0; j < Qmult; ++j, it2 += sss)
-                *it2 = *itZ;
+              *it2 = *itZ;
+              for (size_type j = 1; j < Qmult; ++j) { it2 += sss; *it2 = *itZ; 
}
             }
           }
       }
@@ -2824,10 +2827,11 @@
         // Performs t(i*Qmult+j, k*Qmult + j) = Z(i,k);
         for (size_type k = 0; k < target_dim; ++k) {
           base_tensor::iterator it = t.begin() + (ss * k);
-          for (size_type i = 0; i < ndof; ++i, ++itZ, it += Qmult) {
+          for (size_type i = 0; i < ndof; ++i, ++itZ) {
+            if (i) it += Qmult;
             base_tensor::iterator it2 = it;
-            for (size_type j = 0; j < Qmult; ++j, it2 += sss)
-              *it2 = *itZ;
+            *it2 = *itZ;
+            for (size_type j = 1; j < Qmult; ++j) { it2 += sss; *it2 = *itZ; }
           }
         }
       }
@@ -2861,10 +2865,11 @@
         for (size_type l = 0; l < N; ++l)
           for (size_type k = 0; k < target_dim; ++k) {
             base_tensor::iterator it = t.begin() + (ss * k + ssss*l);
-            for (size_type i = 0; i < ndof; ++i, ++itZ, it += Qmult) {
+            for (size_type i = 0; i < ndof; ++i, ++itZ) {
+              if (i)  it += Qmult;
               base_tensor::iterator it2 = it;
-              for (size_type j = 0; j < Qmult; ++j, it2 += sss)
-                *it2 = *itZ;
+              *it2 = *itZ;
+              for (size_type j = 1; j < Qmult; ++j) { it2 += sss; *it2 = *itZ; 
}
             }
           }
       }
@@ -2899,10 +2904,11 @@
         for (size_type l = 0; l < N2; ++l)
           for (size_type k = 0; k < target_dim; ++k) {
             base_tensor::iterator it = t.begin() + (ss * k + ssss*l);
-            for (size_type i = 0; i < ndof; ++i, ++itZ, it += Qmult) {
+            for (size_type i = 0; i < ndof; ++i, ++itZ) {
+              if (i) it += Qmult;
               base_tensor::iterator it2 = it;
-              for (size_type j = 0; j < Qmult; ++j, it2 += sss)
-                *it2 = *itZ;
+              *it2 = *itZ;
+              for (size_type j = 1; j < Qmult; ++j) { it2 += sss; *it2 = *itZ; 
}
             }
           }
       }
@@ -3038,7 +3044,8 @@
            it != t.end(); ++it, ++it1) {
         *it = scalar_type(0);
         base_tensor::iterator it2 = it1;
-        for (size_type i = 0; i < n; ++i, it2 += s) *it += *it2;
+        *it += *it2;
+        for (size_type i = 1; i < n; ++i) { it2 += s; *it += *it2; }
       }
       return 0;
     }
@@ -3061,11 +3068,13 @@
            j < nb; ++it, ++it1, ++j) {
         scalar_type tr(0);
         base_tensor::iterator it2 = it1;
-        for (size_type i = 0; i < n; ++i, it2 += s) tr += *it2;
+        tr += *it2;
+        for (size_type i = 1; i < n; ++i) { it2 += s; tr += *it2; }
         tr /= scalar_type(n);
 
         base_tensor::iterator it3 = it;
-        for (size_type i = 0; i < n; ++i, it3 += s) *it3 -= tr;
+        *it3 -= tr;
+        for (size_type i = 1; i < n; ++i) { it3 += s; *it3 -= tr; }
       }
       return 0;
     }
@@ -3349,10 +3358,10 @@
 
       base_tensor::iterator it1=tc1.begin(), it2=tc2.begin(), it2end=it2 + s2;
       for (base_tensor::iterator it = t.begin(); it != t.end(); ++it) {
-        scalar_type a(0);
         base_tensor::iterator it11 = it1, it22 = it2;
-        for (size_type i = 0; i < nn; ++i)
-          { a+= (*it11) * (*it22); it11 += s1; it22 += s2; }
+        scalar_type a = (*it11) * (*it22);
+        for (size_type i = 1; i < nn; ++i)
+          { it11 += s1; it22 += s2; a += (*it11) * (*it22); }
         *it = a;
         ++it2; if (it2 == it2end) { it2 = tc2.begin(), ++it1; }
       }




reply via email to

[Prev in Thread] Current Thread [Next in Thread]