[Rcpp-devel] RcppArmadillo: passing complex matrices

romain at r-enthusiasts.com romain at r-enthusiasts.com
Fri Aug 6 17:47:30 CEST 2010


Hi, 

I cannot check this right now (being out) but i think you can just yse "as" : 


arma::cx_mat B = Rcpp::as< arma::cx_mat >( beta ) ;

where beta is your complex matrix from the R side.

Romain

Le 6 août 2010 à 15:56, "baptiste Auguié" <baptiste.auguie at googlemail.com> a écrit :

> Dear list,
> 
> I finally succeeded in porting some code from R to c++, with great performance improvement, although I suspect there are many ugly things since I don't really know c++. One particular worry of mine is the construct I use to pass a complex matrix from R to the armadillo code. Typically, I do the following (a lot),
> 
> using namespace Rcpp ;
> using namespace RcppArmadillo ;
> using namespace std;
> 
> extern "C" {
> 
> SEXP  foo(SEXP betar, SEXP betai){
> 
>      Rcpp::NumericMatrix Brc(betar), Bic(betai);
>      arma::cx_mat B =  arma::cx_mat( arma::mat(Brc.begin(), 3, N, false),  arma::mat(Bic.begin(), 3, N, false)); 
> 
> // [...]
> }
> }
> 
> where betar and betai have been obtained at the R level as Re(beta) and Im(beta).
> 
> Is there a simpler, more efficient and sweeter way?
> 
> Best regards,
> 
> baptiste
> 
> _______________________________________________
> 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


More information about the Rcpp-devel mailing list