On Feb 12, 2008 7:25 PM, Michael Heuer <[EMAIL PROTECTED]> wrote: > > 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:
Thanks, Michael! > > 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 > Patches welcome on the last one. The others need to be looked at and discussed individually if we want to change behavior and API documentation. Javadoc patches welcome. > complex > > Complex and ComplexFormat could be final > Not a good idea at this time, IMO. > estimation > > AbstractEstimator has several protected fields and public methods that > are not final Here again, -1 on making these final. > SimpleEstimationProblem ArrayList unbound --> List unbound > SimpleEstimationProblem fields private ArrayList --> private final List Sounds reasonable. Any problems with these changes, Luc? > > fraction > > Fraction and FractionFormat could be final -1 for 1.2 at least. > > geometry > > Rotation minor javadoc fix "if axis norm is null" vs if (norm == 0) { ... } Patch welcome. > the API of Vector3D should be similar to RealMatrix/BigMatrix and > follow the same implementation pattern > Good point, but I am OK with the inconsistency and I suspect Luc and migrating Mantissa users would rather keep this as is. Luc? > linear > > BigMatrixImpl minor javadoc fix (data vs. d parameter name) > RealMatrixImpl minor javadoc fix (data vs. d parameter name) > Patch welcome > ode > > AbstractStepInterpolator has several methods that are protected and > modify private state or that are public and not final > Comments on this, Luc? > optimization > > method name change, DirectSearchOptimizer.minimizes(... --> minimize(... > Personally +1 on this change, but again need to think about Mantissa users. > random > > refactor the decomposition in CorrelatedRandomVectorGenerator to a > separate class in linear package +1 but this is a little work. Could wait for 2.0, though this amounts to release-with-intention-to-deprecate. > ValueServer replace static ints with typesafe enum, minor javadoc fixes > (periods at end of sentences, etc.); Patches welcome >candidate for its own package, with > interface and multiple implementations > Can do this in 2.0. > 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 +1 on these. Any objections, Luc? > > 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) These should be deprecated. > > For "later": > > Generify matrix API > Package interfaces and implementation classes separately > +1 for 2.0 > > 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. > Thanks again for the review and feedback and thanks in advance for patches. Phil --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]