Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 8E2F5200B69 for ; Fri, 5 Aug 2016 17:06:51 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 8B990160A64; Fri, 5 Aug 2016 15:06:51 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id DB453160AAC for ; Fri, 5 Aug 2016 17:06:50 +0200 (CEST) Received: (qmail 18120 invoked by uid 500); 5 Aug 2016 15:06:49 -0000 Mailing-List: contact commits-help@commons.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@commons.apache.org Delivered-To: mailing list commits@commons.apache.org Received: (qmail 17830 invoked by uid 99); 5 Aug 2016 15:06:49 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 05 Aug 2016 15:06:49 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 537ABEC22C; Fri, 5 Aug 2016 15:06:49 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: ebourg@apache.org To: commits@commons.apache.org Date: Fri, 05 Aug 2016 15:06:51 -0000 Message-Id: <366ef42117264e96a744dc5a34a79e99@git.apache.org> In-Reply-To: <5cd5b6f2f1604f319bd4b4a85d9e6788@git.apache.org> References: <5cd5b6f2f1604f319bd4b4a85d9e6788@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [3/7] [math] Fixed DerivativeStructure.pow(0.0). archived-at: Fri, 05 Aug 2016 15:06:51 -0000 Fixed DerivativeStructure.pow(0.0). x^0 is always 1.0, regardless of x (even if x is NaN in fact). Project: http://git-wip-us.apache.org/repos/asf/commons-math/repo Commit: http://git-wip-us.apache.org/repos/asf/commons-math/commit/c64856ff Tree: http://git-wip-us.apache.org/repos/asf/commons-math/tree/c64856ff Diff: http://git-wip-us.apache.org/repos/asf/commons-math/diff/c64856ff Branch: refs/heads/develop Commit: c64856ff7f49c1c2e3098a36e5951f6e3a6cc366 Parents: 5c341d9 Author: Luc Maisonobe Authored: Fri Aug 5 15:00:08 2016 +0200 Committer: Emmanuel Bourg Committed: Fri Aug 5 15:00:08 2016 +0200 ---------------------------------------------------------------------- .../analysis/differentiation/DSCompiler.java | 7 +++++++ .../DerivativeStructureTest.java | 22 ++++++++++++++++++++ 2 files changed, 29 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/commons-math/blob/c64856ff/src/main/java/org/apache/commons/math4/analysis/differentiation/DSCompiler.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/commons/math4/analysis/differentiation/DSCompiler.java b/src/main/java/org/apache/commons/math4/analysis/differentiation/DSCompiler.java index 7515a18..7d5c163 100644 --- a/src/main/java/org/apache/commons/math4/analysis/differentiation/DSCompiler.java +++ b/src/main/java/org/apache/commons/math4/analysis/differentiation/DSCompiler.java @@ -886,6 +886,13 @@ public class DSCompiler { public void pow(final double[] operand, final int operandOffset, final double p, final double[] result, final int resultOffset) { + if (p == 0) { + // special case, x^0 = 1 for all x + result[resultOffset] = 1.0; + Arrays.fill(result, resultOffset + 1, resultOffset + getSize(), 0); + return; + } + // create the function value and derivatives // [x^p, px^(p-1), p(p-1)x^(p-2), ... ] double[] function = new double[1 + order]; http://git-wip-us.apache.org/repos/asf/commons-math/blob/c64856ff/src/test/java/org/apache/commons/math4/analysis/differentiation/DerivativeStructureTest.java ---------------------------------------------------------------------- diff --git a/src/test/java/org/apache/commons/math4/analysis/differentiation/DerivativeStructureTest.java b/src/test/java/org/apache/commons/math4/analysis/differentiation/DerivativeStructureTest.java index 8d4bf50..8d0c733 100644 --- a/src/test/java/org/apache/commons/math4/analysis/differentiation/DerivativeStructureTest.java +++ b/src/test/java/org/apache/commons/math4/analysis/differentiation/DerivativeStructureTest.java @@ -31,6 +31,7 @@ import org.apache.commons.math4.rng.RandomSource; import org.apache.commons.math4.util.ArithmeticUtils; import org.apache.commons.math4.util.CombinatoricsUtils; import org.apache.commons.math4.util.FastMath; +import org.apache.commons.math4.util.Precision; import org.junit.Assert; import org.junit.Test; @@ -323,6 +324,27 @@ public class DerivativeStructureTest extends ExtendedFieldElementAbstractTest