--enable-memory-profiling). The internal
benchmark/validation timing helpers passed memory = TRUE to
bench::mark(), which calls utils::Rprofmem()
and aborts with “memory profiling is not available on this system” on
those platforms. Memory measurement is now requested only when
capabilities("profmem") is TRUE; elsewhere
timing still runs and mem_alloc is reported as
NA.testthat::skip_on_cran()
so they are skipped on CRAN as intended (the previous
Sys.getenv("CRAN") guard never fired on the CRAN check
farm).First CRAN release.
svd_partial() and eig_partial() compute
the top-k singular triplets or eigenpairs of large dense,
sparse (CSC), diagonal, banded/tridiagonal, and matrix-free operators
through native C++ kernels.passed flag. Bounds that
can only be estimated (for example stochastic norm estimates on centered
sparse operators) are reported as estimates and never produce an
unqualified passed.center(), scale_cols(),
compose(), crossprod_operator(),
linear_operator() — solves centered, scaled, and composed
problems without forming dense matrices.plan_solver() reports the
chosen kernel before a solve, and fit$method names the path
that actually ran. Problem classes without a production kernel carry
explicit reference labels.eigs(),
eigs_sym(), and svds() accept the same
which codes and additionally return certificates.Rscript inst/benchmarks/bench-readme.R.eig_full() for dense SPD and
general pencils, generalized_schur() and
generalized_svd() for dense QZ/GSVD, partial sparse general
pencils with nonsingular diagonal B via transformed native
Arnoldi, left eigenvectors and conditioning diagnostics on supported
dense paths, and pencil_norm_scaled alpha/beta
classification. Sparse SPD partial paths remain under
eig_partial() / LOBPCG / B-orthogonal Lanczos; general
sparse QZ and non-diagonal sparse B are explicit
unsupported boundaries. The real dense GSVD path currently requires a
linked LAPACK that provides the deprecated dggsvd
routine.