Hello,

As mentioned a few times on this list, I have proposed to donate the Mantissa (http://www.spaceroots.org/software/mantissa/index.html) code to Apache and continue maintaining it here along with commons math.

Almost everything has been both designed and coded by me, so I was able to sign a Software Grant myself for everything except one class already identified since the beginning. However, after some checks, four additional Mantissa classes could induce some copyright issues and I am seeking for advices for these classes.

org.spaceroots.mantissa.estimation.LevenbergMarquardtEstimator:

This class is an implementation of the Levenberg-Marquardt algorithm. The internal code is a translation in Java of the 1980 fortran lmder, lmpar and qrsolv routines (http://www.netlib.org/minpack/lmder.f, http://www.netlib.org/minpack/lmpar.f, http://www.netlib.org/minpack/qrsolv.f) which are distributed as part of minpack under the following license: http://www.netlib.org/minpack/disclaimer. The code I want to donate includes the following changes from minpack:

  - complete translation of all code in Java
  - complete redesign of the interface to fit
    with the existing Mantissa Estimator interface
  - complete rewrite of the Q.R decomposition part
    to use another implementation derived from a textbook
  - adaptation of the upper-level code (calling the Q.R
    decomposition) to the lower-level implementation changes
    (calls, indices and columns reordering handling)

The implementation of the estimate (lmder), determineLMParameter (lmpar) and determineLMDirection (qrsolv) are the parts that come from Minpack, their origin are advertised (as required by Minpack license) and only the translation in Java and the adaptation are new. All the rest of the class (interface, all other methods including qrDecomposition) is original work.

From a users perspective, it is a very important algorithm and a clear improvement for commons math. It also seems that most (if not all) implementations of the algorithm are indeed translations of these minpack routines. It seems difficult to ask for the original authors to provide a software grant to Apache. Is this class acceptable in commons math or should it be dropped (it would be difficult to reimplement the three methods directly translated from minpack) ?

org.spaceroots.mantissa.ode.GraggBulirschStoerIntegrator and org.spaceroots.mantissa.ode.GraggBulirschStoerInterpolator

These classes are an implementation of the Gragg-Bulirsch-Stoer integrator. The internal code is a translation in Java of the fortran odex code by E. Hairer and G. Wanner (http://www.unige.ch/math/folks/hairer/prog/nonstiff/odex.f) distributed under the following license (BSD type):
http://www.unige.ch/~hairer/prog/licence.txt

The algorithm is described in the well known Hairer, Norsett and Wanner textbook Solving Differential Equations (part I, nonstiff problems).

The code I want to donate includes the following changes from odex:

  - complete translation of all code in Java
  - complete redesign of the interface to fit
    with the existing Mantissa FirstOrderIntegrator interface

From a users perspective, this integrator could be omitted. It is one of the best integrators available for nonstiff problems, of course, but Mantissa also includes the Dormand-Prince 8(5,3) which is another very good integrator, and which was implemented from scratch and shares the design of other Runge-Kutta-Fehlberg integrators. Should these two classes be included in commons math ?

org.spaceroots.mantissa.random.MersenneTwister:

This class is an implementation of the Mersenne twister pseudo-random generator. It is a translation of the Makoto Matsumoto and Takuji Nishimura c code.

As there is already an implementation of the Mersenne twister in commons math, it seems irrelevant to include this new implementation.

Luc

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to