I am having some doubts about publishing a code that uses a routine based on the globally convergent Newton method from Numerical Recipes. I do have the book and the routines. However, it wasn’t possible to incorporate their routine in the original form in my code. I had to heavily adapt it. Instead of a general routine, now it is a problem-specific one written in my coding style, using the globals of my main code, some features needed for the parallelization, a routine to compute Jacobian analytically, etc. Still there is some percentage of their original code spread over my version and it is certainly the same algorithm.

I know that the NR authors are particularly strict about their rights and that they do not allow sharing their source code. However, I have trouble to understand if my version of their code still falls under the license:

http://numerical.recipes/licenses/redistribute.html

It’s a bit awkward situation. On one hand, it is, of course, perfectly fair to respect their rights. On the other hand, a large part of their own routine is very basic matrix algebra (LU decomposition) that is part of many numerical math textbooks and should not be monopolized. The part that I’ve learned from their book/routine is how to use the linear search in the quasi-Newton method. As they do not provide any references in that section (9.7), I am not sure if this is their original addition to the method or not.

It is a relatively simple algorithm and I could program it from the scratch (I guess that should be perfectly legal?), but even in that case my implementation would likely be similar or at least influenced by their code.

Does anyone have experience with similar situation?