commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
Subject Re: [math] Release 1.2 planning, incorporating Mantissa
Date Wed, 20 Dec 2006 08:12:08 GMT
Selon Phil Steitz <>:

> We have added a lot of new functionality to [math] since the 1.1
> release, and Mantissa includes quite a bit more.  We need a 1.2
> release plan, incorporating some elements of Mantissa.  Here is a
> straw man - please any and all jump in to comment and most of all
> volunteer to take on tasks.
> 1. Start with a list of Mantissa features to introduce into [math]

Agreed. In order to help the choice, here is the complete list of packages
provided by Mantissa, with my own comments about them :

  algebra    : univariate polynomials, orthogonal polynomials
               (very basic, straightforward and inefficient implementation)
  estimation : general estimation, least squares,
               Gauss-Newton, Levenberg-Marquardt
               (the package based on interfaces for problems and solvers,
               which should be in a approach similar to commons-math)
  fitting    : general curve fitting, polynomials, harmonic series
               (this is a simple wrapper around estimation, except for
               harmonic fitting which is more complex, but is it useful ?)
  functions  : scalar and vectorial functions interfaces definitions
               (was created for the sake of quadrature and fitting, I
               think commons-math provides something better)
  geometry   : vectors and rotation in 3D
               (tiny package, the most important thing is Rotation3D which
               is quite elaborated and whose code is validated in real life
               space applications)
  linalg     : linear algebra
               (very basic, straightforward, inefficient and incomplete
  ode        : Ordinary Differential Equation
               (this this the most important and polished package, most
               Mantissa users downloaded it only for this package which is
               is quite elaborated, provides state of the art algorithm with
               all bells and whistles like continuous output, multiple
               switching functions supporting G-stop and discontinuities,
               integration driven in slave or master mode ...)
  quadrature : functions quadrature, Riemann, Trapezoid, enhanced Simpson, Gauss
               (classical package, use the function package)
  random     : random generators and basic statistics
               (to be compared with commons-math)
  roots      : simple root finding
               (only a Brent implementation)

> 1.2, based on the WishList and review of the Mantissa code base.  Here
> is my suggested list for math 1.2:
>    a. The entire Mantissa estimation package
>    b. The entire Mantissa optimization package

I would strongly suggest to add also the ode and geometry packages.

> 2. Repackage and refactor Mantissa code - not much, actually - to be
> consistent with the rest of [math] (interface encapsulation, pluggable
> implementations using new approach - see 5 below)

Agreed. I also think some work needs to be done to merge error handling.
Mantissa provides a way to localize messages, it could be a useful addition to

> 3. Replace suboptimal implementations in math random and analysis
> packages with better impls in Mantissa, where this makes sense (TBD -
> comments / suggestions welcome). Also, leverage relevant bits and code
> recently contributed in MATH-157 to implement SVD.

I'm not sure Mantissa has more optimal implementations :-( I am not a
statistician and only implemented what I needed for my own work. I never had
any feedback on these parts.

> 4. Clean up things added to math trunk since 1.1
> 5. Replace commons-discovery dependency injection mechanism with
> spring-compatible approach - patches welcome!

I don't have a sufficient knowledge on commons-math yet to have an opinion on
these tasks.

> 6. Get to zarro boogs (or a pretty Jira screen, I guess ;-)

Yes :-)

> Comments, volunteers, patches, welcome!

I can do all Mantissa refactoring tasks to merge it into the main tree once the
merged parts are chosen.

I would suggest to perform step 2 in Phil's proposal starting with error
handling, followed by packages renaming, followed by interfaces refactoring.


To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message