eig_full() is the dense/full eigencore surface for standard and
generalized eigenproblems. Sparse and operator inputs are not silently
densified.
Usage
eig_full(
A,
B = NULL,
structure = NULL,
vectors = TRUE,
tol = 1e-08,
allow_dense_fallback = c("auto", "never", "always"),
...
)Arguments
- A
Base dense square matrix.
- B
Optional base dense square matrix for generalized problems.
- structure
Optional structure descriptor. Use
general()to force the general-pencil path for dense generalized inputs.- vectors
Whether to return right eigenvectors.
- tol
Certification tolerance.
- allow_dense_fallback
Reserved dense fallback policy. Sparse/operator inputs still fail unless a future issue explicitly opens an opt-in dense fallback contract for
eig_full().- ...
Reserved for future options.
Value
An eigencore_eigen_result. Dense general-pencil results
additionally carry alpha, beta, classification,
classification_policy, left_vectors (left generalized eigenvectors
satisfying w^H A = lambda w^H B), and conditioning. For real pencils
the decomposition runs through the expert LAPACK driver DGGEVX with
balancing, so conditioning contains reciprocal condition numbers
rconde/rcondv and the balanced pencil norms abnrm/bbnrm. Complex
pencils use ZGGEV (R's bundled LAPACK subset has no ZGGEVX), so they
return left vectors but conditioning$available is FALSE.
Examples
A <- diag(c(1, 4, 9))
B <- diag(c(1, 2, 3))
fit <- eig_full(A, B = B)
values(fit)
#> [1] 1 2 3
certificate(fit)$passed
#> [1] TRUE
# Force the dense general-pencil path when alpha/beta diagnostics matter.
pencil <- eig_full(A, B = B, structure = general())
pencil$alpha
#> [1] 1+0i 4+0i 9+0i
pencil$beta
#> [1] 1+0i 2+0i 3+0i
pencil$classification
#> [1] "finite" "finite" "finite"