# [Rcpp-devel] Multiplication of ComplexVector?

Christian Gunning xian at unm.edu
Tue Aug 17 02:19:43 CEST 2010

```Dear list,

I'm trying to use the ComplexVector class, and I'm having difficulty
with multiplication. I sugar multiplication, element-by-element
multiplication (no * operator for either), and using temporary
Rcomplex variables (don't really understand what I'm doing here).

I was able to successfully import get("*") as an Rcpp::Function and do
the multiplication through R. Is this the best option for now?

Thanks,
Christian Gunning
University of New Mexico

// doesn't work
SEXP rcpp_hello_world(SEXP i, SEXP ii){
using namespace Rcpp ;

ComplexVector y1(i), y2(ii);
int n(y1.size()), j;
ComplexVector y3(n), y4(n);
y3 = y1 * y2;  // no operator
for (j = 0; j++; j<n) {
y4[j] = y1[j] + y2[j]; // no operator
}
List z            = List::create( y1, y2, y3) ;
return z ;
}

// does work, doing multiplication in R
SEXP mymult(SEXP input1, SEXP input2) {
Rcpp::Environment base("package:base");
Rcpp::Function funbase = base["get"];
SEXP funbase1 = funbase("*");
Rcpp::Function funmult(funbase1);
Rcpp::ComplexVector xxa = funmult(input1, input2);
return xxa;
}

SEXP rcpp_hello_world(SEXP i, SEXP ii){
using namespace Rcpp ;
ComplexVector y3( mymult(i, ii) );
return y3 ;
}
```