About Copyrights on Computer Programs @Numerical Recipes - consideration for stdlib

I have seen gone through the copyright policies of Numerical Recipes, C++ version. I found this interesting note:

Like artistic or literary compositions, computer programs are protected by copyright.
Generally it is an infringement for you to copy into your computer a program
from a copyrighted source. (It is also not a friendly thing to do, since it deprives the
program’s author of compensation for his or her creative effort.) Under copyright
law, all “derivative works” (modified versions, or translations into another computer
language) also come under the same copyright as the original work.
Copyright does not protect ideas, but only the expression of those ideas in a particular
form. In the case of a computer program, the ideas consist of the program’s*
methodology and algorithm, including the necessary sequence of steps adopted by
the programmer. The expression of those ideas is the program source code (particularly
any arbitrary or stylistic choices embodied in it), its derived object code, and
any other derivative works.
If you analyze the ideas contained in a program, and then express those ideas
in your own completely different implementation, then that new program implementation
belongs to you. That is what we have done for those programs in this book
that are not entirely of our own devising. When programs in this book are said to be
“based” on programs published in copyright sources, we mean that the ideas are the
same. The expression of these ideas as source code is our own. We believe that no
material in this book infringes on an existing copyright.

With this leeway, can’t we convert them into OO Fortran and use them in stdlib ?
Sorry, I am just exploring various options for quickly building stdlib - so that we can use it.

If you manually translated C++ Numerical Recipes to modern Fortran, I don’t think that would count as a “completely different interpretation”, and it’s better to avoid gray areas. Reading the explanatory text of the book to learn algorithms that can then be coded is fine. Before widespread access to the Internet, Numerical Recipes was a valuable resource, but now it is possible to find online codes of similar or higher quality for the same algorithms.

Numerical methods for scientists and engineers, 3rd ed., by H.M. Antia is a book of similar scope, and the author has placed the Fortran 77 and C code online. A review is here. When I emailed Antia about the license of the code, he replied “You can assume the MIT license.”

The protection of “ideas” is the domain of patents, not copyright. That said, a lot of people have somewhat dismissive views of the Numerical Recipes routines. Most vendors that provide numerical libraries with their compilers start with the LaPack routines instead. If you want library routines beyond the ones already intrinsic in Fortran, I’d probably start with LaPack (Linear Algebra Package).

@Ashok I would very strongly recommend to stay away from numerical recipes and implement algorithms into stdlib either from scratch or from permissively (MIT/BSD) licensed code (and copy the license as directed). We don’t want to get into any kind of copyright dispute.

1 Like