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/17 19:41:54 UTC

svn commit: r1386742 - /commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/differentiation/

Author: luc
Date: Mon Sep 17 17:41:54 2012
New Revision: 1386742

URL: http://svn.apache.org/viewvc?rev=1386742&view=rev
Log:
Added differentiator interfaces for vector and matrix functions.

Added:
    commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/differentiation/UnivariateFunctionDifferentiator.java
      - copied, changed from r1386741, commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/differentiation/UnivariateDifferentiator.java
    commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/differentiation/UnivariateMatrixFunctionDifferentiator.java
      - copied, changed from r1386741, commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/differentiation/UnivariateDifferentiator.java
    commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/differentiation/UnivariateVectorFunctionDifferentiator.java   (contents, props changed)
      - copied, changed from r1386741, commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/differentiation/UnivariateDifferentiator.java
Removed:
    commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/differentiation/UnivariateDifferentiator.java
Modified:
    commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/differentiation/DerivativeStructure.java
    commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/differentiation/UnivariateDifferentiableFunction.java
    commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/differentiation/package-info.java

Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/differentiation/DerivativeStructure.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/differentiation/DerivativeStructure.java?rev=1386742&r1=1386741&r2=1386742&view=diff
==============================================================================
--- commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/differentiation/DerivativeStructure.java (original)
+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/differentiation/DerivativeStructure.java Mon Sep 17 17:41:54 2012
@@ -32,19 +32,24 @@ import org.apache.commons.math3.util.Fas
  * Recursive Multivariate Automatic Differentiation</a>, Mathematics Magazine, vol. 75,
  * no. 3, June 2002.</p>. Rall's numbers are an extension to the real numbers used
  * throughout mathematical expressions; they hold the derivative together with the
- * value of a function. Dan Kalman's derivative structures holds all partial derivatives
- * up to any specified order, with respect to any number of free variables. Rall's
- * number therefore can be seen as derivative structures for order one derivative and
- * one free variable, and real numbers can be seen as derivative structures with zero
- * order derivative and no free variables.</p>
+ * value of a function. Dan Kalman's derivative structures hold all partial derivatives
+ * up to any specified order, with respect to any number of free parameters. Rall's
+ * numbers therefore can be seen as derivative structures for order one derivative and
+ * one free parameter, and real numbers can be seen as derivative structures with zero
+ * order derivative and no free parameters.</p>
  * <p>{@link DerivativeStructure} instances can be used directly thanks to
  * the arithmetic operators to the mathematical functions provided as static
  * methods by this class (+, -, *, /, %, sin, cos ...).</p>
  * <p>Implementing complex expressions by hand using these classes is
- * however a complex and error-prone task, so the classical use is
- * simply to develop computation code using standard primitive double
- * values and to use {@link UnivariateDifferentiator differentiators} to create
- * the {@link DerivativeStructure}-based instances.</p>
+ * a tedious and error-prone task but has the advantage of having no limitation
+ * on the derivation order despite no requiring users to compute the derivatives by
+ * themselves. Implementing complex expression can also be done by developing computation
+ * code using standard primitive double values and to use {@link
+ * UnivariateFunctionDifferentiator differentiators} to create the {@link
+ * DerivativeStructure}-based instances. This method is simpler but may be limited in
+ * the accuracy and derivation orders and may be computationally intensive (this is
+ * typically the case for {@link FiniteDifferencesDifferentiator finite differences
+ * differentiator).</p>
  * <p>Instances of this class are guaranteed to be immutable.</p>
  * @see DSCompiler
  * @version $Id$

Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/differentiation/UnivariateDifferentiableFunction.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/differentiation/UnivariateDifferentiableFunction.java?rev=1386742&r1=1386741&r2=1386742&view=diff
==============================================================================
--- commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/differentiation/UnivariateDifferentiableFunction.java (original)
+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/differentiation/UnivariateDifferentiableFunction.java Mon Sep 17 17:41:54 2012
@@ -24,7 +24,7 @@ import org.apache.commons.math3.exceptio
  * both the value and the first derivative of a mathematical function.
  * The derivative is computed with respect to the input variable.</p>
  * @see UnivariateDifferentiableFunction
- * @see UnivariateDifferentiator
+ * @see UnivariateFunctionDifferentiator
  * @since 3.1
  * @version $Id$
  */

Copied: commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/differentiation/UnivariateFunctionDifferentiator.java (from r1386741, commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/differentiation/UnivariateDifferentiator.java)
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/differentiation/UnivariateFunctionDifferentiator.java?p2=commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/differentiation/UnivariateFunctionDifferentiator.java&p1=commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/differentiation/UnivariateDifferentiator.java&r1=1386741&r2=1386742&rev=1386742&view=diff
==============================================================================
--- commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/differentiation/UnivariateDifferentiator.java (original)
+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/differentiation/UnivariateFunctionDifferentiator.java Mon Sep 17 17:41:54 2012
@@ -22,10 +22,10 @@ import org.apache.commons.math3.analysis
  * @version $Id$
  * @since 3.1
  */
-public interface UnivariateDifferentiator {
+public interface UnivariateFunctionDifferentiator {
 
-    /** Create an implementation of a differential for a
-     * {@link UnivariateDifferentiableFunction differentiable function}.
+    /** Create an implementation of a {@link UnivariateDifferentiableFunction
+     * differential} from a regular {@link UnivariateFunction function}.
      * @param function function to differentiate
      * @return differential function
      */

Copied: commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/differentiation/UnivariateMatrixFunctionDifferentiator.java (from r1386741, commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/differentiation/UnivariateDifferentiator.java)
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/differentiation/UnivariateMatrixFunctionDifferentiator.java?p2=commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/differentiation/UnivariateMatrixFunctionDifferentiator.java&p1=commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/differentiation/UnivariateDifferentiator.java&r1=1386741&r2=1386742&rev=1386742&view=diff
==============================================================================
--- commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/differentiation/UnivariateDifferentiator.java (original)
+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/differentiation/UnivariateMatrixFunctionDifferentiator.java Mon Sep 17 17:41:54 2012
@@ -16,19 +16,19 @@
  */
 package org.apache.commons.math3.analysis.differentiation;
 
-import org.apache.commons.math3.analysis.UnivariateFunction;
+import org.apache.commons.math3.analysis.UnivariateMatrixFunction;
 
 /** Interface defining the function differentiation operation.
  * @version $Id$
  * @since 3.1
  */
-public interface UnivariateDifferentiator {
+public interface UnivariateMatrixFunctionDifferentiator {
 
-    /** Create an implementation of a differential for a
-     * {@link UnivariateDifferentiableFunction differentiable function}.
+    /** Create an implementation of a {@link UnivariateDifferentiableMatrixFunction
+     * differential} from a regular {@link UnivariateMatrixFunction matrix function}.
      * @param function function to differentiate
      * @return differential function
      */
-    UnivariateDifferentiableFunction differentiate(UnivariateFunction function);
+    UnivariateDifferentiableMatrixFunction differentiate(UnivariateMatrixFunction function);
 
 }

Copied: commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/differentiation/UnivariateVectorFunctionDifferentiator.java (from r1386741, commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/differentiation/UnivariateDifferentiator.java)
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/differentiation/UnivariateVectorFunctionDifferentiator.java?p2=commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/differentiation/UnivariateVectorFunctionDifferentiator.java&p1=commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/differentiation/UnivariateDifferentiator.java&r1=1386741&r2=1386742&rev=1386742&view=diff
==============================================================================
--- commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/differentiation/UnivariateDifferentiator.java (original)
+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/differentiation/UnivariateVectorFunctionDifferentiator.java Mon Sep 17 17:41:54 2012
@@ -16,19 +16,19 @@
  */
 package org.apache.commons.math3.analysis.differentiation;
 
-import org.apache.commons.math3.analysis.UnivariateFunction;
+import org.apache.commons.math3.analysis.UnivariateVectorFunction;
 
 /** Interface defining the function differentiation operation.
  * @version $Id$
  * @since 3.1
  */
-public interface UnivariateDifferentiator {
+public interface UnivariateVectorFunctionDifferentiator {
 
-    /** Create an implementation of a differential for a
-     * {@link UnivariateDifferentiableFunction differentiable function}.
+    /** Create an implementation of a {@link UnivariateDifferentiableVectorFunction
+     * differential} from a regular {@link UnivariateVectorFunction vector function}.
      * @param function function to differentiate
      * @return differential function
      */
-    UnivariateDifferentiableFunction differentiate(UnivariateFunction function);
+    UnivariateDifferentiableVectorFunction differentiate(UnivariateVectorFunction function);
 
 }

Propchange: commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/differentiation/UnivariateVectorFunctionDifferentiator.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/differentiation/UnivariateVectorFunctionDifferentiator.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/differentiation/package-info.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/differentiation/package-info.java?rev=1386742&r1=1386741&r2=1386742&view=diff
==============================================================================
--- commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/differentiation/package-info.java (original)
+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/differentiation/package-info.java Mon Sep 17 17:41:54 2012
@@ -26,14 +26,14 @@
  *   interface. Any differentiable function should implement this interface.
  * </p>
  * <p>
- *   Similar interfaces also exist for multivariate functions and for vector or
- *   matrix valued functions.
- * </p>
- * <p>
- *   The {@link UnivariateDifferentiator} interface defines a way to differentiation
+ *   The {@link UnivariateFunctionDifferentiator} interface defines a way to differentiation
  *   a simple {@link org.apache.commons.math3.analysis.UnivariateFunction
  *   univariate function} and get a {@link differential function}.
  * </p>
+ * <p>
+ *   Similar interfaces also exist for multivariate functions and for vector or
+ *   matrix valued functions.
+ * </p>
  *
  */
 package org.apache.commons.math3.analysis.differentiation;