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