[Rcpp-devel] Help with SubMatrix test case
Dirk Eddelbuettel
edd at debian.org
Sat Dec 4 04:56:33 CET 2010
On 3 December 2010 at 19:45, Christian Gunning wrote:
| In this test case, I expected yy to be a proper subset of xx. I
| confess that I don't understand the results at all, but I'm assuming
| that the Row/Column exchange is involved. Am I missing anything?
|
| thanks,
| christian
|
| src <- '
| NumericMatrix xx(4, 5);
| xx(0,0) = 3;
| xx(0,1) = 4;
| xx(0,2) = 5;
| Rf_PrintValue(xx);
| xx(1,_) = xx(0,_);
| Rf_PrintValue(xx);
| xx(_,3) = xx(_,2);
| Rf_PrintValue(xx);
| SubMatrix<REALSXP> yy = xx( Range(0,2), Range(0,3) ) ;
| Rf_PrintValue(wrap(yy));
| return(wrap(yy));
| '
|
| myfun <- cxxfunction( , src, plugin='Rcpp')
|
| aa = myfun()
That is pretty new code. Let's give it a while. I get
R> library(Rcpp)
R> library(inline)
R> src <- '
NumericMatrix xx(4, 5);
+ + xx(0,0) = 3;
+ xx(0,1) = 4;
+ xx(0,2) = 5;
+ Rf_PrintValue(xx);
+ xx(1,_) = xx(0,_);
+ Rf_PrintValue(xx);
+ xx(_,3) = xx(_,2);
+ Rf_PrintValue(xx);
+ SubMatrix<REALSXP> yy = xx( Range(0,2), Range(0,3) ) ;
+ Rf_PrintValue(wrap(yy));
+ return(wrap(yy));
+ '
R> myfun <- cxxfunction( , src, plugin='Rcpp')
R> aa = myfun()
[,1] [,2] [,3] [,4] [,5]
[1,] 3 4 5 0 0
[2,] 0 0 0 0 0
[3,] 0 0 0 0 0
[4,] 0 0 0 0 0
[,1] [,2] [,3] [,4] [,5]
[1,] 3 4 5 0 0
[2,] 3 4 5 0 0
[3,] 0 0 0 0 0
[4,] 0 0 0 0 0
[,1] [,2] [,3] [,4] [,5]
[1,] 3 4 5 5 0
[2,] 3 4 5 5 0
[3,] 0 0 0 0 0
[4,] 0 0 0 0 0
[,1] [,2] [,3] [,4]
[1,] 3 4 0 0
[2,] 3 0 0 0
[3,] 0 0 5 0
R>
The first three look correct to me:
i) assign 3, 4, 5
ii) copy row 0 as 1
iii) copy col 3 to 4
but I am also a little puzzled by the last submatrix.
I'm sure Romain will weigh in in a few hours.
Dirk
--
Dirk Eddelbuettel | edd at debian.org | http://dirk.eddelbuettel.com
More information about the Rcpp-devel
mailing list