You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by lu...@apache.org on 2012/09/28 18:44:15 UTC

svn commit: r1391541 - in /commons/sandbox/nabla/trunk/src: main/java/org/apache/commons/nabla/forward/arithmetic/DNegTransformer.java test/java/org/apache/commons/nabla/forward/arithmetic/DNegGeneratorTest.java

Author: luc
Date: Fri Sep 28 16:44:14 2012
New Revision: 1391541

URL: http://svn.apache.org/viewvc?rev=1391541&view=rev
Log:
Fixed wrong stack handling in transformation for DNEG.

Modified:
    commons/sandbox/nabla/trunk/src/main/java/org/apache/commons/nabla/forward/arithmetic/DNegTransformer.java
    commons/sandbox/nabla/trunk/src/test/java/org/apache/commons/nabla/forward/arithmetic/DNegGeneratorTest.java

Modified: commons/sandbox/nabla/trunk/src/main/java/org/apache/commons/nabla/forward/arithmetic/DNegTransformer.java
URL: http://svn.apache.org/viewvc/commons/sandbox/nabla/trunk/src/main/java/org/apache/commons/nabla/forward/arithmetic/DNegTransformer.java?rev=1391541&r1=1391540&r2=1391541&view=diff
==============================================================================
--- commons/sandbox/nabla/trunk/src/main/java/org/apache/commons/nabla/forward/arithmetic/DNegTransformer.java (original)
+++ commons/sandbox/nabla/trunk/src/main/java/org/apache/commons/nabla/forward/arithmetic/DNegTransformer.java Fri Sep 28 16:44:14 2012
@@ -23,6 +23,7 @@ import org.objectweb.asm.Opcodes;
 import org.objectweb.asm.Type;
 import org.objectweb.asm.tree.AbstractInsnNode;
 import org.objectweb.asm.tree.InsnList;
+import org.objectweb.asm.tree.InsnNode;
 import org.objectweb.asm.tree.MethodInsnNode;
 
 /** Differentiation transformer for DNEG instructions.
@@ -40,9 +41,10 @@ public class DNegTransformer implements 
         throws DifferentiationException {
 
         final InsnList list = new InsnList();
+        list.add(new InsnNode(Opcodes.DUP));
         list.add(new MethodInsnNode(Opcodes.INVOKEVIRTUAL, DS_TYPE.getInternalName(),
                                     "negate",
-                                    Type.getMethodDescriptor(DS_TYPE, DS_TYPE)));
+                                    Type.getMethodDescriptor(DS_TYPE)));
         return list;
 
     }

Modified: commons/sandbox/nabla/trunk/src/test/java/org/apache/commons/nabla/forward/arithmetic/DNegGeneratorTest.java
URL: http://svn.apache.org/viewvc/commons/sandbox/nabla/trunk/src/test/java/org/apache/commons/nabla/forward/arithmetic/DNegGeneratorTest.java?rev=1391541&r1=1391540&r2=1391541&view=diff
==============================================================================
--- commons/sandbox/nabla/trunk/src/test/java/org/apache/commons/nabla/forward/arithmetic/DNegGeneratorTest.java (original)
+++ commons/sandbox/nabla/trunk/src/test/java/org/apache/commons/nabla/forward/arithmetic/DNegGeneratorTest.java Fri Sep 28 16:44:14 2012
@@ -26,7 +26,7 @@ public class DNegGeneratorTest extends A
         checkReference(new ReferenceFunction() {
             public double value(double t) { return -t; }
             public double firstDerivative(double t) { return -1; }
-        }, -0.99, 0.99, 30, 0.0);
+        }, -0.99, 0.99, 30, 1.0e-20);
     }
 
 }