ArnoldiMethod

The Arnoldi Method with Krylov-Schur restart, natively in Julia.

https://github.com/julialinearalgebra/arnoldimethod.jl

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (7.6%) to scientific vocabulary

Keywords

eigenvalues eigenvectors julia linear-algebra

Keywords from Contributors

matrix-exponential data-structures datastructures graph-algorithms graph-analytics graph-theory graphs juliagraphs automatic-differentiation differential-equations
Last synced: 6 months ago · JSON representation ·

Repository

The Arnoldi Method with Krylov-Schur restart, natively in Julia.

Basic Info
Statistics
  • Stars: 107
  • Watchers: 4
  • Forks: 19
  • Open Issues: 6
  • Releases: 13
Topics
eigenvalues eigenvectors julia linear-algebra
Created almost 8 years ago · Last pushed almost 2 years ago
Metadata Files
Readme Changelog Contributing License Citation

readme.md

ArnoldiMethod.jl

CI Codecov

The Arnoldi Method with Krylov-Schur restart, natively in Julia.

Docs

Stable docs Latest docs

Goal

Make eigs an efficient and native Julia function.

Installation

Open the package manager in the REPL via ] and run

(v1.6) pkg> add ArnoldiMethod

Example

```julia julia> using ArnoldiMethod, LinearAlgebra, SparseArrays

julia> A = spdiagm( -1 => fill(-1.0, 99), 0 => fill(2.0, 100), 1 => fill(-1.0, 99) );

julia> decomp, history = partialschur(A, nev=10, tol=1e-6, which=:SR);

julia> decomp PartialSchur decomposition (Float64) of dimension 10 eigenvalues: 10-element Array{Complex{Float64},1}: 0.0009674354160236865 + 0.0im 0.003868805732811139 + 0.0im 0.008701304061962657 + 0.0im 0.01546025527344699 + 0.0im 0.024139120518486677 + 0.0im 0.0347295035554728 + 0.0im 0.04722115887278571 + 0.0im 0.06160200160067088 + 0.0im 0.0778581192025522 + 0.0im 0.09597378493453936 + 0.0im

julia> history Converged: 10 of 10 eigenvalues in 174 matrix-vector products

julia> norm(A * decomp.Q - decomp.Q * decomp.R) 6.39386920955869e-8

julia> λs, X = partialeigen(decomp);

julia> norm(A * X - X * Diagonal(λs)) 6.393869211477937e-8 ```

ArnoldiMethod.jl is generic

ArnoldiMethod.jl's Schur decomposition is written in Julia, it does not use LAPACK. This allows you to use arbitrary number types.

We repeat the above example with DoubleFloats.jl and more accuracy.

```julia julia> using ArnoldiMethod, DoubleFloats, LinearAlgebra, SparseArrays

julia> A = spdiagm( -1 => fill(Double64(-1), 99), 0 => fill(Double64(2), 100), 1 => fill(Double64(-1), 99) );

julia> decomp, history = partialschur(A, nev=10, tol=1e-28, which=:SR);

julia> decomp PartialSchur decomposition (Double64) of dimension 10 eigenvalues: 10-element Vector{Complex{Double64}}: 9.6743541602387015850892187143202406e-04 + 0.0im 3.86880573281130335530623278634505297e-03 + 0.0im 8.70130406196283903200426213162702754e-03 + 0.0im 1.54602552734469798152574737604660783e-02 + 0.0im 2.41391205184865585041130463401142985e-02 + 0.0im 3.47295035554726251259365854776375027e-02 + 0.0im 4.72211588727859409278578405476287512e-02 + 0.0im 6.16020016006677741124091774018629622e-02 + 0.0im 7.78581192025509024705094505968950069e-02 + 0.0im 9.59737849345402152393882633733121172e-02 + 0.0im

julia> history Converged: 10 of 10 eigenvalues in 442 matrix-vector products

julia> norm(A * decomp.Q - decomp.Q * decomp.R) 4.53243232681764960018699535610331068e-30

julia> norm(decomp.Q' * decomp.Q - I) 3.53573060252329801278244497021683397e-29 ```

Owner

  • Name: JuliaLinearAlgebra
  • Login: JuliaLinearAlgebra
  • Kind: organization

A collection of linear algebra packages for the Julia Programming Language.

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
- family-names: "Stoppels"
  given-names: "Harmen Taeke"
- family-names: "Nyman"
  given-names: "Lauri"
title: "ArnoldiMethod.jl: Arnoldi Method with Krylov-Schur restart, natively in Julia"
url: "https://github.com/JuliaLinearAlgebra/ArnoldiMethod.jl"

GitHub Events

Total
  • Watch event: 6
  • Fork event: 1
Last Year
  • Watch event: 6
  • Fork event: 1

Committers

Last synced: 9 months ago

All Time
  • Total Commits: 271
  • Total Committers: 11
  • Avg Commits per committer: 24.636
  • Development Distribution Score (DDS): 0.446
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Harmen Stoppels h****s@g****m 150
Lauri Nyman l****1@g****m 94
Viral B. Shah V****h 15
fgerick f****k@g****m 4
dependabot[bot] 4****] 2
krish8484 a****6@g****m 1
jaakkor2 j****2 1
Yingbo Ma m****5@g****m 1
Hendrik Ranocha r****a 1
Andreas Noack a****s@n****k 1
Adrian Braemer 1****r 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 43
  • Total pull requests: 92
  • Average time to close issues: 9 months
  • Average time to close pull requests: about 2 months
  • Total issue authors: 18
  • Total pull request authors: 14
  • Average comments per issue: 2.95
  • Average comments per pull request: 1.01
  • Merged pull requests: 83
  • Bot issues: 0
  • Bot pull requests: 4
Past Year
  • Issues: 1
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 1
  • Pull request authors: 0
  • Average comments per issue: 0.0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • haampie (23)
  • jpfairbanks (4)
  • ViralBShah (2)
  • sverek (1)
  • jaakkor2 (1)
  • snirgaz (1)
  • JuliaTagBot (1)
  • francispoulin (1)
  • simonschoelly (1)
  • jlbosse (1)
  • jagot (1)
  • PetrKryslUCSD (1)
  • nrontsis (1)
  • attobot (1)
  • yakovbraver (1)
Pull Request Authors
  • haampie (79)
  • NymanLauri (12)
  • ViralBShah (10)
  • dependabot[bot] (8)
  • jarlebring (3)
  • samuelpowell (2)
  • ranocha (2)
  • YingboMa (2)
  • abraemer (1)
  • JeffreySarnoff (1)
  • andreasnoack (1)
  • krish8484 (1)
  • jaakkor2 (1)
  • fgerick (1)
Top Labels
Issue Labels
v0.4 (1) v0.3 (1)
Pull Request Labels
dependencies (8) needs test (1)

Packages

  • Total packages: 1
  • Total downloads:
    • julia 8,008 total
  • Total dependent packages: 25
  • Total dependent repositories: 7
  • Total versions: 12
juliahub.com: ArnoldiMethod

The Arnoldi Method with Krylov-Schur restart, natively in Julia.

  • Versions: 12
  • Dependent Packages: 25
  • Dependent Repositories: 7
  • Downloads: 8,008 Total
Rankings
Dependent packages count: 3.4%
Dependent repos count: 4.1%
Average: 6.4%
Stargazers count: 9.0%
Forks count: 9.2%
Last synced: 6 months ago

Dependencies

.github/workflows/CompatHelper.yaml actions
.github/workflows/TagBot.yaml actions
  • JuliaRegistries/TagBot v1 composite
.github/workflows/ci.yaml actions
  • actions/cache v1 composite
  • actions/checkout v2 composite
  • julia-actions/julia-buildpkg latest composite
  • julia-actions/julia-processcoverage v1 composite
  • julia-actions/julia-runtest latest composite
  • julia-actions/julia-uploadcoveralls v1 composite
  • julia-actions/setup-julia v1 composite