<div dir="ltr"><div>Hi Dear <br></div>This is the corresponding R code which I want to have the same result from rcpp code.<br><br>set.seed(11)<br>a = matrix(runif(30), nrow=10, ncol=3)<br>n=10<br>m=3<br>b = array(as.double(0), dim = c(n, m, n))<br>for(i in 1:n){<br>  for(j in 1:m){<br>    for(q in 1:i){<br>      if(q==1){<br>        b[i, j, q] = a[i, j];<br>      }<br>      else{<br>        b[i, j, q] = b[i-1, j, q-1] * a[i, j];<br>      }<br>    }<br>  }<br>}<br><br></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Sep 27, 2016 at 3:22 PM, Avraham Adler <span dir="ltr"><<a href="mailto:avraham.adler@gmail.com" target="_blank">avraham.adler@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Please give a simple example of an input and its expected output.<br>
Unfortunately "run of a variable for loop" is too general for me to<br>
understand.<br>
<br>
Avi<br>
<br>
On Mon, Sep 26, 2016 at 10:07 PM, Amina Shahzadi<br>
<div class="HOEnZb"><div class="h5"><<a href="mailto:aminashahzadi@gmail.com">aminashahzadi@gmail.com</a>> wrote:<br>
> Hi Dear<br>
><br>
> My purpose is to make run of a variable for loop. Here I have assumed else<br>
> statement to be zero. Otherwise it could be anything for example in the<br>
> following code.<br>
> In this code, my main aim to run the slices loop according to rows.<br>
> does it now look ok?<br>
><br>
><br>
> Thank you<br>
><br>
> #include <RcppArmadillo.h><br>
> using namespace Rcpp;<br>
> using namespace RcppArmadillo;<br>
> //[[Rcpp::depends(<wbr>RcppArmadillo)]]<br>
> //[[Rcpp::export]]<br>
> arma::cube up(arma::mat a){<br>
>   int m = a.n_cols;<br>
>   int n = a.n_rows;<br>
>   int p = a.n_rows;<br>
>   arma::cube b(n, m, p);<br>
>   for(int i=0; i<n; i++){<br>
>       for(int j=0; j<m; j++){<br>
>         for(int q=0; q<i; q++){<br>
>          if(q==0){<br>
>            b(i, j, q) = a(i, j);<br>
>          }<br>
>          else{<br>
>            b(i, j, q) = b(i-1, j, q-1) * a(i, j);<br>
>          }<br>
>       }<br>
>     }<br>
>   }<br>
>   return b;<br>
> }<br>
><br>
> On Tue, Sep 27, 2016 at 2:51 PM, Avraham Adler <<a href="mailto:avraham.adler@gmail.com">avraham.adler@gmail.com</a>><br>
> wrote:<br>
>><br>
>> Hello.<br>
>><br>
>> Once again, it is very unclear what you want to do. Can you please<br>
>> explain, in English not code what your procedure intends to do, the<br>
>> input you expect, and the output you expect?<br>
>><br>
>> What it LOOKS like you want to do is to create an N x M x N cube where<br>
>> the first slice is your matrix and the remaining slices are all 0. If<br>
>> that is the case, There are much, much simpler ways to do it than to<br>
>> traverse all N²M cells. The following should work.<br>
>><br>
>> #include <RcppArmadillo.h><br>
>> using namespace Rcpp;<br>
>> using namespace RcppArmadillo;<br>
>> //[[Rcpp::depends(<wbr>RcppArmadillo)]]<br>
>><br>
>> //[[Rcpp::export]]<br>
>> arma::cube fillup(arma::mat a){<br>
>>   int m = a.n_cols;<br>
>>   int n = a.n_rows;<br>
>>   arma::cube C = arma::cube(n, m, n, arma::fill::zeros);<br>
>><br>
>>   C.slice(0) = a;<br>
>><br>
>>   return(C);<br>
>> }<br>
>><br>
>> Avi<br>
>><br>
>> On Mon, Sep 26, 2016 at 5:59 PM, Amina Shahzadi <<a href="mailto:aminashahzadi@gmail.com">aminashahzadi@gmail.com</a>><br>
>> wrote:<br>
>> > Hi Dear<br>
>> ><br>
>> > I have a problem in using a variable for loop in using RcppArmadillo<br>
>> > library.<br>
>> > I have pasting here my code. It is executing but not giving the same<br>
>> > results<br>
>> > as its R code version gives. The results produced by it are really<br>
>> > weird. I<br>
>> > have checked it step by step. It is because of the for (int q=0; q<i;<br>
>> > q++).<br>
>> > I request tp please help how to handle it in cpp.<br>
>> ><br>
>> > The another question is I want to multiply the cube b(i, ,) by a scalar.<br>
>> > How<br>
>> > can we consider the entire columns and slices of a cube for each of the<br>
>> > rows.  "b(span(i), span(), span())"  is not working for me.<br>
>> ><br>
>> > Thank you<br>
>> ><br>
>> > #include <RcppArmadillo.h><br>
>> > using namespace Rcpp;<br>
>> > using namespace RcppArmadillo;<br>
>> > //[[Rcpp::depends(<wbr>RcppArmadillo)]]<br>
>> > //[[Rcpp::export]]<br>
>> > arma::cube up(arma::mat a){<br>
>> >   int m = a.n_cols;<br>
>> >   int n = a.n_rows;<br>
>> >   int p = a.n_rows;<br>
>> >   arma::cube b(n, m, p);<br>
>> >   for(int i=0; i<n; i++){<br>
>> >       for(int j=0; j<m; j++){<br>
>> >         for(int q=0; q<i; q++){<br>
>> >          if(q==0){<br>
>> >            b(i, j, q) = a(i, j);<br>
>> >          }<br>
>> >          else{<br>
>> >            b(i, j, q) = 0.0;<br>
>> >          }<br>
>> >       }<br>
>> >     }<br>
>> >   }<br>
>> >   return b;<br>
>> > }<br>
>> ><br>
>> > --<br>
>> > Amina Shahzadi<br>
><br>
><br>
><br>
><br>
> --<br>
> Amina Shahzadi<br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><em><font face="comic sans ms,sans-serif">Amina Shahzadi</font></em></div>
</div>