Hi,

When experimenting with the following toy function,

// [[Rcpp::export]]
void modify_matrix(NumericMatrix A){
  A(0, 0) = 5;
}

and applying this on matrices defined in R, I occasionally noticed
unexpected behaviour (as it turns out, on integer matrices).

### Example 1 (works as expected)

A = matrix(0, 2, 2)
modify_matrix(A)
A

##      [,1] [,2]
## [1,]    5    0
## [2,]    0    0

### Example 2 (does not modify the matrix)

A = matrix(1:4, 2, 2)
modify_matrix(A)
A

##      [,1] [,2]
## [1,]    1    3
## [2,]    2    4

I realised that in the latter case, A consists of integers, so I guess I
should be using an IntegerMatrix version of my function instead. However,
shouldn't Rcpp detect the type mismatch between NumericMatrix and
IntegerMatrix?

Best,
Kaspar
_______________________________________________
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

Reply via email to