Thanks everyone for helping me figure this out. Within terra::focalCpp which handles the iteration over small subsets of the data there is a test iteration that occurs which uses the data that is numbers 1-number of elements in the window (for a 3x7 window that'd be 1-21). Since the function I'm using is a bit odd in that the data refer to indices in a separate matrix (e.g. in this example a 15x15 matrix), the test data was leading to the out of bounds error when the number of elements (21) was greater than the size of that other matrix. Robert and I can figure out the rest on github so that the 2 functions play nice together.
Thanks, Alex On Wed, Dec 15, 2021 at 6:24 PM Dirk Eddelbuettel <e...@debian.org> wrote: > > On 15 December 2021 at 12:30, Robert J. Hijmans wrote: > | Dirk thanks very much for the help. And sorry, Alex, I misspoke. I meant > to > | say that Rcpp will coerce a R "numeric" (vector) to an > | "Rcpp::IntegerVector" if you ask it to do so (and that is what happened > in > | the context we were discussing). > > Exactly. And it will be no comfort to Alex who has to chase this by hand > but > for those of us old enough to C/C++ time in (whole) decades, it really just > smells *very much* like an old-fashioned indexing error. Which is why > valgrind was already a good idea. > > Minor hint: > Rcpp::stop("Something here including %d or %s or ... formatting", a, b); > is a tad more Rcpp-idiomatic, and errors. We now have Rcpp::message(...) > to > just do the printing (in a suppressable way). C API of R of course still > holds. > > Dirk > > -- > https://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