On 15 December 2014 at 03:49, Balamuta, James Joseph wrote: | Greetings and Salutations All, | | Recently, I've had the need to collide large matrices 1x10^7 using code written | in RcppArmadillo. | | Initially, I triggered: | Error: Mat::init(): requested size is too large; suggest to enable | ARMA_64BIT_WORD | | Upon a quick search, I stumbled upon a Stack Exchange post by Dirk: | http://stackoverflow.com/a/16159326/1345455 | | "Update on 2013-04-30: This was actually an Armadillo bug, which was just fixed | upstream. A new RcppArmadillo verion 0.3.810.2 is now in SVN, and should | migrate soon to CRAN shortly. You no longer need to define ARMA_64BIT_WORD." | | Upon opening, | | [R.home()]/lib/R/library/RcppArmadillo/include/RcppArmadilloConfig.h | | | #define ARMA_64BIT_WORD | | | The above definition not listed. | | Two quick questions: | 1. Was the default support for ARMA_64BIT_WORD removed? (RcppArmadillo >= | 0.4.5.550.1.0) If not, is there a trigger I need to add to my source to ensure | ARMA_64BIT_WORD is active? | 2. If I make the code I'm currently working on available as a package on CRAN, | would I have to direct users to modify the RcppArmadilloConfig.h?
There are two or three things to consider: i) R itself now extended indices; Rcpp has not carried this over ii) Armadillo can deal with bigger data. From config.hpp: #if !defined(ARMA_64BIT_WORD) // #define ARMA_64BIT_WORD //// Uncomment the above line if you require matrices/vectors capable of holding more than 4 billion elements. //// Your machine and compiler must have support for 64 bit integers (eg. via "long" or "long long") #endif iii) We cannot generally enable these features as we do not generally have long long (as previously discussed and in other place -- compilers and C++ supported this for years; R insists on the oldest standard which does not have it). So I would think that by doing both of a) enabling C++11 to get long long b) defining ARMA_64BIT_WORD both of which can be done in your src/Makevars, you should be set. But per i) above you can't bring such large matrices into R yet. But you can write C++ code to work on them, and maybe your result set then is smaller. Hth, Dirk -- 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