[Rcpp-devel] Is there a way to pass references to R

Nick Matzke matzke at berkeley.edu
Sat Dec 22 01:16:45 CET 2012


I'm working on a problem that involves calculating a very 
large, sparse transition probability matrix, P.  It takes 
significant time to run through the whole matrix, check all 
the transitions, and put in the appropriate probabilities, 
based on multiplying parameter values j, d, e, etc.

Each time I update j, or d, or e, I would rather not go 
re-process which cells of P get j, j*d, d*e, etc.  It would 
be better to just do this once, with j, d, and e each just 
referring to a memory address.  I could then update the 
values at that memory address and re-use the matrix P 
without re-building it again and again.

Currently, my script builds P via an Rcpp function, then 
passes it to R, where it gets used (with the values 
calculated) a few hundred times (via another Rcpp function); 
then j, d, and e are updated and I have to re-calculate P.

So, my question is, is there a way to make P, currently a 
vector of float vectors, into a vector of float pointers, 
which can be passed to R and then back to Rcpp?  Or is this 
just ridiculous?


Nicholas J. Matzke
Ph.D. Candidate, Graduate Student Researcher

Huelsenbeck Lab
Center for Theoretical Evolutionary Genomics
4151 VLSB (Valley Life Sciences Building)
Department of Integrative Biology
University of California, Berkeley

Graduate Student Instructor, IB200B
Principles of Phylogenetics: Ecology and Evolution

Lab websites:
Dept. personal page: 
Lab personal page: 
Lab phone: 510-643-6299
Dept. fax: 510-643-6264

Cell phone: 510-301-0179
Email: matzke at berkeley.edu

Mailing address:
Department of Integrative Biology
1005 Valley Life Sciences Building #3140
Berkeley, CA 94720-3140

"[W]hen people thought the earth was flat, they were wrong. 
When people thought the earth was spherical, they were 
wrong. But if you think that thinking the earth is spherical 
is just as wrong as thinking the earth is flat, then your 
view is wronger than both of them put together."

Isaac Asimov (1989). "The Relativity of Wrong." The 
Skeptical Inquirer, 14(1), 35-44. Fall 1989.

More information about the Rcpp-devel mailing list