Skip to contents

S3 method that runs the planned solver for an eigenproblem built by eigen_problem(). Most users call eig_partial(), which constructs the problem and dispatches here; call solve() directly when you want to build a problem once and reuse or inspect it. Returns a certified partial eigendecomposition.

Usage

# S3 method for class 'eigencore_eigen_problem'
solve(
  a,
  b,
  k = NULL,
  method = auto(),
  tol = 1e-08,
  maxit = NULL,
  vectors = TRUE,
  certify = TRUE,
  allow_dense_fallback = c("auto", "never", "always"),
  initial_subspace = NULL,
  left_vectors = c("auto", "none", "compute"),
  ...
)

Arguments

a

Eigencore eigen problem object.

b

Unused second argument reserved by the base solve() generic.

k

Number of eigenpairs to compute.

method

Solver method descriptor.

tol

Convergence and certification tolerance.

maxit

Optional iteration (restart) limit; never the subspace size. See eig_partial().

vectors

Whether to compute vectors.

certify

Whether to compute certification diagnostics.

allow_dense_fallback

Dense fallback policy.

initial_subspace

Optional numeric matrix of starting directions (a warm start). Supported on standard real Hermitian Lanczos paths — native dense double / dgCMatrix, native matrix-free callbacks for lanczos(block > 1), and the scalar matrix-free reference path for lanczos(block = 1); supplying it on any other planned path is an error. The subspace is only a starting hint, never a source of reused convergence: every solve recomputes projected quantities, residuals, orthogonality, convergence, and a fresh current-operator certificate. An already-invariant supplied subspace is discarded to a cold start because residual certification alone cannot establish that it contains the requested extremal eigenpairs. NULL (the default) preserves the cold random start exactly.

left_vectors

Left-eigenvector policy ("auto", "none", "compute"); see eig_partial().

...

Reserved for future solver options.

Value

An eigencore_eigen_result.