You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by Luc Maisonobe <Lu...@free.fr> on 2006/09/10 19:10:41 UTC

[math] Mantissa inclusion and copyright issues

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


Re: [math] Mantissa inclusion and copyright issues

Posted by Luc Maisonobe <Lu...@free.fr>.
Henri Yandell wrote :
> It looks like the Minpack license is a BSD license with an extended
> warranty and liability section. I'll ping the legal-discuss mailing
> list about it, but it looks fine to me. Just some government
> boilerplate tacked onto a BSD license I think.

Thanks. I'm not subscribed to the legal-discuss list, could you tell me 
when you'll have an answer ?

> The Hairer license is as you say, a BSD-like license, so that's fine.

Fine.

> For both cases, we don't need software grants. Instead we put the
> information in the NOTICE.txt file. I presume the original files you
> took the code from had copyright statements at the top?

No, there was no formal copyright statements, just authors lists like 
you would find in a mathematical paper. In fact I had to dig around in 
the sites in order to find the licences. In Mantissa, I put the text of 
theses licenses in the Javadoc at class level and displayed the original 
authors names in @author statements.

Luc

---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org


Re: [math] Mantissa inclusion and copyright issues

Posted by Henri Yandell <fl...@gmail.com>.
It looks like the Minpack license is a BSD license with an extended
warranty and liability section. I'll ping the legal-discuss mailing
list about it, but it looks fine to me. Just some government
boilerplate tacked onto a BSD license I think.

The Hairer license is as you say, a BSD-like license, so that's fine.

For both cases, we don't need software grants. Instead we put the
information in the NOTICE.txt file. I presume the original files you
took the code from had copyright statements at the top?


Hen

On 9/10/06, Luc Maisonobe <Lu...@free.fr> wrote:
> 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
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org