Skip to content

Eigenvalue: add the ArnoldiMethodJL keyword constructor - #1198

Merged
ChrisRackauckas merged 1 commit into
SciML:mainfrom
AJ0070:fix/487-arnoldi-ctor
Aug 10, 2026
Merged

Eigenvalue: add the ArnoldiMethodJL keyword constructor#1198
ChrisRackauckas merged 1 commit into
SciML:mainfrom
AJ0070:fix/487-arnoldi-ctor

Conversation

@AJ0070

@AJ0070 AJ0070 commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

Checklist

  • Appropriate tests were added
  • Any code changes were done in a way that does not break public API
  • All documentation related to code changes were updated
  • The new code follows the
    contributor guidelines, in particular the SciML Style Guide and
    COLPRAC.
  • Any new documentation only uses public API

Additional context

  • ArnoldiMethodJL is exported but had no keyword constructor, only the positional ArnoldiMethodJL(::NamedTuple). Its siblings all have one, so this adds the matching ArnoldiMethodJL(; kwargs...).
  • Using this backend requires using ArnoldiMethod, which binds ArnoldiMethod to the module, so a bare ArnoldiMethod(; kwargs...) then fails with objects of type Module are not callable. With no keyword constructor on the JL name either, a using LinearSolve user had no working unqualified spelling.
  • Nothing renamed or removed. LinearSolve.ArnoldiMethod(...) still works and the two produce identical objects, which the new test asserts.
  • Every existing assertion in test/Core/eigenvalue.jl uses the qualified form, which is why this was never caught. The new test uses the unqualified one.
  • Verified on a 50x50 SPD matrix: the new constructor forwards kwargs and its eigenvalues match eigvals to 8 significant digits. test/Core/eigenvalue.jl passes, Runic clean.
  • Found while checking Direct and Iterative eigensolvers #487, but this does not close it: the eigensolvers are already implemented, and the ModelingToolkit preconditioner interface that issue also asks for is not built.

AI Disclosure: Used Opus 5

@AJ0070

AJ0070 commented Aug 10, 2026

Copy link
Copy Markdown
Contributor Author

@ChrisRackauckas

@ChrisRackauckas
ChrisRackauckas merged commit 6e8e762 into SciML:main Aug 10, 2026
55 of 62 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants