Hi Rohit, It is fine if you are using the Newton's method just as an excuse to learn Rcpp. If, however, your main goal is to develop a package to implement Newton's method, then you need to stop and look at the numerous optimization packages available in R. A good place to start would be the "optimx" package, which unifies a large number of optimiaztion tools under one umbrella.
Hope this helps, Ravi. ____________________________________________________________________ Ravi Varadhan, Ph.D. Assistant Professor, Division of Geriatric Medicine and Gerontology School of Medicine Johns Hopkins University Ph. (410) 502-2619 email: rvarad...@jhmi.edu ----- Original Message ----- From: Rohit Pandey <rohitpandey...@gmail.com> Date: Sunday, February 6, 2011 11:33 am Subject: [R] Help with integrating R and c/c++ To: r-help@r-project.org > Hi, > > I have been using R for close to two years now and have grown quite > comfortable with the language. I am presently trying to implement an > optimization routine in R (Newton Rhapson). I have some R functions that > calculate the gradient and hessian (pre requisite matrices) fairly > efficiently. Now, I have to call this function iteratively until some > convergance criterion is reached. I think the standard method of > doing this > in most programming languages is a while loop. However, I know R can > get > pretty slow when you use loops. In order to make this efficient, I > want to > transfer this part of my code to a more efficient programming > language like > c++ or c. However, I have been trying to learn this all day without any > luck. I found a package called Rcpp that makes this easier. However, > it > seems some functional knowledge of writing R packages is a pre > requisite. I > tried to follow the standard manual for doing this, but could not > find a > simple example to get me started. I know I am supposed to make a cpp > file > and put it some where before it can be called from R, but I'm > confused as to > how this can be done. > > My requirement is to start with a parameter vector, update it > according to > the gradient and hessian, check if the parameter satisfies some convergance > criterion and continue doing this until it does. Is there a way to > efficiently do this through an R function (replicate?). The problem > is that > the number of iterations is not fixed. If there is no function in R, > is > there a way I can quickly use Rcpp or some thing to have this last > part of > my code in a C or C++ program which repeatedly calls my R functions for > updating the parameters? > > -- > Thanks in advance, > Rohit > Mob: 91 9819926213 > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help@r-project.org mailing list > > PLEASE do read the posting guide > and provide commented, minimal, self-contained, reproducible code. ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.