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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]