From fd3ef2c364fa2743c857a17926ae6d62da52975c Mon Sep 17 00:00:00 2001 From: PJ Fanning Date: Fri, 27 May 2022 00:02:18 +0000 Subject: [PATCH] add VARPA and STDEVPA functions git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1901301 13f79535-47bb-0310-9956-ffa450edef68 --- .../formula/functions/AggregateFunction.java | 44 +++++++------------ 1 file changed, 17 insertions(+), 27 deletions(-) diff --git a/poi/src/main/java/org/apache/poi/ss/formula/functions/AggregateFunction.java b/poi/src/main/java/org/apache/poi/ss/formula/functions/AggregateFunction.java index b8379bc5ea..41ba43cb6a 100644 --- a/poi/src/main/java/org/apache/poi/ss/formula/functions/AggregateFunction.java +++ b/poi/src/main/java/org/apache/poi/ss/formula/functions/AggregateFunction.java @@ -145,7 +145,11 @@ public abstract class AggregateFunction extends MultiOperandNumericFunction { } protected AggregateFunction() { - super(false, false); + this(false); + } + + protected AggregateFunction(boolean isReferenceBoolCounted) { + super(isReferenceBoolCounted, false); } /** @@ -195,12 +199,18 @@ public abstract class AggregateFunction extends MultiOperandNumericFunction { return MathX.average(values); } }; - public static final Function AVERAGEA = new AggregateFunction() { + abstract static class AggregateFunctionA extends AggregateFunction { + + protected AggregateFunctionA() { + super(true); + } + @Override protected boolean handleLogicalValues() { return true; } - + } + public static final Function AVERAGEA = new AggregateFunctionA() { @Override protected double evaluate(double[] values) throws EvaluationException { if (values.length < 1) { @@ -251,12 +261,7 @@ public abstract class AggregateFunction extends MultiOperandNumericFunction { return StatsLib.stdevp(values); } }; - public static final Function STDEVA = new AggregateFunction() { - @Override - protected boolean handleLogicalValues() { - return true; - } - + public static final Function STDEVA = new AggregateFunctionA() { @Override protected double evaluate(double[] values) throws EvaluationException { if (values.length < 1) { @@ -265,12 +270,7 @@ public abstract class AggregateFunction extends MultiOperandNumericFunction { return StatsLib.stdev(values); } }; - public static final Function STDEVPA = new AggregateFunction() { - @Override - protected boolean handleLogicalValues() { - return true; - } - + public static final Function STDEVPA = new AggregateFunctionA() { @Override protected double evaluate(double[] values) throws EvaluationException { if (values.length < 1) { @@ -305,12 +305,7 @@ public abstract class AggregateFunction extends MultiOperandNumericFunction { return StatsLib.varp(values); } }; - public static final Function VARA = new AggregateFunction() { - @Override - protected boolean handleLogicalValues() { - return true; - } - + public static final Function VARA = new AggregateFunctionA() { @Override protected double evaluate(double[] values) throws EvaluationException { if (values.length < 1) { @@ -319,12 +314,7 @@ public abstract class AggregateFunction extends MultiOperandNumericFunction { return StatsLib.var(values); } }; - public static final Function VARPA = new AggregateFunction() { - @Override - protected boolean handleLogicalValues() { - return true; - } - + public static final Function VARPA = new AggregateFunctionA() { @Override protected double evaluate(double[] values) throws EvaluationException { if (values.length < 1) {