From: Joel Bremson <joel3000_at_gmail.com>

Date: Fri 29 Apr 2005 - 07:41:01 EST

R-help@stat.math.ethz.ch mailing list

https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html Received on Fri Apr 29 07:50:47 2005

Date: Fri 29 Apr 2005 - 07:41:01 EST

At last, simple addition in R is now fast and easy!!!

They said it could never be done, but they've never heard of Fortran.

In order to add two numbers in R before you had to type:

*> 7 + 3
*

It was tedious to type and several hours could pass as you waited for your return value.

So, imagine the excitement around your lab or office when you type in:

*>.Fortran("add",as.numeric(7),as.numeric(3),as.numeric(0))
*

and get your result back faster then a greased goat!

Well now you can!

Here's how:

First create a file called add.f with the following code:

---------------------clip--------------------------------

c Add two numbers

subroutine add(a,b,c)

double precision a,b,c

c = a + b

end

------------------end clip------------------------------

Don't disturb the spacing, Fortran is fussy about that.

Now compile you're code:

g77 -c add.f

Now make a shared lib for R (unix/linux):

R CMD SHLIB add.o

This will create a file called 'add.so'

Now go into R:

*>dyn.load("add.so") # you might need an explicit path here
*

And now you too have the power of fast, easy, simple addition!!

*>.Fortran("add",as.numeric(7),as.numeric(3),as.numeric(0))
*

If you want to get real fancy you can put your .Fortran call into a function:

myadd = function(a,b){

out = .Fortran("add",as.numeric(a),as.numeric(b),c=as.numeric(0))
return(out$c)

}

*> x = myadd(3,7)
*

[1] 10

And you've done it! Be vanquished naysayers, simple addition will trouble us no more!

(I thought a very simple tutorial on integrating Fortran code into R might be of use.)

Joel Bremson

jbremson@wald.ucdavis.edu

Statistics Graduate Student

UC Davis

[[alternative HTML version deleted]]

R-help@stat.math.ethz.ch mailing list

https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html Received on Fri Apr 29 07:50:47 2005

*
This archive was generated by hypermail 2.1.8
: Fri 03 Mar 2006 - 03:31:28 EST
*