Hi Dirk,<br><br>I was referring to this page: <a href="http://dirk.eddelbuettel.com/code/rcpp.armadillo.html" target="_blank">http://dirk.eddelbuettel.com/code/rcpp.armadillo.html</a><br>i was trying to run the code there.<br>
<br>here is my understanding so far (im new to linux and c++ so i apologize for seeming rather slow!):<br>
1.  The Rcpp package helps C++ and R recognize each others stuff (like variables). <br><br>2. The RcppArmadillo package extends this functionality to objects used in armadillo (such as matrices and vectors e.g. colvec).  <br>
<br>3. In FastLM, armadillo is being included but not RcppArmadillo.  but that is ok because there is a loop in there which converts an vector as defined in armadillo to one which Rcpp recognizes.  And it is this vector which which gets passed back to R through the Rcpp interface.  also, it uses cfunction which is different from what im doing here as i think you mentioned earlier (it worked by the way!)<br>
<br>what i tried to do was as follows:<br>a) to run the code as in the link above and include Rcpp and RcppArmadillo and I was getting the errors as described in my initial post.  <br>b) then i tried the same code but only including Rcpp and armadillo.  <br>
<br>if my reasoning above is correct, part (b) should not run as Rcpp would not recognize stuff like arma::colvec.  but, i get the exact same error as above!  <br><br>so that suggests, that while compiling the code, the compiler is not even getting to the point in procedure b when it should encounters an type it doesnt recognize.  which means that somehow, armadillo is giving problems.  but that is as far as i can understand.  either that or my understanding is way off.<br>
<br>appreciate your patience and help!<br>abhisek<br><br><br>
<br><div class="gmail_quote">On Fri, Mar 26, 2010 at 4:20 PM, Dirk Eddelbuettel <span dir="ltr">&lt;<a href="mailto:edd@debian.org" target="_blank">edd@debian.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

<div><br>
On 26 March 2010 at 15:32, Abhisek wrote:<br>
| Hi Dirk,<br>
|<br>
| Just so that I understand.  I copied the code in the RcppArmadillo section<br>
| on your website and pasted and saved it.<br>
<br>
</div>What code? What page?<br>
<div><br>
| Are you saying I should change<br>
| #include &lt;RcppArmadillo&gt; to #include &lt;Rcpp&gt; and #include &lt;armadillo&gt; ?<br>
<br>
</div>No that is not what I said.  I said<br>
<div><br>
    You can&#39;t just look at FastLM() and think your code will run like it.<br>
    RcppArmadillo __does not export its classes__.  It is an implementation<br>
    reference -- it gives you guidance as to how to implement C++ packages of<br>
    your own against other libraries.<br>
<br>
    If you &quot;just&quot; want to use Armadillo and have Rcpp help you, look at the<br>
    installed example &#39;FastLM&#39; in the Rcpp package.  In other words ignore<br>
    RcppArmadillo for now.<br>
<br>
</div>So look at /usr/local/lib/Rcpp/examples/FastLM/ and the files there.  Run<br>
<br>
    fastLMviaArmadillo.r<br>
<br>
and look at it. That should work.<br>
<br>
You can also look at the _entire RcppArmadillo package_ and see how the<br>
pieces fit together, including src/Makevars.<br>
<br>
But don&#39;t just take semi-random shortcuts and expect that to work. If we<br>
could make it any simpler, we would.  There is a reason RcppArmadilli is<br>
package and not just a file.<br>
<font color="#888888"><br>
Dirk<br>
</font><div><div></div><div><br>
| best,<br>
| abhisek<br>
|<br>
| On Fri, Mar 26, 2010 at 1:40 PM, Dirk Eddelbuettel &lt;<a href="mailto:edd@debian.org" target="_blank">edd@debian.org</a>&gt; wrote:<br>
|<br>
| &gt;<br>
| &gt; Hi Abhisek,<br>
| &gt;<br>
| &gt; On 26 March 2010 at 12:28, Abhisek wrote:<br>
| &gt; | I downloaded the stuff just last friday so it should be the latest<br>
| &gt; version<br>
| &gt; | of Rcpp as well as Armadillo.  I used install.packages() for Rcpp and<br>
| &gt; | RcppArmadillo.  Armadillo is 0.9.4.  Im using xubuntu karmic koala.<br>
| &gt;<br>
| &gt; Ok, that is all good.  And if RcppArmadillo installed you have proper<br>
| &gt; libraries, Armadillo included.<br>
| &gt;<br>
| &gt; I think part of your problem is a misunderstanding of an issue we may not<br>
| &gt; have made particularly clear:  You can&#39;t just look at FastLM() and think<br>
| &gt; your code will run like it.  RcppArmadillo __does not export its classes__.<br>
| &gt; It is an implementation reference -- it gives you guidance as to how to<br>
| &gt; implement C++ packages of your own against other libraries.<br>
| &gt;<br>
| &gt; If you &quot;just&quot; want to use Armadillo and have Rcpp help you, look at the<br>
| &gt; installed example &#39;FastLM&#39; in the Rcpp package.  In other words ignore<br>
| &gt; RcppArmadillo for now.<br>
| &gt;<br>
| &gt; The example (in 0.7.10) uses an idiom we no longer like and I am about to<br>
| &gt; change that for an upcoming 0.7.11 release, but it should works as is and<br>
| &gt; just use inline -- so no messing with makefile etc.<br>
| &gt;<br>
| &gt; Try that and see how it goes and keep us posted.<br>
| &gt;<br>
| &gt; Cheers, Dirk<br>
| &gt;<br>
| &gt;<br>
| &gt; | i also had some problem using Armadillo which I posted on the Armadillo<br>
| &gt; | discussion board.  Conrad got back to me.  Here is the discussion:<br>
| &gt; | <a href="https://sourceforge.net/apps/phpbb/arma/viewtopic.php?f=1&amp;t=4" target="_blank">https://sourceforge.net/apps/phpbb/arma/viewtopic.php?f=1&amp;t=4</a><br>
| &gt; |<br>
| &gt; | so it may be that armadillo is the problem but im really not sure.<br>
| &gt; |<br>
| &gt; | Many thanks<br>
| &gt; | Abhisek<br>
| &gt; |<br>
| &gt; | On Fri, Mar 26, 2010 at 12:17 PM, Dirk Eddelbuettel &lt;<a href="mailto:edd@debian.org" target="_blank">edd@debian.org</a>&gt;<br>
| &gt; wrote:<br>
| &gt; |<br>
| &gt; | &gt;<br>
| &gt; | &gt; (resending, this time to list I omitted last time, sorry. --Dirk)<br>
| &gt; | &gt;<br>
| &gt; | &gt; On 26 March 2010 at 11:10, Abhisek wrote:<br>
| &gt; | &gt; | Hi,<br>
| &gt; | &gt; |<br>
| &gt; | &gt; | Ive been trying to make RcppArmadillo work using the example file<br>
| &gt; | &gt; (fastLM).<br>
| &gt; | &gt; | I copied and pasted the code and saved it as RcppArmadilloEg.cpp (not<br>
| &gt; to<br>
| &gt; | &gt; use<br>
| &gt; | &gt; | fastLM but to figure out how to work RcppArmadillo).  Then i tried<br>
| &gt; using<br>
| &gt; | &gt; the<br>
| &gt; | &gt; | command R CMD SHLIB RcppArmadilloEg.cpp but an error came up saying<br>
| &gt; that<br>
| &gt; | &gt; | RcppArmadillo.h not found.<br>
| &gt; | &gt; |<br>
| &gt; | &gt; | So i tried doing a symbolic link from /usr/local/include to the<br>
| &gt; directory<br>
| &gt; | &gt; | where RcppArmadillo.h and RcppArmadilloDefines.h is stored.  I also<br>
| &gt; did a<br>
| &gt; | &gt; | symbolic link analogously for RcppArmadillo.so.  When i ran R CMD<br>
| &gt; SHLIB<br>
| &gt; | &gt; | again I got the following error:<br>
| &gt; | &gt; |<br>
| &gt; | &gt; | abhisek@shieks:~/Desktop/Personal/Test$ R CMD SHLIB<br>
| &gt; RcppArmadilloEg.cpp<br>
| &gt; | &gt; | g++ -I/usr/share/R/include<br>
| &gt; | &gt; | -I/home/abhisek/R/i486-pc-linux-gnu-library/2.10/Rcpp/lib -fpic  -g<br>
| &gt; -O2<br>
| &gt; | &gt; -c<br>
| &gt; | &gt; | RcppArmadilloEg.cpp -o RcppArmadilloEg.o<br>
| &gt; | &gt;<br>
| &gt; | &gt; So far so good:  one -I for R as usual, one for Rcpp.<br>
| &gt; | &gt;<br>
| &gt; | &gt; | In file included from<br>
| &gt; | &gt; |<br>
| &gt; /home/abhisek/R/i486-pc-linux-gnu-library/2.10/Rcpp/lib/RcppCommon.h:215,<br>
| &gt; | &gt; |                  from<br>
| &gt; | &gt; | /home/abhisek/R/i486-pc-linux-gnu-library/2.10/Rcpp/lib/Rcpp.h:28,<br>
| &gt; | &gt; |                  from RcppArmadilloEg.cpp:1:<br>
| &gt; | &gt; |<br>
| &gt; | &gt;<br>
| &gt; /home/abhisek/R/i486-pc-linux-gnu-library/2.10/Rcpp/lib/Rcpp/internal/wrap.h:<br>
| &gt; | &gt; | In function ‘SEXPREC*<br>
| &gt; | &gt; Rcpp::internal::wrap_dispatch_unknown_iterable(const<br>
| &gt; | &gt; | T&amp;, Rcpp::traits::false_type) [with T = arma::Col&lt;double&gt;]’:<br>
| &gt; | &gt; |<br>
| &gt; | &gt;<br>
| &gt; /home/abhisek/R/i486-pc-linux-gnu-library/2.10/Rcpp/lib/Rcpp/internal/wrap.h:491:<br>
| &gt; | &gt; | instantiated from ‘SEXPREC*<br>
| &gt; Rcpp::internal::wrap_dispatch_unknown(const<br>
| &gt; | &gt; T&amp;,<br>
| &gt; | &gt; | Rcpp::traits::false_type) [with T = arma::Col&lt;double&gt;]’<br>
| &gt; | &gt; |<br>
| &gt; | &gt;<br>
| &gt; /home/abhisek/R/i486-pc-linux-gnu-library/2.10/Rcpp/lib/Rcpp/internal/wrap.h:509:<br>
| &gt; | &gt; | instantiated from ‘SEXPREC*<br>
| &gt; | &gt; | Rcpp::internal::wrap_dispatch_unknown_importable(const T&amp;,<br>
| &gt; | &gt; | Rcpp::traits::false_type) [with T = arma::Col&lt;double&gt;]’<br>
| &gt; | &gt; |<br>
| &gt; | &gt;<br>
| &gt; /home/abhisek/R/i486-pc-linux-gnu-library/2.10/Rcpp/lib/Rcpp/internal/wrap.h:526:<br>
| &gt; | &gt; | instantiated from ‘SEXPREC* Rcpp::internal::wrap_dispatch(const T&amp;,<br>
| &gt; | &gt; | Rcpp::traits::wrap_type_unknown_tag) [with T = arma::Col&lt;double&gt;]’<br>
| &gt; | &gt; |<br>
| &gt; | &gt;<br>
| &gt; /home/abhisek/R/i486-pc-linux-gnu-library/2.10/Rcpp/lib/Rcpp/internal/wrap.h:541:<br>
| &gt; | &gt; | instantiated from ‘SEXPREC* Rcpp::wrap(const T&amp;) [with T =<br>
| &gt; | &gt; | arma::Col&lt;double&gt;]’<br>
| &gt; | &gt; |<br>
| &gt; /home/abhisek/R/i486-pc-linux-gnu-library/2.10/Rcpp/lib/Rcpp/Named.h:54:<br>
| &gt; | &gt; | instantiated from ‘Rcpp::Named::Named(const std::string&amp;, const T&amp;)<br>
| &gt; [with<br>
| &gt; | &gt; T<br>
| &gt; | &gt; | = arma::colvec]’<br>
| &gt; | &gt; | RcppArmadilloEg.cpp:19:   instantiated from here<br>
| &gt; | &gt; |<br>
| &gt; | &gt;<br>
| &gt; /home/abhisek/R/i486-pc-linux-gnu-library/2.10/Rcpp/lib/Rcpp/internal/wrap.h:394:<br>
| &gt; | &gt; | error: cannot convert ‘const arma::Col&lt;double&gt;’ to ‘SEXPREC*’ in<br>
| &gt; | &gt; | initialization<br>
| &gt; | &gt; | make: *** [RcppArmadilloEg.o] Error 1<br>
| &gt; | &gt; |<br>
| &gt; | &gt; |<br>
| &gt; | &gt; | could someone provide some advice?<br>
| &gt; | &gt;<br>
| &gt; | &gt; Which Rcpp version do you have installed?<br>
| &gt; | &gt;<br>
| &gt; | &gt; Which Armadillo version do you have installed?<br>
| &gt; | &gt;<br>
| &gt; | &gt; I have not tried the free-floating direct compile you try here.  Maybe<br>
| &gt; the<br>
| &gt; | &gt; defines for RcppArmadillo that we use are missing here -- hard to say.<br>
| &gt; | &gt;<br>
| &gt; | &gt; Could you try to create your own little package but copying the<br>
| &gt; | &gt; RcppArmadillo<br>
| &gt; | &gt; files, changes DESCRIPTION to what you do and changes the FastLM code<br>
| &gt; in<br>
| &gt; | &gt; C++<br>
| &gt; | &gt; and R?<br>
| &gt; | &gt;<br>
| &gt; | &gt; Dirk<br>
| &gt; | &gt;<br>
| &gt; | &gt; --<br>
| &gt; | &gt;  Registration is open for the 2nd International conference R / Finance<br>
| &gt; 2010<br>
| &gt; | &gt;  See <a href="http://www.RinFinance.com" target="_blank">http://www.RinFinance.com</a> for details, and see you in Chicago in<br>
| &gt; | &gt; April!<br>
| &gt; | &gt;<br>
| &gt;<br>
| &gt; --<br>
| &gt;   Registration is open for the 2nd International conference R / Finance<br>
| &gt; 2010<br>
| &gt;  See <a href="http://www.RinFinance.com" target="_blank">http://www.RinFinance.com</a> for details, and see you in Chicago in<br>
| &gt; April!<br>
| &gt;<br>
<br>
</div></div>--<br>
<div><div></div><div>  Registration is open for the 2nd International conference R / Finance 2010<br>
  See <a href="http://www.RinFinance.com" target="_blank">http://www.RinFinance.com</a> for details, and see you in Chicago in April!<br>
</div></div></blockquote></div><br>