getfem-commits
[Top][All Lists]
Advanced

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

[Getfem-commits] r4881 - /trunk/getfem/src/getfem_generic_assembly.cc


From: Yves . Renard
Subject: [Getfem-commits] r4881 - /trunk/getfem/src/getfem_generic_assembly.cc
Date: Thu, 12 Mar 2015 19:43:55 -0000

Author: renard
Date: Thu Mar 12 20:43:55 2015
New Revision: 4881

URL: http://svn.gna.org/viewcvs/getfem?rev=4881&view=rev
Log:
Fix for the bug reported by Torquil Sorensen on the wrong simplification of 
(0-expr) in the high-level generic assembly

Modified:
    trunk/getfem/src/getfem_generic_assembly.cc

Modified: trunk/getfem/src/getfem_generic_assembly.cc
URL: 
http://svn.gna.org/viewcvs/getfem/trunk/getfem/src/getfem_generic_assembly.cc?rev=4881&r1=4880&r2=4881&view=diff
==============================================================================
--- trunk/getfem/src/getfem_generic_assembly.cc (original)
+++ trunk/getfem/src/getfem_generic_assembly.cc Thu Mar 12 20:43:55 2015
@@ -4958,8 +4958,13 @@
 
             // simplification if one of the two operands is constant and zero
             if (child0->tensor_is_zero()) {
-              tree.replace_node_by_child(pnode, 1);
-              pnode = child1;
+              if (pnode->op_type == GA_MINUS) {
+                pnode->op_type = GA_UNARY_MINUS;
+                tree.clear_node(child0);
+              } else {
+                tree.replace_node_by_child(pnode, 1);
+                pnode = child1;
+              }
             } else if (child1->tensor_is_zero()) {
               tree.replace_node_by_child(pnode, 0);
               pnode = child0;
@@ -8158,8 +8163,7 @@
           ga_compile_interpolate_trans(root, workspace, gis, rmi, *(td.m));
           ga_compile_node(root, workspace, gis, rmi, *(td.m), false,
                           rmi.current_hierarchy);
-          // cout << "compilation finished "; ga_print_node(root, cout);
-          // cout << endl;
+          // cout << "compilation finished "; ga_print_node(root, cout); cout 
<< endl;
 
           // Addition of an assembly instruction
           pga_instruction pgai = 0;




reply via email to

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