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;


_______________________________________________
Getfem-commits mailing list
[email protected]
https://mail.gna.org/listinfo/getfem-commits

Reply via email to