| <?xml version="1.0"?> |
| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one or more |
| contributor license agreements. See the NOTICE file distributed with |
| this work for additional information regarding copyright ownership. |
| The ASF licenses this file to You under the Apache License, Version 2.0 |
| (the "License"); you may not use this file except in compliance with |
| the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| --> |
| |
| <!-- |
| This file contains some false positive bugs detected by findbugs. Their |
| false positive nature has been analyzed individually and they have been |
| put here to instruct findbugs it must ignore them. |
| --> |
| <FindBugsFilter> |
| |
| <!-- the following field is unused but cannot be suppressed as it is protected --> |
| <!-- and some user class may require it --> |
| <Match> |
| <Class name="org.apache.commons.math3.analysis.integration.BaseAbstractUnivariateIntegrator" /> |
| <Bug pattern="URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD" /> |
| </Match> |
| |
| <!-- the following equality tests are part of the reference algorithms --> |
| <!-- which already know about limited precision of the double numbers --> |
| <Match> |
| <Class name="org.apache.commons.math3.analysis.solvers.BaseSecantSolver" /> |
| <Method name="doSolve" params="" returns="double" /> |
| <Bug pattern="FE_FLOATING_POINT_EQUALITY" /> |
| </Match> |
| <Match> |
| <Class name="org.apache.commons.math3.distribution.SaddlePointExpansion" /> |
| <Or> |
| <Method name="getDeviancePart" params="double,double" returns="double" /> |
| <Method name="getStirlingError" params="double" returns="double" /> |
| </Or> |
| <Bug pattern="FE_FLOATING_POINT_EQUALITY" /> |
| </Match> |
| <Match> |
| <Class name="org.apache.commons.math3.optimization.univariate.BrentOptimizer" /> |
| <Method name="localMin" params="boolean,double,double,double,double,double" returns="double" /> |
| <Bug pattern="FE_FLOATING_POINT_EQUALITY" /> |
| </Match> |
| <Match> |
| <Class name="org.apache.commons.math3.optim.univariate.BrentOptimizer" /> |
| <Method name="localMin" params="boolean,double,double,double,double,double" returns="double" /> |
| <Bug pattern="FE_FLOATING_POINT_EQUALITY" /> |
| </Match> |
| <Match> |
| <Class name="org.apache.commons.math3.analysis.solvers.BrentSolver" /> |
| <Method name="brent" params="double,double,double,double" returns="double" /> |
| <Bug pattern="FE_FLOATING_POINT_EQUALITY" /> |
| </Match> |
| <Match> |
| <Class name="org.apache.commons.math3.analysis.solvers.MullerSolver" /> |
| <Or> |
| <Method name="solve" params="double,double,double,double" returns="double" /> |
| </Or> |
| <Bug pattern="FE_FLOATING_POINT_EQUALITY" /> |
| </Match> |
| <Match> |
| <Class name="org.apache.commons.math3.analysis.solvers.MullerSolver2" /> |
| <Or> |
| <Method name="doSolve" params="" returns="double" /> |
| </Or> |
| <Bug pattern="FE_FLOATING_POINT_EQUALITY" /> |
| </Match> |
| <Match> |
| <Class name="org.apache.commons.math3.linear.EigenDecomposition" /> |
| <Method name="findEigenVectors" params="double[][]" returns="void" /> |
| <Bug pattern="FE_FLOATING_POINT_EQUALITY" /> |
| </Match> |
| <Match> |
| <Or> |
| <Class name="org.apache.commons.math3.optim.nonlinear.scalar.noderiv.BOBYQAOptimizer" /> |
| <Class name="org.apache.commons.math3.optimization.direct.BOBYQAOptimizer" /> |
| </Or> |
| <Method name="altmov" params="int,double" returns="double[]" /> |
| <Bug pattern="FE_FLOATING_POINT_EQUALITY" /> |
| </Match> |
| <Match> |
| <Class name="org.apache.commons.math3.optim.nonlinear.scalar.noderiv.CMAESOptimizer" /> |
| <Method name="doOptimize" params="" returns="org.apache.commons.math3.optim.PointValuePair" /> |
| <Bug pattern="FE_FLOATING_POINT_EQUALITY" /> |
| </Match> |
| |
| <!-- The following equality test is intentional and needed for semantic purposes --> |
| <Match> |
| <Or> |
| <Class name="org.apache.commons.math3.geometry.euclidean.oned.Vector1D" /> |
| <Class name="org.apache.commons.math3.geometry.euclidean.twod.Vector2D" /> |
| <Class name="org.apache.commons.math3.geometry.euclidean.threed.Vector3D" /> |
| </Or> |
| <Method name="equals" params="java.lang.Object" returns="boolean" /> |
| <Bug pattern="FE_FLOATING_POINT_EQUALITY" /> |
| </Match> |
| <Match> |
| <Class name="org.apache.commons.math3.optimization.linear.LinearConstraint" /> |
| <Method name="equals" params="java.lang.Object" returns="boolean" /> |
| <Bug pattern="FE_FLOATING_POINT_EQUALITY" /> |
| </Match> |
| <Match> |
| <Class name="org.apache.commons.math3.optim.linear.LinearConstraint" /> |
| <Method name="equals" params="java.lang.Object" returns="boolean" /> |
| <Bug pattern="FE_FLOATING_POINT_EQUALITY" /> |
| </Match> |
| |
| <!-- The following equality test is intentional and needed for rounding purposes --> |
| <Match> |
| <Class name="org.apache.commons.math3.util.Precision" /> |
| <Method name="roundUnscaled" params="double,double,int" returns="double" /> |
| <Bug pattern="FE_FLOATING_POINT_EQUALITY" /> |
| </Match> |
| |
| <!-- The following equality test is intentional for division protection --> |
| <Match> |
| <Class name="org.apache.commons.math3.analysis.interpolation.LoessInterpolator" /> |
| <Method name="smooth" params="double[],double[]" returns="double[]" /> |
| <Bug pattern="FE_FLOATING_POINT_EQUALITY" /> |
| </Match> |
| |
| <!-- The following equality test is intentional for infinity detection --> |
| <Match> |
| <Class name="org.apache.commons.math3.util.FastMath" /> |
| <Method name="atan2" params="double,double" returns="double" /> |
| <Bug pattern="FE_FLOATING_POINT_EQUALITY" /> |
| </Match> |
| |
| <!-- The following switch fall-through are due to conversion from FORTRAN goto, |
| which are handled by a state integer representing the target labels of the goto. |
| In the original code, this is sequential and fall-through is expected |
| --> |
| <Match> |
| <Or> |
| <Class name="org.apache.commons.math3.optim.nonlinear.scalar.noderiv.BOBYQAOptimizer" /> |
| <Class name="org.apache.commons.math3.optimization.direct.BOBYQAOptimizer" /> |
| </Or> |
| <Or> |
| <Method name="bobyqb" params="double[],double[]" returns="double" /> |
| <Method name="trsbox" /> |
| </Or> |
| <Bug pattern="SF_SWITCH_FALLTHROUGH" /> |
| </Match> |
| |
| <!-- Spurious: The fields are deprecated and not used anymore |
| (to be removed in 4.0) |
| --> |
| <Match> |
| <Class name="org.apache.commons.math3.optimization.general.AbstractLeastSquaresOptimizer" /> |
| <Or> |
| <Field name="weightedResidualJacobian" /> |
| <Field name="weightedResiduals" /> |
| </Or> |
| <Bug pattern="URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD" /> |
| </Match> |
| |
| <!-- Spurious: Findbugs confused by final local variables --> |
| <Match> |
| <Class name="org.apache.commons.math3.util.FastMath" /> |
| <Method name="atan" params="double,double,boolean" returns="double" /> |
| <Bug pattern="DLS_DEAD_LOCAL_STORE" /> |
| </Match> |
| |
| <!-- Spurious: Findbugs confused by FastMath.PI - 1.0e-10 --> |
| <Match> |
| <Class name="org.apache.commons.math3.geometry.euclidean.threed.Plane" /> |
| <Method name="isSimilarTo" params="org.apache.commons.math3.geometry.euclidean.threed.Plane" returns="boolean" /> |
| <Bug pattern="CNT_ROUGH_CONSTANT_VALUE" /> |
| </Match> |
| |
| <!-- Spurious: Findbugs confused by constant 1.570796251296997 which is a |
| intentionally slightly offset from PI/2 as per Cody Waite arguments reduction --> |
| <Match> |
| <Class name="org.apache.commons.math3.util.FastMath$CodyWaite" /> |
| <Method name="<init>" params="double" returns="void" /> |
| <Bug pattern="CNT_ROUGH_CONSTANT_VALUE" /> |
| </Match> |
| |
| <!-- the following expositions of internal representation are intentional and documented --> |
| <Match> |
| <Class name="org.apache.commons.math3.stat.regression.RegressionResults"/> |
| <Method name="<init>" params="double[],double[][],boolean,long,int,double,double,double,boolean,boolean" returns="void" /> |
| <Bug pattern="EI_EXPOSE_REP2" /> |
| </Match> |
| <Match> |
| <Class name="org.apache.commons.math3.stat.descriptive.AbstractUnivariateStatistic"/> |
| <Method name="getDataRef" params="" returns="double[]" /> |
| <Bug pattern="EI_EXPOSE_REP" /> |
| </Match> |
| <Match> |
| <Class name="org.apache.commons.math3.optimization.PointValuePair"/> |
| <Method name="getPointRef" params="" returns="double[]" /> |
| <Bug pattern="EI_EXPOSE_REP" /> |
| </Match> |
| <Match> |
| <Class name="org.apache.commons.math3.optim.PointValuePair"/> |
| <Method name="getPointRef" params="" returns="double[]" /> |
| <Bug pattern="EI_EXPOSE_REP" /> |
| </Match> |
| <Match> |
| <Class name="org.apache.commons.math3.optimization.PointValuePair"/> |
| <Method name="<init>" params="double[],double,boolean" returns="void" /> |
| <Bug pattern="EI_EXPOSE_REP2" /> |
| </Match> |
| <Match> |
| <Class name="org.apache.commons.math3.optim.PointValuePair"/> |
| <Method name="<init>" params="double[],double,boolean" returns="void" /> |
| <Bug pattern="EI_EXPOSE_REP2" /> |
| </Match> |
| <!-- Serialization is handled by an internal class --> |
| <Match> |
| <Or> |
| <Class name="org.apache.commons.math3.optim.PointValuePair"/> |
| <Class name="org.apache.commons.math3.optim.PointVectorValuePair"/> |
| <Class name="org.apache.commons.math3.optimization.PointValuePair"/> |
| <Class name="org.apache.commons.math3.optimization.PointVectorValuePair"/> |
| </Or> |
| <Bug pattern="SE_NO_SUITABLE_CONSTRUCTOR" /> |
| </Match> |
| <Match> |
| <Class name="org.apache.commons.math3.optimization.PointVectorValuePair"/> |
| <Or> |
| <Method name="getPointRef" params="" returns="double[]" /> |
| <Method name="getValueRef" params="" returns="double[]" /> |
| </Or> |
| <Bug pattern="EI_EXPOSE_REP" /> |
| </Match> |
| <Match> |
| <Class name="org.apache.commons.math3.optim.PointVectorValuePair"/> |
| <Or> |
| <Method name="getPointRef" params="" returns="double[]" /> |
| <Method name="getValueRef" params="" returns="double[]" /> |
| </Or> |
| <Bug pattern="EI_EXPOSE_REP" /> |
| </Match> |
| <Match> |
| <Class name="org.apache.commons.math3.optimization.PointVectorValuePair"/> |
| <Method name="<init>" params="double[],double[][],boolean" returns="void" /> |
| <Bug pattern="EI_EXPOSE_REP2" /> |
| </Match> |
| <Match> |
| <Class name="org.apache.commons.math3.optim.PointVectorValuePair"/> |
| <Method name="<init>" params="double[],double[][],boolean" returns="void" /> |
| <Bug pattern="EI_EXPOSE_REP2" /> |
| </Match> |
| <Match> |
| <Class name="org.apache.commons.math3.ode.sampling.DummyStepInterpolator"/> |
| <Method name="<init>" params="double[],double[],boolean" returns="void" /> |
| <Bug pattern="EI_EXPOSE_REP2" /> |
| </Match> |
| <Match> |
| <Class name="org.apache.commons.math3.ode.sampling.AbstractStepInterpolator"/> |
| <Or> |
| <Method name="getInterpolatedState" params="" returns="double[]" /> |
| <Method name="getInterpolatedDerivatives" params="" returns="double[]" /> |
| </Or> |
| <Bug pattern="EI_EXPOSE_REP" /> |
| </Match> |
| <Match> |
| <Class name="org.apache.commons.math3.ode.sampling.NordsieckStepInterpolator"/> |
| <Method name="reinitialize" params="double,double,double[],org.apache.commons.math3.linear.Array2DRowRealMatrix" returns="void" /> |
| <Bug pattern="EI_EXPOSE_REP2" /> |
| </Match> |
| <Match> |
| <Class name="org.apache.commons.math3.ode.sampling.NordsieckStepInterpolator"/> |
| <Method name="getInterpolatedStateVariation" params="" returns="double[]" /> |
| <Bug pattern="EI_EXPOSE_REP" /> |
| </Match> |
| <Match> |
| <Class name="org.apache.commons.math3.linear.Array2DRowRealMatrix"/> |
| <Method name="<init>" params="double[][],boolean" returns="void" /> |
| <Bug pattern="EI_EXPOSE_REP2" /> |
| </Match> |
| <Match> |
| <Class name="org.apache.commons.math3.linear.Array2DRowRealMatrix"/> |
| <Method name="getDataRef" params="" returns="double[][]" /> |
| <Bug pattern="EI_EXPOSE_REP" /> |
| </Match> |
| <Match> |
| <Class name="org.apache.commons.math3.linear.BlockFieldMatrix"/> |
| <Method name="<init>" params="int,int,org.apache.commons.math3.FieldElement[][],boolean" returns="void" /> |
| <Bug pattern="EI_EXPOSE_REP2" /> |
| </Match> |
| <Match> |
| <Class name="org.apache.commons.math3.linear.Array2DRowFieldMatrix"/> |
| <Method name="<init>" params="org.apache.commons.math3.Field,org.apache.commons.math3.FieldElement[][],boolean" returns="void" /> |
| <Bug pattern="EI_EXPOSE_REP2" /> |
| </Match> |
| <Match> |
| <Class name="org.apache.commons.math3.linear.Array2DRowFieldMatrix"/> |
| <Method name="getDataRef" params="" returns="org.apache.commons.math3.FieldElement[][]" /> |
| <Bug pattern="EI_EXPOSE_REP" /> |
| </Match> |
| <Match> |
| <Class name="org.apache.commons.math3.linear.BlockRealMatrix"/> |
| <Method name="<init>" params="int,int,double[][],boolean" returns="void" /> |
| <Bug pattern="EI_EXPOSE_REP2" /> |
| </Match> |
| <Match> |
| <Class name="org.apache.commons.math3.util.ResizableDoubleArray"/> |
| <Or> |
| <Method name="getValues" params="" returns="double[]" /> |
| <Method name="getInternalValues" params="" returns="double[]" /> |
| </Or> |
| <Bug pattern="EI_EXPOSE_REP" /> |
| </Match> |
| <Match> |
| <Class name="org.apache.commons.math3.linear.ArrayRealVector"/> |
| <Method name="getDataRef" params="" returns="double[]" /> |
| <Bug pattern="EI_EXPOSE_REP" /> |
| </Match> |
| <Match> |
| <Class name="org.apache.commons.math3.linear.ArrayFieldVector"/> |
| <Method name="getDataRef" params="" returns="org.apache.commons.math3.FieldElement[]" /> |
| <Bug pattern="EI_EXPOSE_REP" /> |
| </Match> |
| <Match> |
| <Class name="org.apache.commons.math3.linear.DiagonalMatrix"/> |
| <Method name="getDataRef" params="" returns="double[]" /> |
| <Bug pattern="EI_EXPOSE_REP" /> |
| </Match> |
| <!-- The equals method for RealVector intentionally throws an exception --> |
| <Match> |
| <Class name="org.apache.commons.math3.linear.RealVector"/> |
| <Bug pattern="EQ_UNUSUAL" /> |
| </Match> |
| <Match> |
| <Class name="org.apache.commons.math3.stat.clustering.EuclideanIntegerPoint"/> |
| <Method name="<init>" params="int[]" returns="void" /> |
| <Bug pattern="EI_EXPOSE_REP2" /> |
| </Match> |
| <Match> |
| <Class name="org.apache.commons.math3.stat.clustering.EuclideanIntegerPoint"/> |
| <Method name="getPoint" params="" returns="int[]" /> |
| <Bug pattern="EI_EXPOSE_REP" /> |
| </Match> |
| <Match> |
| <Or> |
| <Class name="org.apache.commons.math3.stat.clustering.EuclideanDoublePoint"/> |
| <Class name="org.apache.commons.math3.ml.clustering.DoublePoint"/> |
| </Or> |
| <Method name="<init>" params="double[]" returns="void" /> |
| <Bug pattern="EI_EXPOSE_REP2" /> |
| </Match> |
| <Match> |
| <Or> |
| <Class name="org.apache.commons.math3.stat.clustering.EuclideanDoublePoint"/> |
| <Class name="org.apache.commons.math3.ml.clustering.DoublePoint"/> |
| </Or> |
| <Method name="getPoint" params="" returns="double[]" /> |
| <Bug pattern="EI_EXPOSE_REP" /> |
| </Match> |
| |
| <!-- The following cases are intentional unit tests for null parameters --> |
| <Match> |
| <Class name="org.apache.commons.math3.stat.StatUtilsTest" /> |
| <Method name="testPercentile" params="" returns="void" /> |
| <Bug pattern="NP_NULL_PARAM_DEREF_NONVIRTUAL" /> |
| </Match> |
| <Match> |
| <Class name="org.apache.commons.math3.analysis.UnivariateRealSolverFactoryImplTest" /> |
| <Method name="testNewNewtonSolverNull" params="" returns="void" /> |
| <Bug pattern="NP_NULL_PARAM_DEREF_ALL_TARGETS_DANGEROUS" /> |
| </Match> |
| <Match> |
| <Class name="org.apache.commons.math3.stat.regression.OLSMultipleLinearRegressionTest" /> |
| <Method name="cannotAddNullYSampleData" params="" returns="void" /> |
| <Bug pattern="NP_NULL_PARAM_DEREF_ALL_TARGETS_DANGEROUS" /> |
| </Match> |
| |
| <!-- IntDoublePair intentionally implements Comparable inconsistently with equals --> |
| <Match> |
| <Class name="org.apache.commons.math3.stat.ranking.NaturalRanking$IntDoublePair" /> |
| <Bug pattern="EQ_COMPARETO_USE_OBJECT_EQUALS" /> |
| </Match> |
| |
| <!-- False positive warning from findbugs, the integer division result cast to double is correct here --> |
| <Match> |
| <Class name="org.apache.commons.math3.stat.inference.MannWhitneyUTest" /> |
| <Method name="mannWhitneyU" params="double[],double[]" returns="double" /> |
| <Bug pattern="ICAST_IDIV_CAST_TO_DOUBLE" /> |
| </Match> |
| |
| <!-- The following switch fall-through is intended. --> |
| <Match> |
| <Class name="org.apache.commons.math3.ml.neuralnet.twod.NeuronSquareMesh2D" /> |
| <Method name="createLinks" /> |
| <Bug pattern="SF_SWITCH_FALLTHROUGH" /> |
| </Match> |
| |
| <!-- Integer division results cast to double are intentional. --> |
| <Match> |
| <Class name="org.apache.commons.math3.special.BesselJ" /> |
| <Method name="rjBesl" /> |
| <Bug pattern="ICAST_IDIV_CAST_TO_DOUBLE" /> |
| </Match> |
| |
| </FindBugsFilter> |