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);
}
}