commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Michael Heuer <heue...@acm.org>
Subject Re: [math] 1.2-RC1 available for review
Date Wed, 13 Feb 2008 02:25:38 GMT
On Sun, 10 Feb 2008, Phil Steitz wrote:

> The zips / tars are here:
> http://people.apache.org/~psteitz/math-1.2-RC1/
>
> The site included in the binary distro is here:
> http://people.apache.org/~psteitz/math-1.2-RC1/docs/
>
> Release notes:
> http://people.apache.org/~psteitz/math-1.2-RC1/RELEASE-NOTES.txt
>
> Ant, Maven 1 and Maven 2 builds should all work from the unpacked
> source distribution.
> Comments / suggestions for improvement welcome!
>
> Phil

A few comments for consideration:

Null parameter checks are not consistent.

Some classes throw NPE (PolynomialFunction, Complex, ComplexUtils,
RealMatrixImpl, MatrixUtils, etc.)

Some classes throw IAE (UnivariateRealSolverUtils,
StorelessUnivariateStatistic, StatUtils, etc.)

Many classes do neither (AbstractEstimator, GaussNewtonEstimator,
LevenbergMarquardEstimator, Rotation, RotationOrder, BigMatrix,
BigMatrixImpl, QRDecompositionImpl, RealMatrix, RealMatrixImpl,
AbstractStepInterpolator, DirectSearchOptimizer,
CorrelatedRandomVectorGenerator, EmpiricalDistribution,
EmpiricalDistributionImpl, RandomData, RandomDataImpl,
UncorrelatedRandomVectorGenerator, VectorialCovariance, VectorialMean,
etc.)

e.g. EmpiricalDistributionImpl.StreamDataAdapter ctr is especially
problematic since NPE wouldn't be thrown until later, when either
computeBinStats or computeStats was called

complex

Complex and ComplexFormat could be final

estimation

AbstractEstimator has several protected fields and public methods that
are not final
SimpleEstimationProblem ArrayList unbound --> List unbound
SimpleEstimationProblem fields private ArrayList --> private final List

fraction

Fraction and FractionFormat could be final

geometry

Rotation minor javadoc fix "if axis norm is null" vs if (norm == 0) { ... }
the API of Vector3D should be similar to RealMatrix/BigMatrix and
follow the same implementation pattern

linear

BigMatrixImpl minor javadoc fix (data vs. d parameter name)
RealMatrixImpl minor javadoc fix (data vs. d parameter name)

ode

AbstractStepInterpolator has several methods that are protected and
modify private state or that are public and not final

optimization

method name change, DirectSearchOptimizer.minimizes(... --> minimize(...

random

refactor the decomposition in CorrelatedRandomVectorGenerator to a
separate class in linear package
ValueServer replace static ints with typesafe enum, minor javadoc fixes
(periods at end of sentences, etc.); candidate for its own package, with
interface and multiple implementations

transform

better documentation as to difference between transform and transform2
and between inversetransform and inversetransform2
method name change, inversetransform --> inverseTransform
method name change, inversetransform2 --> inverseTransform2

util

DefaultTransformer, NumberTransformer, TransformerMap not related to the
transform package desipe their names, better to delegate to
commons-convert? (or possibly use a similar pattern, e.g.
DoubleToStringConversion)

For "later":

Generify matrix API
Package interfaces and implementation classes separately


I realize that some of these cannot happen in a 1.2 release because of
API compatibility.  I can provide patches for the others if desired.

   michael


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org


Mime
View raw message