commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Luc Maisonobe <Luc.Maison...@free.fr>
Subject [math] Mantissa inclusion and copyright issues
Date Sun, 10 Sep 2006 17:10:41 GMT
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: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org


Mime
View raw message