Hello,

After the last thread, I looked again at armadillo and came up with a way to make it aware of Rcpp sugar, so that we can create an armadillo matrix from an Rcpp sugar expression, without having to assign the expression into an Rcpp vector.

For example :

        NumericVector xx(x) ;
        arma::mat m = forward( xx + xx ) ;

But also for complex expressions : (expressions that make complex vectors ) :

        ComplexVector xx(x) ;
        arma::cx_mat m = forward( exp( xx ) ) ;
        

It needs the svn version of both Rcpp and RcppArmadillo to work.
It does not deal with dimensions at the moment, it just makes a arma matrix with one column, I'll deal with that later.


The name forward might not be the right verb here, I was also thinking about "melt" so that we melt sugar into caramel, but I'd like to hear what others do with sugar.




BTW, one thing this gives is the construct :

arma::mat m = forward( NumericVector(x) ) ;

which I believe will be more efficient than

arma::mat m = Rcpp::as< arma::mat >( x ) ;

because it makes less copies. However I have not yet found a way to make it "borrow" the memory as in the advanced constructor in armadillo.


Romain

--
Romain Francois
Professional R Enthusiast
+33(0) 6 28 91 30 30
http://romainfrancois.blog.free.fr
|- http://bit.ly/bzoWrs : Rcpp svn revision 2000
|- http://bit.ly/b8VNE2 : Rcpp at LondonR, oct 5th
`- http://bit.ly/aAyra4 : highlight 0.2-2

_______________________________________________
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