2004: NR in JAVA
remagnino
10-05-2004, 04:52 AM
Two Years after my original request
Hello There
Could anyone from the NR team tells us when the NR will be released in JAVA? Never, or soon? If soon, how soon?
many thanks
Paolo
StupendousMan
12-01-2004, 05:39 PM
Hear Hear!
I would be honored to help build out test cases or something similarly usefull.
Rick
tdunning
01-19-2005, 01:04 AM
Perhaps it is time to start work on our own version.
I would suggest that we start with something like the JAMA library which is a simple matrix package that achieves OK performance in most cases.
That would avoid having to deal with the famous off by one design of the original algorithms.
It should be relatively easy to get good implementations since the alternative languages can generate test cases ad libitum.
Would anybody like to volunteer to lead the project?
Should I start the ball rolling?
StupendousMan
01-19-2005, 11:36 AM
Well, I seem to recall Mr. Press saying that he was nearly complete in one of these posts, so I'm not quite ready to jump in and start coding.
Also, if the NR Team is not going to do it, I'd like to get their blessing, or at least assurances that we aren't considered a threat.
Meantime, I will have look at the library you mentioned.
Rick (also in San Diego)
tdunning
01-19-2005, 01:13 PM
It was Dr. Vetterling who posted the most about having a port almost done and not wanting too many cooks.
My guess that it is like many projects where reach exceeds grasp. These things take a fair bit of work to do and it is easy for them to fall by the wayside.
I would love their blessing, but I am can't wait another two years for it.
Originally posted by StupendousMan
Well, I seem to recall Mr. Press saying that he was nearly complete in one of these posts, so I'm not quite ready to jump in and start coding.
Also, if the NR Team is not going to do it, I'd like to get their blessing, or at least assurances that we aren't considered a threat.
Meantime, I will have look at the library you mentioned.
Rick (also in San Diego)
StupendousMan
02-17-2005, 11:45 AM
I sent a private message to Dr. Vettering and got no reply. We can only assume that he has no interest in the topic at this time.
I'm in. You can reach me at
rross (a) stupendousman daught com
tdunning
02-18-2005, 03:09 AM
I sent Mr. Stupendous a zip file containing the code for the translation of dfpmin and the associated line search.
I would be interested in hearing other people comment on the approach I have taken.
My basic design philosophy in the translations is that the algorithms are what is important and that this far along, exact correlation to the original Fortran versions of the algorithms is very much unimportant at this point.
As such, I think it is reasonable to take all of the linear algebra code as given in a standard Java package. I have chosen Jama because it gives me high enough performance and is very simple. I have also opted to drop the ancient and thoroughly out-moded "arrays start at 1" convention that is prevalent in the numerical recipes official code. Finally, I have taken a much more Java-conventional approach to program style. Thus, the gradient minimizer that I translated is represented by a minimizer object that is constructed using a function and a gradient. After the optimization has been run, this object can be interrogated for information such as the final function value or the optimum input values or the number of iterations. I also feel that test cases are very important even if they only represent regression tests which prevent code operation from changing by surprise.
That said, in spite of the considerable liberties I have taken, I still feel that there needs to be a strong llinkage back to the original books and the discussions there. I don't feel, though, that this link has to actually be any stronger than a line in the Javadoc.
What does anybody else think?
What code should be next on the list to translate?
Does anybody want to start and administer a source forge or other kind of open source repository?
StupendousMan
02-18-2005, 12:48 PM
Design philosophy: I agree.
Jama : Never used it.. but that's fine. It could be a point of contention (competing tools etc) but not much to do about that at this point. Is it free and freely distributable?
Test cases : Absolutely. Of primary importance. My personal goal was to get better with the NR routines via supporting this project with test cases. It looks like I might end up doing a bit more :-) I would like people to be able to easily run check data through our algorithms.
My other hope was a considerably more OO styled codebase as well.. so I think I am quite happy with your introduction.
I've got space on my hosted domain, but not enough control for a CVS install, so we can go beg sourceforge. I'll look into it.
P.S. It's Rick Ross... nice to meet ya.