Hey Christian,

Thanks very much for the great reply! Will do some more testing and post my
results hopefully sometime next week.

Jeff

On Fri, Sep 16, 2011 at 11:18 PM, Christian Gunning <x...@unm.edu> wrote:

> Jeff,
>
> A few random comments in addition to Dirk's sound advice:
>
> 1.  I recommend using bigger matrices for testing just to get a feel.
> For testing loop speed, you want the proportion of loop time to be
> *very high* compared to the R interpreter overhead, resolution of your
> timer, etc.   Here, the extra as<arma::mat> and wrap() in armaSrc may
> add appreciable execution time relative to the loop work -- only
> testing will tell :)
>
> 2.  Another advantage of big matrices is testing the relative impact
> of memory copying versus in-place modification.  Both Rcpp and
> RcppArmadillo allow for both -- for the former, search the quickref
> for "clone" for an intro.  With RcppArmadillo, in-place is a little
> more involved, but look for this line:
> "However, if copy_aux_mem is set to false, the matrix will instead
> directly use the auxiliary memory (ie. no copying). This is faster,
> but can be dangerous unless you know what you're doing!"
> http://arma.sourceforge.net/docs.html#Mat
>
> 3.  I've modified the below to move the +op from the conditional
> evaluation to the definition.  For small thetaEndIndex or simple ops,
> this won't matter, but for theatEndIndex = 1e12 and something like a
> vec.size() accessor, it can make a noticeable difference.  In general,
> it's a good habit not to put ops in the conditional unless you really
> need them.
>
> > armaSrc <- '
> ...
> >        int thetaEndIndex = as<int>(sthetaEndIndex) - 1;
> ...
> >        for (int i = thetaStartIndex + 1; i <= thetaEndIndex; i++) {
>
> best,
> Christian
>
> --
> A man, a plan, a cat, a ham, a yak, a yam, a hat, a canal – Panama!
>
_______________________________________________
Rcpp-devel mailing list
Rcpp-devel@lists.r-forge.r-project.org
https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel

Reply via email to