loop compilation problem
Thanks. Here is a simplified version: library(compiler) zero <- 0 one <- 1 expr <- quote((z <- zero + one) + (z <- z + 1)) eval(compiler::compile(expr)) Sill fix shortly. Best, luke
On Thu, 24 Aug 2017, Lukas Stadler wrote:
Hi! We?ve seen a problem with the compiler in specific cases of matrix updates:
{ m <- matrix(1:4, 2) ; z <- 0; for(i in 1) { m[z <- z + 1,z <- z + 1] <- 99; } ; m }
[,1] [,2] [1,] 1 3 [2,] 2 99 Here, it modifies element [2,2], which is unexpected. It behaves correct without the loop:
{ m <- matrix(1:4, 2) ; z <- 0; m[z <- z + 1,z <- z + 1] <- 99 ; m }
[,1] [,2] [1,] 1 99 [2,] 2 4 ? and without the jit:
enableJIT(0)
[1] 3
{ m <- matrix(1:4, 2) ; z <- 0; for(i in 1) { m[z <- z + 1,z <- z + 1] <- 99; } ; m }
[,1] [,2] [1,] 1 99 [2,] 2 4 I checked with "R Under development (unstable) (2017-08-23 r73116)?, and the problem is still there. - Lukas
______________________________________________ R-devel at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel
Luke Tierney
Ralph E. Wareham Professor of Mathematical Sciences
University of Iowa Phone: 319-335-3386
Department of Statistics and Fax: 319-335-3017
Actuarial Science
241 Schaeffer Hall email: luke-tierney at uiowa.edu
Iowa City, IA 52242 WWW: http://www.stat.uiowa.edu