library("matrixStats") allocVector_R <- function(length, value = NA) { x <- vector(mode = typeof(value), length = length) if (!is.finite(value) || value != 0) x[] <- value x } values <- list( -1L, 0L, +1L, NA_integer_, .Machine$integer.max, -1, 0, +1, NA_real_, NaN, -Inf, +Inf, .Machine$double.xmin, .Machine$double.xmax, .Machine$double.eps, .Machine$double.neg.eps, FALSE, TRUE, NA ) n <- 10L for (value in values) { x0 <- allocVector_R(n, value = value) x <- allocVector(n, value = value) if (!identical(x, x0)) { str(list(n = n, value = value, x = x, x0 = x0)) stopifnot(identical(x, x0)) } }