[R] Converting Fortran or C++ etc to R
Murray Jorgensen
maj at waikato.ac.nz
Fri Jan 7 10:38:16 CET 2011
I will wind this thread up with some happy comments. I have indeed
succeeded in constructing an R program to do the same thing as my
Fortran program for an EM algorithm. I have not done timings yet but it
seems to run acceptably fast for my purposes.
The key code to be replaced was the E and the M steps of the algorithm.
I decided to try to replace all the loops with matrix operations such as
%*%, t(), crossprod(), tcrossprod(). Other operations that I used were
of the form
A + v
where dim(A) = c(a, b) and length(v) = a. Here the vector v operates
term by term down columns, recycling for each new column. [ *, - and /
also work similarly.]
I was relived that matrices were as far as I needed to go, and I had
visions of having to use tensor products of higher dimensioned arrays.
Fortunately it did not come to that.
I didn't actually translate from F to R. The original is itself a
translation of my underlying maths, and it was easier to translate the
maths into R directly.
I preserved the form of my Fortran input and output files so that I will
be able to run either version on the same files.
As I mentioned earlier the main point of doing all this is so that I may
try out some variants of the program. I expect this will be much easier
to do in R!
Thanks to all who replied.
Murray
--
Dr Murray Jorgensen http://www.stats.waikato.ac.nz/Staff/maj.html
Department of Statistics, University of Waikato, Hamilton, New Zealand
Email: maj at waikato.ac.nz Fax 7 838 4155
Phone +64 7 838 4773 wk Home +64 7 825 0441 Mobile 021 0200 8350
More information about the R-help
mailing list