On 20 February 2011 at 09:50, Dirk Eddelbuettel wrote: | There is of course merit in working through the barebones API but in case you | would consider a higher-level alternative, consider these few lines based on | RcppArmadillo (which end up calling dgemm() for you via R's linkage to the BLAS)
PS I always forget that we have direct support in Rcpp::as<> for Armadillo matrices. The examples reduces to three lines in C++, and you never need to worry about row or column dimension, or memory allocation or deallocation: R> suppressMessages(library(inline)) R> txt <- ' + arma::mat Am = Rcpp::as< arma::mat >(A); + arma::mat Bm = Rcpp::as< arma::mat >(B); + return Rcpp::wrap( Am * Bm ); + ' R> mmult <- cxxfunction(signature(A="numeric", B="numeric"), + body=txt, + plugin="RcppArmadillo") R> A <- matrix(1:9, 3, 3) R> B <- matrix(9:1, 3, 3) R> C <- mmult(A, B) R> print(C) [,1] [,2] [,3] [1,] 90 54 18 [2,] 114 69 24 [3,] 138 84 30 R> Matrices A and B from directly initialise Armadillo matrices, and the result can be returned directly. Hth, Dirk -- Dirk Eddelbuettel | e...@debian.org | http://dirk.eddelbuettel.com ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel