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]