<div dir="ltr">Hi Michael,<div><br></div><div>Thanks for reporting -- things like this signal that we could do better error reporting, e.g. it might be more appropriate to see</div><div><br></div><div><span style="font-family:arial,sans-serif;font-size:13px">Error in eval(expr, envir, enclos) (from srcConn#6) :</span><br style="font-family:arial,sans-serif;font-size:13px">
<span style="font-family:arial,sans-serif;font-size:13px">        Wrong R type for mapped vector (expected 'double', got 'integer')</span><br></div><div><span style="font-family:arial,sans-serif;font-size:13px"><br>
</span></div><div><span style="font-family:arial,sans-serif;font-size:13px">or something to that effect. You might consider logging an issue at </span><font face="arial, sans-serif"><a href="https://github.com/RcppCore/RcppEigen">https://github.com/RcppCore/RcppEigen</a> so that we might tackle it later.</font></div>
<div><span style="font-family:arial,sans-serif;font-size:13px"><br></span></div><div><span style="font-family:arial,sans-serif;font-size:13px">Cheers,</span></div><div><span style="font-family:arial,sans-serif;font-size:13px">Kevin</span></div>
</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Jun 27, 2014 at 11:31 AM, Michael Hannon <span dir="ltr"><<a href="mailto:jmhannon.ucdavis@gmail.com" target="_blank">jmhannon.ucdavis@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Thanks, Dirk.  Last night I woke up with a cramp in my leg and the<br>
inspiration that the problem was in the R test code, not in the call<br>
to Eigen.  I was absent-mindedly creating integer matrices in my test<br>
code.  After I changed to:<br>
<br>
    amat <- matrix(as.numeric(1:9), nrow=3)<br>
<br>
etc., the Eigen stuff worked just fine.  Sorry for the noise.<br>
<br>
-- Mike<br>
<div class="HOEnZb"><div class="h5"><br>
On Fri, Jun 27, 2014 at 2:38 AM, Dirk Eddelbuettel <<a href="mailto:edd@debian.org">edd@debian.org</a>> wrote:<br>
><br>
> On 26 June 2014 at 16:01, Michael Hannon wrote:<br>
> | Greetings.  I've been trying to get familiar with RcppArmadillo and RcppEigen.<br>
> | As my "Hello, world!" example I'm using matrix multiplication.  I got the<br>
> | Armadillo version to work, but I'm having trouble with the Eigen version.<br>
> |<br>
> | I'm trying to mimic one of Dirk's gallery snippets:<br>
> |<br>
> |     <a href="http://gallery.rcpp.org/articles/eigen-eigenvalues/" target="_blank">http://gallery.rcpp.org/articles/eigen-eigenvalues/</a><br>
> |<br>
> | I've appended the details.  My problem is that I evidently don't know what to<br>
> | return from the function.  I've tried various alternatives, but the only one<br>
> | that compiles is:<br>
> |<br>
> |     return C;  // C = A * B<br>
> |<br>
> | This compiles but produces the error message:<br>
> |<br>
> |     > mat_mul_eigen(amat, bmat)<br>
> |     Error in eval(expr, envir, enclos) (from srcConn#6) :<br>
> |         Wrong R type for mapped vector<br>
> |<br>
> | I must be overlooking something obvious.  Suggestions welcome.  Thanks.<br>
><br>
> I am out at a conference and can't look in detail but I would invite you to<br>
> check the other examples in the package itself: The unit tests are one<br>
> source, the examples and FastLm are another and then there are the other<br>
> packages using RcppEigen as well as other Rcpp Gallery posts.  This should be<br>
> fixable pretty easily.<br>
><br>
> Dirk<br>
><br>
><br>
> | -- Mike<br>
> |<br>
> | (File is: mat_mul_eigen.cpp.  Executed in R via:<br>
> |     sourceCpp("./mat_mul_eigen.cpp")<br>
> | )<br>
> |<br>
> |<br>
> | #include <RcppEigen.h><br>
> |<br>
> | // [[Rcpp::depends(RcppEigen)]]<br>
> |<br>
> | using Eigen::Map;               // 'maps' rather than copies<br>
> | using Eigen::MatrixXd;                  // variable size matrix,<br>
> | double precision<br>
> | using Eigen::VectorXd;                  // variable size vector,<br>
> | double precision<br>
> |<br>
> | // [[Rcpp::export]]<br>
> |<br>
> | MatrixXd  mat_mul_eigen(Map<MatrixXd> A_,<br>
> | Map<MatrixXd> B_) {<br>
> |<br>
> |   MatrixXd C(A_ * B_);<br>
> |<br>
> |   return C;<br>
> | }<br>
> |<br>
> |<br>
> | /*** R<br>
> |<br>
> | library(microbenchmark)<br>
> | amat <- matrix(1:9, nrow=3)<br>
> | bmat <- matrix(10:18, nrow=3)<br>
> |<br>
> | mat_mul_eigen(amat, bmat)<br>
> |<br>
> | amat %*% bmat<br>
> |<br>
> | microbenchmark(<br>
> |   amat %*% bmat,<br>
> |   mat_mul_eigen(amat, bmat)<br>
> | )<br>
> |<br>
> | */<br>
> | _______________________________________________<br>
> | Rcpp-devel mailing list<br>
> | <a href="mailto:Rcpp-devel@lists.r-forge.r-project.org">Rcpp-devel@lists.r-forge.r-project.org</a><br>
> | <a href="https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel" target="_blank">https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel</a><br>
><br>
> --<br>
> <a href="http://dirk.eddelbuettel.com" target="_blank">http://dirk.eddelbuettel.com</a> | @eddelbuettel | <a href="mailto:edd@debian.org">edd@debian.org</a><br>
_______________________________________________<br>
Rcpp-devel mailing list<br>
<a href="mailto:Rcpp-devel@lists.r-forge.r-project.org">Rcpp-devel@lists.r-forge.r-project.org</a><br>
<a href="https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel" target="_blank">https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel</a><br>
</div></div></blockquote></div><br></div>