<div dir="ltr"><div>No need to convert NumericMatrix to Armadillo matrix, Rcpp does that automatically.<br></div><div>I also changed the name of your functions because they were the same.<br></div><div><br>#include <RcppArmadillo.h><br>
using namespace Rcpp ;<br>// [[Rcpp::depends(RcppArmadillo)]]<br><br>// [[Rcpp::export]]<br>List list_check(arma::mat B) {<br>    int p = B.n_cols;<br>    arma::mat AA = B*B;<br>    arma::vec X = B.col(0);<br> <br>    return List::create(_["X"] = X, <br>
            _["AA"] = AA, <br>            _["p"] = p);<br>    <br>}<br><br>// [[Rcpp::export]]<br>List check_C(arma::mat A) {<br>    List L = list_check(A);<br>    return List::create(_["mylist"] = L); // recursive list<br>
}<br><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Dec 27, 2013 at 8:36 PM, Scott Monroe <span dir="ltr"><<a href="mailto:monroeleescott@gmail.com" target="_blank">monroeleescott@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">I am trying to figure out how to create a package where I have one function call another, which returns a list.  Some example .cpp code is below.  If I just compile the first function, everything is fine.  When I add the second function, I get errors.  I'm sure I'm using the Rcpp::List syntax incorrectly, but I haven't had luck finding an example of how to do this.<div>

<br></div><div>Again, I'd like to be able to call the first function from the second, grab the results from the returned list, and do further computations.</div><div><br></div><div>Thanks, Scott<div><div><br></div><div>

<br></div><div><div>#include <RcppArmadillo.h></div><div>using namespace Rcpp ;</div><div>// [[Rcpp::depends(RcppArmadillo)]]</div><div><br></div><div>// [[Rcpp::export]]</div><div>List check_C(NumericMatrix B) {</div>

<div>  arma::mat A = Rcpp::as<arma::mat>(B);</div><div>  int p = A.n_cols;</div><div>  arma::mat AA = A*A;</div><div>  arma::vec X = A.col(0);</div><div><br></div><div>  return Rcpp::List::create(Rcpp::Named("X")=X, Rcpp::Named("AA")=A, Rcpp::Named("p")=p);</div>

<div>}</div><div><br></div><div>// [[Rcpp::export]]</div><div>List check_C(NumericMatrix A) {</div><div>  Rcpp::List L = check_C(A);</div><div><br></div><div>  return Rcpp::List::create(Rcpp::Named("A")=A);</div>

<div>}</div></div><div><br></div><div><br></div><div><br></div></div></div></div>
<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></blockquote></div><br><br clear="all"><br>
-- <br><div dir="ltr">Ahmadou H. DICKO<br>statistician economist (Ingénieur Statisticien Économiste)<br>PhD candidate in Climate change economics<br>Faculty of economics and managment - Cheikh Anta Diop University<br>West African Science Service Center on Climate Change and Adaptated Land Use (WASCAL)<br>
Center for Development Research (ZEF) - University of Bonn <br>email : <a href="mailto:ahmadou.dicko@ucad.edu.sn" target="_blank">ahmadou.dicko@ucad.edu.sn</a><br>twitter : @dickoah<br>github : <a href="https://github.com/dickoa" target="_blank">github/dickoa</a><br>
tel : +221 33 827 55 16<br>portable: +221 77 123 81 69<br></div>
</div>