Brent's method of root finding



In my opinion, this is HUGE, and largely unnecessary paranoia.

The person who wrote the statement about "translation" in the
Numerical Recipes license is stating the following. One can take a
freely available algorithm, put in in a package which gives restricted
use (e.g requires the C programming language) and then ordain that
anyone who uses a "translation" of their "routine" into another
language, perhaps even improving its usage due to other software
libraries,
etc) 
and includes it in a generally available package which has nothing to
do
with the Numerical Recipes C implementation has to get permission to
do so.

The MIT people (I think quite justifiably implied "hogwash") and put a
version of the algorithm written in scheme into their GPL available
package.  The code implementer at MIT was trying to be kind about what
saved him or her time in doing his implementation by saying that it
was "from" the Numerical Recipes Book.  Thus, it was not necessarily a
"translation" etc.

The Num Rec license as written and implied would never stand up in
court, and, my guess is that they know this.

There is some legitimacy perhaps in claiming
that a literal translation of exact code which is restricted by
copyright law is protected.  But what is a "literal translation" into
another language?  My guess is that using the main idea of the
algorithm, changing variable names (and perhaps, when useful,  some
slight order of implementation) would make the claim of a
"translation" very hard (perhaps impossible) to prove in court.

I say, "make your own code" from the algorithm, put it into an
enhanced package e.g. maxima (as the MIT people did with scheme) leave
out the reference to the jerks at Num Rec who tried to control the use
of a freely available algorithm, and get on with things.

-sen




On Tue, 8 May 2007, Robert Dodier wrote:

> Disclaimer: I am not a lawyer.
>
> On 5/6/07, Alasdair McAndrew <amca01 at gmail.com> wrote:
>
>> Attached is a simple program to implement Brent's method of finding a root
>> of a non-linear equation.  It uses a combination of the bisection and secant
>> methods, and inverse quadratic interpolation, to provide guaranteed
>> convergence to a root, using the best possible method at each step.  My
>> program is just a Maxima translation of the C program given in "Numerical
>> Recipes", which can be found at
>> http://www.nrbook.com/b/bookcpdf/c9-3.pdf.
>
> Alasdair, thanks for your interest in this topic. I'm sorry to be a
> wet blanket here but the Maxima project can only accept code
> released under a GPL-compatible license or in the public domain.
> The NR code is neither, and so derived works (e.g. translations)
> are not.
>
> Not sure if you intended to offer the code as a contribution to the
> project, but I thought it best to raise the issue anyway.
>
> Here is what the Numerical recipes web site says:
> (http://www.numerical-recipes.com/infotop.html)
> Question: "You want to translate some (or all) the Numerical Recipes
> routines to a different computer language, and then redistribute the
> resulting translations."
> Answer: "If you are a licensed NR user, you can make any personal use
> you want on a licensed screen, including translating NR to another
> computer language. However, you can't redistribute the translations in any
> manner, since they are 'derivative works' and still subject to our copyright."
>
> That said, maybe if someone writes to the NR copyright holders
> they will grant an exception to release the code under the GPL.
> Wouldn't hurt to ask.
>
> I found an implementation of Brent's algorithm in Scheme.
> http://www-swiss.ai.mit.edu/~gjs/6946/linux-install.htm
> However a comment in the source code states that it is
> also derived from Numerical Recipes. Probably there are lots of
> other implementations out there.
>
> All the best,
> Robert
> _______________________________________________
> Maxima mailing list
> Maxima at math.utexas.edu
> http://www.math.utexas.edu/mailman/listinfo/maxima
>

-- 
  ---------------------------------------------------------------------------
  | Sheldon E. Newhouse            |    e-mail: sen1 at math.msu.edu           |
  | Mathematics Department         |       				   |
  | Michigan State University      | telephone: 517-355-9684                |
  | E. Lansing, MI 48824-1027 USA  |       FAX: 517-432-1562                |
  ---------------------------------------------------------------------------