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 2008/04/22 22:10:14 UTC

svn commit: r650634 - in /commons/sandbox/nabla/trunk/src: main/java/org/apache/commons/nabla/automatic/ main/java/org/apache/commons/nabla/automatic/analysis/ main/java/org/apache/commons/nabla/automatic/instructions/ test/java/org/apache/commons/nabl...

Author: luc
Date: Tue Apr 22 13:10:05 2008
New Revision: 650634

URL: http://svn.apache.org/viewvc?rev=650634&view=rev
Log:
moved AutomaticDifferentiator up in the hierarchy package
it is the entry point and it was completely hidden

Added:
    commons/sandbox/nabla/trunk/src/main/java/org/apache/commons/nabla/automatic/AutomaticDifferentiator.java
      - copied, changed from r650019, commons/sandbox/nabla/trunk/src/main/java/org/apache/commons/nabla/automatic/analysis/AutomaticDifferentiator.java
    commons/sandbox/nabla/trunk/src/test/java/org/apache/commons/nabla/automatic/AutomaticDifferentiatorTest.java
      - copied, changed from r650019, commons/sandbox/nabla/trunk/src/test/java/org/apache/commons/nabla/automatic/analysis/AutomaticDifferentiatorTest.java
Removed:
    commons/sandbox/nabla/trunk/src/main/java/org/apache/commons/nabla/automatic/analysis/AutomaticDifferentiator.java
    commons/sandbox/nabla/trunk/src/test/java/org/apache/commons/nabla/automatic/analysis/AutomaticDifferentiatorTest.java
Modified:
    commons/sandbox/nabla/trunk/src/main/java/org/apache/commons/nabla/automatic/analysis/ClassDifferentiator.java
    commons/sandbox/nabla/trunk/src/main/java/org/apache/commons/nabla/automatic/analysis/MethodDifferentiator.java
    commons/sandbox/nabla/trunk/src/main/java/org/apache/commons/nabla/automatic/instructions/DReturnTransformer.java
    commons/sandbox/nabla/trunk/src/test/java/org/apache/commons/nabla/automatic/AbstractMathTest.java

Copied: commons/sandbox/nabla/trunk/src/main/java/org/apache/commons/nabla/automatic/AutomaticDifferentiator.java (from r650019, commons/sandbox/nabla/trunk/src/main/java/org/apache/commons/nabla/automatic/analysis/AutomaticDifferentiator.java)
URL: http://svn.apache.org/viewvc/commons/sandbox/nabla/trunk/src/main/java/org/apache/commons/nabla/automatic/AutomaticDifferentiator.java?p2=commons/sandbox/nabla/trunk/src/main/java/org/apache/commons/nabla/automatic/AutomaticDifferentiator.java&p1=commons/sandbox/nabla/trunk/src/main/java/org/apache/commons/nabla/automatic/analysis/AutomaticDifferentiator.java&r1=650019&r2=650634&rev=650634&view=diff
==============================================================================
--- commons/sandbox/nabla/trunk/src/main/java/org/apache/commons/nabla/automatic/analysis/AutomaticDifferentiator.java (original)
+++ commons/sandbox/nabla/trunk/src/main/java/org/apache/commons/nabla/automatic/AutomaticDifferentiator.java Tue Apr 22 13:10:05 2008
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.nabla.automatic.analysis;
+package org.apache.commons.nabla.automatic;
 
 import java.io.IOException;
 import java.io.InputStream;
@@ -25,7 +25,7 @@
 import java.util.HashSet;
 import java.util.Set;
 
-import org.apache.commons.nabla.core.DifferentialPair;
+import org.apache.commons.nabla.automatic.analysis.ClassDifferentiator;
 import org.apache.commons.nabla.core.DifferentiationException;
 import org.apache.commons.nabla.core.UnivariateDerivative;
 import org.apache.commons.nabla.core.UnivariateDifferentiable;
@@ -51,15 +51,6 @@
  * @see org.apache.commons.nabla.Fetchdifferentiator
  */
 public class AutomaticDifferentiator implements UnivariateDifferentiator {
-
-    /** Name for the DifferentialPair class. */
-    public static final String DP_NAME = DifferentialPair.class.getName().replace('.', '/');
-
-    /** Descriptor for the DifferentialPair class. */
-    public static final String DP_DESCRIPTOR = "L" + DP_NAME + ";";
-
-    /** Descriptor for the derivative class f method. */
-    public static final String DP_RETURN_DP_DESCRIPTOR = "(" + DP_DESCRIPTOR + ")" + DP_DESCRIPTOR;
 
     /** UnivariateDifferentiable/UnivariateDerivative map. */
     private final HashMap<Class<? extends UnivariateDifferentiable>,

Modified: commons/sandbox/nabla/trunk/src/main/java/org/apache/commons/nabla/automatic/analysis/ClassDifferentiator.java
URL: http://svn.apache.org/viewvc/commons/sandbox/nabla/trunk/src/main/java/org/apache/commons/nabla/automatic/analysis/ClassDifferentiator.java?rev=650634&r1=650633&r2=650634&view=diff
==============================================================================
--- commons/sandbox/nabla/trunk/src/main/java/org/apache/commons/nabla/automatic/analysis/ClassDifferentiator.java (original)
+++ commons/sandbox/nabla/trunk/src/main/java/org/apache/commons/nabla/automatic/analysis/ClassDifferentiator.java Tue Apr 22 13:10:05 2008
@@ -46,7 +46,7 @@
  * The visited class bytecode is not changed at all.
  * </p>
  */
-class ClassDifferentiator implements ClassVisitor {
+public class ClassDifferentiator implements ClassVisitor {
 
     /** Name for the primitive instance field. */
     private static final String PRIMITIVE_FIELD = "primitive";
@@ -155,7 +155,7 @@
             // get a generator for the method we are going to create
             final MethodVisitor visitor =
                 generator.visitMethod(access | Opcodes.ACC_SYNTHETIC, name,
-                                      AutomaticDifferentiator.DP_RETURN_DP_DESCRIPTOR, null, null);
+                                      MethodDifferentiator.DP_RETURN_DP_DESCRIPTOR, null, null);
 
             // make sure our own differentiator will be used to transform the code
             return new MethodDifferentiator(access, name, desc, signature, exceptions,

Modified: commons/sandbox/nabla/trunk/src/main/java/org/apache/commons/nabla/automatic/analysis/MethodDifferentiator.java
URL: http://svn.apache.org/viewvc/commons/sandbox/nabla/trunk/src/main/java/org/apache/commons/nabla/automatic/analysis/MethodDifferentiator.java?rev=650634&r1=650633&r2=650634&view=diff
==============================================================================
--- commons/sandbox/nabla/trunk/src/main/java/org/apache/commons/nabla/automatic/analysis/MethodDifferentiator.java (original)
+++ commons/sandbox/nabla/trunk/src/main/java/org/apache/commons/nabla/automatic/analysis/MethodDifferentiator.java Tue Apr 22 13:10:05 2008
@@ -86,6 +86,7 @@
 import org.apache.commons.nabla.automatic.trimming.DLoadPop2Trimmer;
 import org.apache.commons.nabla.automatic.trimming.SwappedDloadTrimmer;
 import org.apache.commons.nabla.automatic.trimming.SwappedDstoreTrimmer;
+import org.apache.commons.nabla.core.DifferentialPair;
 import org.apache.commons.nabla.core.DifferentiationException;
 import org.objectweb.asm.MethodVisitor;
 import org.objectweb.asm.Opcodes;
@@ -109,6 +110,15 @@
  */
 public class MethodDifferentiator extends MethodNode {
 
+    /** Name for the DifferentialPair class. */
+    public static final String DP_NAME = DifferentialPair.class.getName().replace('.', '/');
+
+    /** Descriptor for the DifferentialPair class. */
+    public static final String DP_DESCRIPTOR = "L" + DP_NAME + ";";
+
+    /** Descriptor for the derivative class f method. */
+    public static final String DP_RETURN_DP_DESCRIPTOR = "(" + DP_DESCRIPTOR + ")" + DP_DESCRIPTOR;
+
     /** Descriptor for <code>double f()</code> methods. */
     private static final String VOID_RETURN_D_DESCRIPTOR = "()D";
 
@@ -241,10 +251,7 @@
                 // the method does not depend on the parameter at all!
                 // we replace all code by a simple "return DifferentialPair.ZERO;"
                 instructions.clear();
-                instructions.add(new FieldInsnNode(Opcodes.GETSTATIC,
-                                                   AutomaticDifferentiator.DP_NAME,
-                                                   "ZERO",
-                                                   AutomaticDifferentiator.DP_DESCRIPTOR));
+                instructions.add(new FieldInsnNode(Opcodes.GETSTATIC, DP_NAME, "ZERO", DP_DESCRIPTOR));
                 instructions.add(new InsnNode(Opcodes.ARETURN));
 
             } else {
@@ -263,7 +270,7 @@
             }
 
             // change the descriptor to its true final value
-            desc = AutomaticDifferentiator.DP_RETURN_DP_DESCRIPTOR;
+            desc = DP_RETURN_DP_DESCRIPTOR;
 
             // generate the method
             accept(generator);
@@ -460,15 +467,11 @@
         final InsnList list = new InsnList();
         list.add(new VarInsnNode(Opcodes.ALOAD, 1));
         list.add(new InsnNode(Opcodes.DUP));
-        list.add(new MethodInsnNode(Opcodes.INVOKEVIRTUAL,
-                                    AutomaticDifferentiator.DP_NAME,
-                                    "getValue",
-                                    VOID_RETURN_D_DESCRIPTOR));
+        list.add(new MethodInsnNode(Opcodes.INVOKEVIRTUAL, DP_NAME,
+                                    "getValue", VOID_RETURN_D_DESCRIPTOR));
         list.add(new VarInsnNode(Opcodes.DSTORE, 1));
-        list.add(new MethodInsnNode(Opcodes.INVOKEVIRTUAL,
-                                    AutomaticDifferentiator.DP_NAME,
-                                    "getFirstDerivative",
-                                    VOID_RETURN_D_DESCRIPTOR));
+        list.add(new MethodInsnNode(Opcodes.INVOKEVIRTUAL, DP_NAME,
+                                    "getFirstDerivative", VOID_RETURN_D_DESCRIPTOR));
         list.add(new VarInsnNode(Opcodes.DSTORE, 3));
 
         instructions.insertBefore(instructions.get(0), list);

Modified: commons/sandbox/nabla/trunk/src/main/java/org/apache/commons/nabla/automatic/instructions/DReturnTransformer.java
URL: http://svn.apache.org/viewvc/commons/sandbox/nabla/trunk/src/main/java/org/apache/commons/nabla/automatic/instructions/DReturnTransformer.java?rev=650634&r1=650633&r2=650634&view=diff
==============================================================================
--- commons/sandbox/nabla/trunk/src/main/java/org/apache/commons/nabla/automatic/instructions/DReturnTransformer.java (original)
+++ commons/sandbox/nabla/trunk/src/main/java/org/apache/commons/nabla/automatic/instructions/DReturnTransformer.java Tue Apr 22 13:10:05 2008
@@ -16,7 +16,6 @@
  */
 package org.apache.commons.nabla.automatic.instructions;
 
-import org.apache.commons.nabla.automatic.analysis.AutomaticDifferentiator;
 import org.apache.commons.nabla.automatic.analysis.InstructionsTransformer;
 import org.apache.commons.nabla.automatic.analysis.MethodDifferentiator;
 import org.apache.commons.nabla.core.DifferentiationException;
@@ -67,17 +66,17 @@
 
         final InsnList list = new InsnList();
         // operand stack initial state: a0, a1
-        list.add(new VarInsnNode(Opcodes.DSTORE, 3));           // => a0
-        list.add(new VarInsnNode(Opcodes.DSTORE, 1));           // =>
+        list.add(new VarInsnNode(Opcodes.DSTORE, 3));             // => a0
+        list.add(new VarInsnNode(Opcodes.DSTORE, 1));             // =>
         list.add(new TypeInsnNode(Opcodes.NEW,
-                                  AutomaticDifferentiator.DP_NAME)); // => o,
-        list.add(new InsnNode(Opcodes.DUP));                    // => o, o
-        list.add(new VarInsnNode(Opcodes.DLOAD, 1));            // => o, o, a0
-        list.add(new VarInsnNode(Opcodes.DLOAD, 3));            // => o, o, a0, a1
+                                  MethodDifferentiator.DP_NAME)); // => o,
+        list.add(new InsnNode(Opcodes.DUP));                      // => o, o
+        list.add(new VarInsnNode(Opcodes.DLOAD, 1));              // => o, o, a0
+        list.add(new VarInsnNode(Opcodes.DLOAD, 3));              // => o, o, a0, a1
         list.add(new MethodInsnNode(Opcodes.INVOKESPECIAL,
-                                    AutomaticDifferentiator.DP_NAME,
-                                    "<init>", "(DD)V"));        // => dp
-        list.add(new InsnNode(Opcodes.ARETURN));                // =>
+                                    MethodDifferentiator.DP_NAME,
+                                    "<init>", "(DD)V"));          // => dp
+        list.add(new InsnNode(Opcodes.ARETURN));                  // =>
         return list;
 
     }

Modified: commons/sandbox/nabla/trunk/src/test/java/org/apache/commons/nabla/automatic/AbstractMathTest.java
URL: http://svn.apache.org/viewvc/commons/sandbox/nabla/trunk/src/test/java/org/apache/commons/nabla/automatic/AbstractMathTest.java?rev=650634&r1=650633&r2=650634&view=diff
==============================================================================
--- commons/sandbox/nabla/trunk/src/test/java/org/apache/commons/nabla/automatic/AbstractMathTest.java (original)
+++ commons/sandbox/nabla/trunk/src/test/java/org/apache/commons/nabla/automatic/AbstractMathTest.java Tue Apr 22 13:10:05 2008
@@ -17,7 +17,6 @@
 package org.apache.commons.nabla.automatic;
 
 import org.apache.commons.nabla.ReferenceFunction;
-import org.apache.commons.nabla.automatic.analysis.AutomaticDifferentiator;
 import org.apache.commons.nabla.core.DifferentialPair;
 import org.apache.commons.nabla.core.DifferentiationException;
 import org.apache.commons.nabla.core.UnivariateDerivative;

Copied: commons/sandbox/nabla/trunk/src/test/java/org/apache/commons/nabla/automatic/AutomaticDifferentiatorTest.java (from r650019, commons/sandbox/nabla/trunk/src/test/java/org/apache/commons/nabla/automatic/analysis/AutomaticDifferentiatorTest.java)
URL: http://svn.apache.org/viewvc/commons/sandbox/nabla/trunk/src/test/java/org/apache/commons/nabla/automatic/AutomaticDifferentiatorTest.java?p2=commons/sandbox/nabla/trunk/src/test/java/org/apache/commons/nabla/automatic/AutomaticDifferentiatorTest.java&p1=commons/sandbox/nabla/trunk/src/test/java/org/apache/commons/nabla/automatic/analysis/AutomaticDifferentiatorTest.java&r1=650019&r2=650634&rev=650634&view=diff
==============================================================================
--- commons/sandbox/nabla/trunk/src/test/java/org/apache/commons/nabla/automatic/analysis/AutomaticDifferentiatorTest.java (original)
+++ commons/sandbox/nabla/trunk/src/test/java/org/apache/commons/nabla/automatic/AutomaticDifferentiatorTest.java Tue Apr 22 13:10:05 2008
@@ -14,10 +14,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.nabla.automatic.analysis;
+package org.apache.commons.nabla.automatic;
 
 import org.apache.commons.nabla.ReferenceFunction;
-import org.apache.commons.nabla.automatic.AbstractMathTest;
 
 public class AutomaticDifferentiatorTest extends AbstractMathTest {