[Rcpp-devel] as<arma::cx_double>(x)
    baptiste auguie 
    baptiste.auguie at googlemail.com
       
    Wed Oct 26 04:05:58 CEST 2011
    
    
  
Dear list,
I'm probably missing something basic, but I expected the following to work,
library(RcppArmadillo)
library(inline)
fx <- cxxfunction(signature(x = "Rcomplex") , '
         arma::cx_double y = as<arma::cx_double>(x);
         return wrap( y ) ;
       ', plugin = "RcppArmadillo" )
fx( 1+2i )
yet it fails to compile. I believe I need a conversion since arma does
not know what to do with Rcomplex objects, e.g. multiplying x by i =
arma::cx_double(0,1) yields
error: no match for 'operator*' in 'x * i'
I've successfully used cx_vec instead of cx_double,
fx <- cxxfunction(signature(x = "Rcomplex") , '
         arma::cx_vec y = as<arma::cx_vec>(x);
         const arma::cx_double i = arma::cx_double(0,1);
         return wrap( y * i ) ;
       ', plugin = "RcppArmadillo" )
fx( 1+2i )
Does this make sense?
Best regards,
baptiste
    
    
More information about the Rcpp-devel
mailing list