* using log directory ‘/data/localhost/ripley/R/packages/tests-BLIS/irlba.Rcheck’ * using R Under development (unstable) (2026-08-27 r90452) * using platform: x86_64-pc-linux-gnu * R was compiled by gcc (GCC) 16.2.1 20260819 (Red Hat 16.2.1-2) GNU Fortran (GCC) 16.2.1 20260819 (Red Hat 16.2.1-2) * running under: Fedora Linux 44 (Server Edition) * using session charset: UTF-8 * current time: 2026-08-31 21:58:29 UTC * using option ‘--no-stop-on-test-error’ * checking for file ‘irlba/DESCRIPTION’ ... OK * checking extension type ... Package * this is package ‘irlba’ version ‘2.3.7’ * package encoding: UTF-8 * checking package namespace information ... OK * checking package dependencies ... OK * checking if this is a source package ... OK * checking if there is a namespace ... OK * checking for executable files ... OK * checking for hidden files and directories ... OK * checking for portable file names ... OK * checking for sufficient/correct file permissions ... OK * checking whether package ‘irlba’ can be installed ... [6s/15s] OK * used C compiler: ‘gcc (GCC) 16.2.1 20260819 (Red Hat 16.2.1-2)’ * checking package directory ... OK * checking ‘build’ directory ... OK * checking DESCRIPTION meta-information ... OK * checking top-level files ... OK * checking for left-over files ... OK * checking index information ... OK * checking package subdirectories ... OK * checking code files for non-ASCII characters ... OK * checking R files for syntax errors ... OK * checking whether the package can be loaded ... OK * checking whether the package can be loaded with stated dependencies ... OK * checking whether the package can be unloaded cleanly ... OK * checking whether the namespace can be loaded with stated dependencies ... OK * checking whether the namespace can be unloaded cleanly ... OK * checking loading without being on the library search path ... OK * checking use of S3 registration ... OK * checking dependencies in R code ... OK * checking S3 generic/method consistency ... OK * checking replacement functions ... OK * checking foreign function calls ... OK * checking R code for possible problems ... [8s/20s] OK * checking Rd files ... OK * checking Rd metadata ... OK * checking Rd line widths ... OK * checking Rd cross-references ... OK * checking for missing documentation entries ... OK * checking for code/documentation mismatches ... OK * checking Rd \usage sections ... OK * checking Rd contents ... OK * checking for unstated dependencies in examples ... OK * checking line endings in C/C++/Fortran sources/headers ... OK * checking line endings in Makefiles ... OK * checking compilation flags in Makevars ... OK * checking for GNU extensions in Makefiles ... OK * checking for portable use of $(BLAS_LIBS) and $(LAPACK_LIBS) ... OK * checking use of PKG_*FLAGS in Makefiles ... OK * checking use of SHLIB_OPENMP_*FLAGS in Makefiles ... OK * checking pragmas in C/C++ headers and code ... OK * checking compilation flags used ... OK * checking compiled code ... OK * checking sizes of PDF files under ‘inst/doc’ ... OK * checking installed files from ‘inst/doc’ ... OK * checking files in ‘vignettes’ ... OK * checking examples ... OK * checking for unstated dependencies in ‘tests’ ... OK * checking tests ... Running ‘edge.R’ Running ‘prcomp.r’ Running ‘ssvd.R’ Running ‘svdr.R’ Running ‘test.R’ [8s/19s] ERROR Running the tests in ‘tests/test.R’ failed. Complete output: > require("irlba") Loading required package: irlba Loading required package: Matrix > > for (FAST in c(FALSE, TRUE)) + { + # Dense matrix + set.seed(1) + A <- matrix(rnorm(400), 20) + L <- irlba(A, nu=2, nv=2, tol=1e-9, fastpath=FAST) + S <- svd(A, nu=2, nv=2) + if (!isTRUE(all.equal(L$d, S$d[1:2]))) + { + stop("Failed simple dense singular value test", " fastpath=", FAST) + } + + # restart + L1 <- irlba(A, nv=3, v=L, fastpath=FAST) + if (!isTRUE(all.equal(L1$d, S$d[1:3]))) + { + stop("Failed restart", " fastpath=", FAST) + } + + # unequal nu, nv + L <- irlba(A, nv=2, nu=3, fastpath=FAST) + if (!isTRUE(ncol(L$v) == 2 && ncol(L$u) == 3)) + { + stop("Failed unequal nu,nv", " fastpath=", FAST) + } + + # Scaling and centering, dense + s <- sqrt(apply(A, 2, crossprod)) + m <- colMeans(A) + L <- irlba(A, 3, tol=1e-9, center=m, scale=s, fastpath=FAST) + S <- svd(scale(A, center=TRUE, scale=s)) + if (!isTRUE(all.equal(L$d, S$d[1:3]))) + { + stop("Failed scaling/centering test", " fastpath=", FAST) + } + # Scale only, non-square, dense + A <- matrix(rnorm(200), 10) + s <- seq(1, ncol(A)) + m <- colMeans(A) + L <- irlba(A, 3, tol=1e-9, scale=s, fastpath=FAST) + S <- svd(scale(A, center=FALSE, scale=s)) + if (!isTRUE(all.equal(L$d, S$d[1:3]))) + { + stop("Failed dense scaling test", " fastpath=", FAST) + } + # Center only, non-square, dense + L <- irlba(A, 3, tol=1e-9, center=m, fastpath=FAST) + S <- svd(scale(A, center=TRUE, scale=FALSE)) + if (!isTRUE(all.equal(L$d, S$d[1:3]))) + { + stop("Failed dense centering test", " fastpath=", FAST) + } + # Sparse matrix + require("Matrix") + K <- 400 + N <- 2000 + i <- sample(K, size=N, replace=TRUE) + j <- sample(K, size=N, replace=TRUE) + A <- sparseMatrix(i, j, x=rnorm(N)) + L <- irlba(A, nu=2, nv=2, tol=1e-9, fastpath=FAST) + S <- svd(A, nu=2, nv=2) + if (!isTRUE(all.equal(L$d, S$d[1:2]))) + { + stop("Failed simple sparse singular value test", " fastpath=", FAST) + } + # Center only, sparse + m <- colMeans(A) + L <- irlba(A, 3, tol=1e-9, center=m, fastpath=FAST) + S <- svd(scale(A, center=TRUE, scale=FALSE)) + if (!isTRUE(all.equal(L$d, S$d[1:3]))) + { + stop("Failed sparse centering test", " fastpath=", FAST) + } + # scale only, spase + s <- seq(1, ncol(A)) + L <- irlba(A, 3, tol=1e-9, scale=s, fastpath=FAST) + S <- svd(scale(A, center=FALSE, scale=s)) + if (!isTRUE(all.equal(L$d, S$d[1:3]))) + { + stop("Failed sparse scaling test", " fastpath=", FAST) + } + + # Symmetric partial eigendecomposition + set.seed(1) + V <- qr.Q(qr(matrix(runif(100), nrow=10))) + x <- V %*% diag(c(10, -9, 8, -7, 6, -5, 4, -3, 2, -1)) %*% t(V) + if (!isTRUE(all.equal(partial_eigen(x, 3, fastpath=FAST)$values, c(10, 8, 6)))) + { + stop("Failed partial_eigen test", " fastpath=", FAST) + } + + # Test right-only option + L <- irlba(A, 2, tol=1e-3, right_only=TRUE, fastpath=FAST, work=20) + S <- svd(A, nu=2, nv=2) + if (isTRUE(max(L$d - S$d[1:2]) > 1e-3)) + { + stop("Failed right_only test", " fastpath=", FAST) + } + + # Dense complex-valued matrix + A <- matrix(rnorm(400), 20) + 1i * matrix(rnorm(400), 20) + L <- irlba(A, nu=2, nv=2, tol=1e-9, fastpath=FAST) + S <- svd(A, nu=2, nv=2) + if (!isTRUE(all.equal(L$d, S$d[1:2]))) + { + stop("Failed complex-valued dense singular value test", " fastpath=", FAST) + } + + # test extra reorthogonalization + L <- irlba(A, nu=2, nv=2, tol=1e-9, reorth=TRUE, fastpath=FAST) + if (!isTRUE(all.equal(L$d, S$d[1:2]))) + { + stop("Failed reorthogonalization test", " fastpath=", FAST) + } + + # very non-square dense matrices + set.seed(1) + A <- matrix(rnorm(2000), 20) + L1 <- irlba(A, nu=2, nv=2, tol=1e-9, fastpath=FAST) + L2 <- irlba(t(A), nu=2, nv=2, tol=1e-9, fastpath=FAST) + if (!isTRUE(all.equal(L1$d, L2$d))) + { + stop("Failed nonsquare test", " fastpath=", FAST) + } + + # This pathological example was provided by Giuseppe Rodriguez, http://bugs.unica.it/~gppe/ + # The singular values cluster at 1 and 0, making it hard to converge to a truncated + # subspace containing the largest few singular values (they are all very close). + # Or, for that matter, the smallest. + # + # Reference: + # J. M. Varah. The Prolate matrix. Linear Algebra and Appl., + # 187:269-278, 1993. + # Michela Redivo-Zaglia, University of Padova, Italy + # Email: Michela.RedivoZaglia@unipd.it + # Giuseppe Rodriguez, University of Cagliari, Italy + # Email: rodriguez@unica.it + tprolate <- function(n, w=0.25) + { + a <- rep(0, n) + a[1] <- 2 * w + a[2:n] <- sin(2 * pi * w * (1:(n-1))) / (pi * (1:(n-1))) + toeplitz(a) + } + + x <- tprolate(512) + set.seed(1) + l <- irlba(x, nv=20, fastpath=FAST) + if (isTRUE(max(abs(l$d - 1)) > 1e-3)) + { + stop("Failed tprolate test fastpath=", FAST) + } + + # test for issue #7 and issue #14 + mx <- matrix(sample(1:100, 100 * 100, replace=TRUE), nrow=100) + set.seed(1) + l <- irlba(mx, nv=30, center=colMeans(mx), fastpath=FAST) + s <- svd(scale(mx, center=TRUE, scale=FALSE)) + if (isTRUE(max(abs(l$d - s$d[1:30])) > 1e-3)) + { + stop("Failed integer matrix test fastpath=", FAST) + } + + # test for https://github.com/bwlewis/irlba/issues/22 + set.seed(1000) + ncells <- 50 + ngenes <- 1000 + counts <- matrix(as.double(rpois(ncells*ngenes, lambda=100)), nrow=ncells) + centers <- colMeans(counts) + set.seed(1) + out <- irlba(scale(counts, scale=FALSE, center=centers), nu=10, nv=10) + set.seed(1) + l <- irlba(counts, center=centers, nu=10, nv=10, fastpath=FAST) + if (isTRUE(max(abs(out$d - l$d)) > 1e-3)) + { + stop("Failed centering test (n > m) fastpath=", FAST) + } + + # test for https://github.com/bwlewis/irlba/issues/42 + set.seed(1234) + a <- matrix(rnorm(10000), ncol=20) + center <- runif(ncol(a)) + scale <- runif(ncol(a)) + L <- irlba(a, 5, scale=scale, center=center, fastpath=FAST) + S <- svd(scale(a, center=center, scale=scale)) + if (isTRUE(max(abs(S$d[1:5] - L$d)) > 1e-3)) + { + stop("Failed scale + center test fastpath=", FAST) + } + } Error: Failed tprolate test fastpath=FALSE Execution halted * checking for unstated dependencies in vignettes ... OK * checking package vignettes ... OK * checking re-building of vignette outputs ... [8s/20s] OK * checking PDF version of manual ... [4s/11s] OK * checking HTML version of manual ... OK * checking for non-standard things in the check directory ... OK * checking for detritus in the temp directory ... OK * DONE Status: 1 ERROR See ‘/data/localhost/ripley/R/packages/tests-BLIS/irlba.Rcheck/00check.log’ for details. Command exited with non-zero status 1 Time 2:46.81, 57.71 + 8.54