getfem-commits
[Top][All Lists]
Advanced

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

[Getfem-commits] r5487 - in /trunk/getfem/src: getfem_fem_level_set.cc g


From: logari81
Subject: [Getfem-commits] r5487 - in /trunk/getfem/src: getfem_fem_level_set.cc getfem_mesh_fem_sum.cc
Date: Mon, 21 Nov 2016 22:25:50 -0000

Author: logari81
Date: Mon Nov 21 23:25:49 2016
New Revision: 5487

URL: http://svn.gna.org/viewcvs/getfem?rev=5487&view=rev
Log:
some trivial flattening of nested loops

Modified:
    trunk/getfem/src/getfem_fem_level_set.cc
    trunk/getfem/src/getfem_mesh_fem_sum.cc

Modified: trunk/getfem/src/getfem_fem_level_set.cc
URL: 
http://svn.gna.org/viewcvs/getfem/trunk/getfem/src/getfem_fem_level_set.cc?rev=5487&r1=5486&r2=5487&view=diff
==============================================================================
--- trunk/getfem/src/getfem_fem_level_set.cc    (original)
+++ trunk/getfem/src/getfem_fem_level_set.cc    Mon Nov 21 23:25:49 2016
@@ -214,17 +214,15 @@
     std::vector<bool> zid;
     find_zone_id(c, zid, c.xfem_side());
 
-    for (dim_type i = 0; i < c.N() ; ++i) {
-      for (dim_type j = 0; j < c.N() ; ++j) {
-       for (dim_type q = 0; q < target_dim(); ++q) {
-         unsigned cnt = 0;
-         for (size_type d = 0; d < bfem->nb_dof(0); ++d, ++itf) {
-           if (dofzones[d]) { /* enriched dof ? */
-             for (size_type k = 0; k < dofzones[d]->size(); ++k, ++cnt)
-               *it++ = zid[cnt] ? *itf : 0;
-           } else *it++ = *itf;
-         }
-       }
+    dim_type NNdim = dim_type(gmm::sqr(c.N())*target_dim());
+    for (dim_type ijq = 0; ijq < NNdim ; ++ijq) {
+      unsigned cnt = 0;
+      for (size_type d = 0; d < bfem->nb_dof(0); ++d, ++itf) {
+        if (dofzones[d]) /* enriched dof ? */
+          for (size_type k = 0; k < dofzones[d]->size(); ++k, ++cnt)
+            *it++ = zid[cnt] ? *itf : 0;
+        else
+          *it++ = *itf;
       }
     }
     assert(it == t.end());

Modified: trunk/getfem/src/getfem_mesh_fem_sum.cc
URL: 
http://svn.gna.org/viewcvs/getfem/trunk/getfem/src/getfem_mesh_fem_sum.cc?rev=5487&r1=5486&r2=5487&view=diff
==============================================================================
--- trunk/getfem/src/getfem_mesh_fem_sum.cc     (original)
+++ trunk/getfem/src/getfem_mesh_fem_sum.cc     Mon Nov 21 23:25:49 2016
@@ -228,16 +228,12 @@
       c0.hess_base_value(hess_e[k]);
     }
 
-    for (dim_type j = 0; j < c.N() ; ++j) {
-      for (dim_type k = 0; k < c.N() ; ++k) {
-        for (dim_type q = 0; q < target_dim(); ++q) {
-          for (size_type f = 0; f < pfems.size(); ++f) {
-            itf = hess_e[f].begin()
-              + ((j * c.N() + k) * target_dim() + q) * pfems[f]->nb_dof(cv); 
-            for (size_type i = 0; i < pfems[f]->nb_dof(cv); ++i)
-              *it++ = *itf++;
-          }
-        }
+    dim_type NNdim = dim_type(gmm::sqr(c.N())*target_dim());
+    for (dim_type jkq = 0; jkq < NNdim ; ++jkq) {
+      for (size_type f = 0; f < pfems.size(); ++f) {
+        itf = hess_e[f].begin() + (jkq * pfems[f]->nb_dof(cv)); 
+        for (size_type i = 0; i < pfems[f]->nb_dof(cv); ++i)
+          *it++ = *itf++;
       }
     }
     assert(it == t.end());




reply via email to

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