[Rcpp-devel] Step-by-Step Plan to Code Writing and Testing withRcpp, RcppGSL or RcppArmadillo
Dirk Eddelbuettel
edd at debian.org
Thu Dec 9 05:42:16 CET 2010
On 8 December 2010 at 20:05, Savitsky, Terrance wrote:
| Hello Dirk, I sincerely apologize for how I started the dialogue. May
| I have a do-over?
Sure.
| I am an inexperienced developer. So I'm looking
| forward to using Rcpp to improve my productivity and output quality with
| writing C++ for R implementation. I will re-read the documents and
| presentations you've publicly posted.
|
| My interest in examples is focused towards imitation before innovation.
We actually think along the same lines. What you dismissed earlier as
"marketing" is, seen from another angle, a fairly large set of working
examples. So let's focus on those.
For now, forget RcppArmadillo, RcppGSL, ... and concentrate on just Rcpp.
There are numerous examples in the package itself -- see the examples/
subdirectory. Let's get those to work first.
| I'll seek out archived examples for this, which will hopefully focus my
| start-up efforts. I do, however, have a couple of f/u questions:
|
| To your point, "How could there not be debugging support with gdb if g++
| is used?" - Does R CMD use the g++ compiler? Since my code is quite
Yes. It is essentially the only C++ compiler R uses by default.
| long, I just want to find a way to efficiently debug. I can't compile
| my Rcpp C++ code (with wrappers around R SEXP objects) outside of R, so
Why? We do it all the time with Makefiles. See the examples/ mentioned above.
| I'm looking for how to compile with debugging support in R. I typically
| write C code and compile and run (via cygwin gcc in Windows) with gdb.
Have you ever written any C/C++ code for R? Do you know Cygwin is not
supported?
When I say 'Rtools' do you have a Pavlovian reflex to the Murdock-Sutherland
site? You better do ... See 'Writing R Extensions' for starters.
In a nutshell you need a set of compilers etc just for R. Luckily these have
been setup.
| It's not obvious to me how this process would work when writing Rcpp C++
| code for compilation and implementation in R.
|
| What IDE do Windows users typically choose for their Rcpp C++ code
| writing? Is it any different from the IDE they would use for non-Rcpp
| standalone C/C++ code not interfaced with R?
Well personally speaking I use the same IDE on all platforms: Emacs. Within
the Rcpp Core team, some of us work on OS X and some work on Linux. But it
should not matter: R and R add-ons like Rcpp work on Windows, OS X and Linux.
Use whichever platform you find easiest. Personally, I like Ubuntu and
Debian a lot.
Dirk
|
| Terrance Savitsky
|
|
|
| On 8 December 2010 at 17:44, Savitsky, Terrance wrote:
| | I?m having difficulty to find ?How-to? documentation; the papers and
| | presentations (including the RcppExamples package) are exciting, but
| focus on
| | marketing use,
|
| Nice way to start a dialogue with us by telling us we're idiots. Keep
| going.
|
| | rather than providing instructions. I?d appreciate any help to
| | get started to:
| |
| | 1. Code C++ using the Rcpp, RcppGSL and RcppArmadillo libraries.
|
|
| I don't know how many example we posted on blogs, this list and in
| presentations. Exactly which did not work?
|
|
|
| | a. May I link my IDE (netbeans) to the lib.a files and use the
| | appropriate .h files for composing C++ code for compilation in R?
|
| Don't know, don't care. Ex-ant this is for __R__ where the command is
| 'R CMD ...'
| and/or Makefiles.
|
| If you need netbeans, you get to figure out netbeans. Exiciting to be
| trailblazer, eh?
|
| | b. Do RcppGSL and RcppArmadillo contain the Rcpp classes or
| should the
| | header files from both be included (e.g. #include Rcpp.h, #include
| | RcppArmadillo.h)
|
| Have you looked at the examples. They work, and they provide the anwwer.
|
| | c. The matrix and vector classes, including views, Rcpp
| implementation of
| | the C library GSL employs new C++ capabilities and different syntax
| (e.g.
| | extraction of pointers from matrix or vector view objects). Is there
| detailed
| | documentation with examples for these class implementations. The
| differences
| | from GSL disable using that documentation.
|
| I have no idea what you are trying to say here. You are mixing two core
| APIs
| (Views in Rcpp only exist in the classic API) and two 'glued-on'
| libraries
| one of which is C --- so there are bound to differences.
|
| | d. Should RcppExport be used in place of ?extern C? in C++ under
| Rcpp
| | whenever we wish to input R data types such as matrix, vector and list
| (due to
| | need to call .Call)?
|
| Look at the definiton and decide for yourself. Using the define has the
| advantage that should we ever change it ...
|
| | 2. Compile and debug code using Inline or other preferred
| alternatives.
| |
| | a. The illustrations in presentations seem to copy and paste the
| entire
| | code from C++ in single quotes with an assignment to a variable
| subsequently
| | used with inline in R. My code (a Bayesian MCMC implementation) will
| be on the
| | order of 600 lines long with about 10 input variables. Is there a
| better way
| | to use inline?
|
| Up to you. Inline is for experimentation. We had a MCMC example on the
| list
| following Whit's question. Did you look at it?
|
| | b. Is there any help on code debugging? (e.g. some equivalent of
| ?gdb?).
|
| How could there not be debugging support with gdb if g++ is used?
|
| | 3. Writing a package.
|
| Seen the Vignette?
|
| | a. What is the ?LinkingTo? declaration ? what purpose does it
| serve and
| | where is it used?
| |
| | b. Same for Makevars and Makevars.win?
|
| See 'Writing R Extensions'
|
| Dirk
|
|
| | Thanks, Terrance Savitsky
| |
| |
| |
| |
| |
| ________________________________________________________________________
| __
| |
| | This email message is for the sole use of the intended recipient(s)
| and
| | may contain confidential information. Any unauthorized review, use,
| | disclosure or distribution is prohibited. If you are not the intended
| | recipient, please contact the sender by reply email and destroy all
| copies
| | of the original message.
| |
| | ----------------------------------------------------------------------
| | _______________________________________________
| | Rcpp-devel mailing list
| | Rcpp-devel at lists.r-forge.r-project.org
| |
| https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel
|
| --
| Dirk Eddelbuettel | edd at debian.org | http://dirk.eddelbuettel.com
--
Dirk Eddelbuettel | edd at debian.org | http://dirk.eddelbuettel.com
More information about the Rcpp-devel
mailing list