|
They don't own the algorithms. If you read their descriptions and turn them into code yourself, you're good. So "this is taken from NR" could actually be perfectly valid. And they're code doesn't exactly conform to best practices anyway, so if it's small (e.g. a random number generator), then implementing it yourself is a good idea. And if it's big (e.g. nonlinear optimization), you should use some other off-the-shelf implementation anyway, and just use NR to understand the theory behind it, strengths/weaknesses, etc. From the book: 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. |
It is also not that clear all of the algorithms are fully original clean-room implementations written by the authors --- the techniques in the book are well-known and previous implementations do exist, written by other academics. As such, claiming copyright on some the codes is not morally defensible, even if legal.
It's just better to not read the book at all. Since you cannot use the codes as is, if you want to learn about the theory behind it, it's better to pick a different book.