Hi Dirk, Thanks for the quick response. In the broader project, the vector being copied from is an Rcpp::NumericVector that contatenates vectorized versions of a number of other objects that are integrated numerically using the boost odeint solvers. I couldn't quite get the numerical integrators to play nice with Armadillo objects, and in using std::copy I was trying to avoid converting the vector 'v' to an arma::vec since I would have to convert it back for further integration. Perhaps this was a mistake?
Still, I don't quite understand why armadillo row pointers don't work which armadillo column pointers are fine. Thanks, Jon On Wed, Oct 12, 2016 at 2:10 PM, Dirk Eddelbuettel <e...@debian.org> wrote: > > On 12 October 2016 at 13:43, Jonathan Fintzi wrote: > | Hello, > | > | I am trying to use the std::copy() function to copy elements from an > | Rcpp::NumericVector into rows of armadillo matrices. A simplified > version of my > | code is as follows: > | > | cppFunction('void copyinto(Rcpp::NumericVector& v, arma::mat& d1, > arma::mat& > | d2) { > | std::copy(v.begin(), v.begin() + 3, d1.begin_row(0)); > | std::copy(v.begin() + 3, v.end(), d2.begin_row(0)); > | }', depends = "RcppArmadillo") > > You should not need to mix an _Rcpp_ vector with an _Armadillo_ matrix > using > std::copy. Check the decent Armadillo docs -- all the subsetting and > slicing > can be done with Armadillo. And that is what I would do. > > But maybe I didn't quite understand what you are really after. > > Dirk > > | v <- runif(6) > | d1 <- matrix(0.0, 3,3) > | d2 <- matrix(0.0, 3,3) > | > | copyinto(v, d1, d2) > | > | However, when I attempt to compile the code, I receive a list of > compilation > | errors including "no type named 'XXXXXX' in 'class arma::Mat<double> > | row_iterator", where XXXXXX is iterator_category, value_type, > difference_type, > | pointer, and reference. > | > | If I change the iterators to column iterators (e.g. d1.begin_col(0)) > everything > | compiles and works just fine. I feel that I must be missing something > quite > | basic here, but in searching around I haven't been able to identify my > mistake. > | > | Thank you for your help! > | Jon > | _______________________________________________ > | Rcpp-devel mailing list > | Rcpp-devel@lists.r-forge.r-project.org > | https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel > > -- > http://dirk.eddelbuettel.com | @eddelbuettel | e...@debian.org >
_______________________________________________ Rcpp-devel mailing list Rcpp-devel@lists.r-forge.r-project.org https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel