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 LevenbergMarquardt 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 upperlevel code (calling the Q.R
decomposition) to the lowerlevel 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 GraggBulirschStoer
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 DormandPrince 8(5,3) which is another very
good integrator, and which was implemented from scratch and shares the
design of other RungeKuttaFehlberg integrators. Should these two
classes be included in commons math ?
org.spaceroots.mantissa.random.MersenneTwister:
This class is an implementation of the Mersenne twister pseudorandom
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, email: commonsdevunsubscribe@jakarta.apache.org
For additional commands, email: commonsdevhelp@jakarta.apache.org
