But for the math we do have Armadillo and RcppArmadillo. So in the short run, I
would suggest the following two-step procedure:
i) have a good look at Armadillo (http://arma.sf.net) and use the cx_mat
or cx_vec types for mulitplication; write a small test program to see
that everything works
ii) use RcppArmadillo to from R via Rcpp / RcppArmadillo to this
functionality
| I was able to successfully import get("*") as an Rcpp::Function and do
| the multiplication through R. Is this the best option for now?
I am sure we can do better than this but I am not sure all pieces are in
place just yet.
Cheers, Dirk
| 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 ;
| }
| _______________________________________________
| 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