AMD

Approximate Minimum Degree Ordering in Julia

https://github.com/juliasmoothoptimizers/amd.jl

Science Score: 67.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
    Found 12 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.1%) to scientific vocabulary

Keywords

amd factorization julia julia-language linear-algebra permutation sparse-matrices sparse-matrix

Keywords from Contributors

nlpmodels ampl krylov linear-systems nonlinear-programming ipopt fluxes particles number-theory discrete-mathematics
Last synced: 4 months ago · JSON representation ·

Repository

Approximate Minimum Degree Ordering in Julia

Basic Info
  • Host: GitHub
  • Owner: JuliaSmoothOptimizers
  • License: other
  • Language: Julia
  • Default Branch: main
  • Size: 816 KB
Statistics
  • Stars: 23
  • Watchers: 4
  • Forks: 12
  • Open Issues: 2
  • Releases: 9
Topics
amd factorization julia julia-language linear-algebra permutation sparse-matrices sparse-matrix
Created over 10 years ago · Last pushed about 1 year ago
Metadata Files
Readme License Citation Zenodo

README.md

AMD

DOI Stable Dev CI Build Status codecov.io

Given a square sparse matrix, compute an approximate minimum degree ordering. This package is an interface to the AMD library (Amestoy, Davis and Duff) and COLAMD library (Liromore, Davis, Gilberg an Ng).

Installing

julia julia> ] pkg> add AMD pkg> test AMD

Algorithms

amd: an approximate minimum degree ordering algorithm for the sparse factorization of square matrices.

symamd: an approximate minimum degree ordering algorithm for the sparse factorization of symmetric matrices.

colamd: an approximate minimum degree column ordering algorithm for the sparse factorization of arbitrary, square or rectangular, matrices.

Examples

In the simplest case:

julia using AMD A = sprand(10, 10, .5) p_amd = amd(A) p_symamd = symamd(A) p_colamd = colamd(A)

If statistics on the permutation are of interest and/or for changing the default control parameters:

julia julia> meta = Amd{Clong}(); # because A's index type is Int64 on my platform julia> # optionally change meta.control: ?Amd julia> p = amd(A, meta) julia> print(meta) Control: dense row parameter: 10.0 aggressive absorption: 1.0 Info: status: ok matrix size: 10.0 number of nonzeros: 54.0 pattern symmetry: 0.5 number of nonzeros on diagonal: 6.0 number of nonzeros in A + A': 72.0 number of dense columns: 0.0 memory used: 1408.0 number of garbage collections: 0.0 approx number of nonzers in factor: 38.0 number of float divides: 38.0 number of float * or - for LDL: 114.0 number of float * or - for LU: 190.0 max nonzeros in any column of factor: 8.0

The amd algorithm computes a fill-reducing permutation based on the sparsity pattern of A + A. The input pattern can be anything: diagonal entries will be ignored and the rest will be used to implicitly work on the pattern of A + A. Thus if A is symmetric, it is sufficient to supply the strict lower or upper triangle only.

References

  1. P. R. Amestoy, T. A. Davis and I. S. Duff. An Approximate Minimum Degree Ordering Algorithm. SIAM Journal on Matrix Analysis and Applications, 17(4), pp. 886–905, 1996. DOI 10.1137/S0895479894278952
  2. P. R. Amestoy, T. A. Davis, and I. S. Duff. Algorithm 837: An approximate minimum degree ordering algorithm. ACM Transactions on Mathematical Software, 30(3), pp. 381–388, 2004. DOI 10.1145/1024074.1024081
  3. T. A. Davis, J. R. Gilbert, S. Larimore, E. Ng. Algorithm 836: COLAMD, an approximate column minimum degree ordering algorithm, ACM Transactions on Mathematical Software, 30(3), pp. 377–380, 2004. DOI 10.1145/1024074.1024080

Owner

  • Name: JuliaSmoothOptimizers
  • Login: JuliaSmoothOptimizers
  • Kind: organization
  • Location: DOI: 10.5281/zenodo.2655082

Infrastructure and Solvers for Continuous Optimization in Julia

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
  - family-names: Montoison
    given-names: Alexis
    orcid: https://orcid.org/0000-0002-3403-5450
  - family-names: Orban
    given-names: Dominique
    orcid: https://orcid.org/0000-0002-8017-7687
  - family-names: Siqueira
    given-names: Abel S.
    orcid: https://orcid.org/0000-0003-4451-281X
  - name: "contributors"
title: "AMD.jl: A Julia interface to the AMD library of Amestoy, Davis and Duff"
identifiers:
  - description: "The concept DOI of the work."
    type: doi
    value: 10.5281/zenodo.3381898
  - description: "The versioned DOI for version 0.4.0 of the work."
    type: doi
    value: 10.5281/zenodo.3783808
doi: 10.5281/zenodo.3381898
date-released: "2020-05-03"
license: MPL-2.0
repository-code: "https://github.com/JuliaSmoothOptimizers/AMD.jl"

GitHub Events

Total
  • Watch event: 1
  • Delete event: 3
  • Issue comment event: 3
  • Push event: 9
  • Pull request event: 6
  • Create event: 3
Last Year
  • Watch event: 1
  • Delete event: 3
  • Issue comment event: 3
  • Push event: 9
  • Pull request event: 6
  • Create event: 3

Committers

Last synced: about 1 year ago

All Time
  • Total Commits: 111
  • Total Committers: 10
  • Avg Commits per committer: 11.1
  • Development Distribution Score (DDS): 0.577
Past Year
  • Commits: 6
  • Committers: 2
  • Avg Commits per committer: 3.0
  • Development Distribution Score (DDS): 0.5
Top Committers
Name Email Commits
Dominique Orban d****n@g****m 47
Alexis Montoison a****n@p****a 31
Abel Soares Siqueira a****a@g****m 12
JSOBot 6****t 8
tmigot t****t@g****m 5
Monssaf Toukal t****f@g****m 4
Yutaka Masuda m****e@g****m 1
Tony Kelman t****y@k****t 1
Julia TagBot 5****t 1
Elliot Saba s****t@g****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 5 months ago

All Time
  • Total issues: 15
  • Total pull requests: 62
  • Average time to close issues: 6 months
  • Average time to close pull requests: 3 days
  • Total issue authors: 9
  • Total pull request authors: 11
  • Average comments per issue: 2.93
  • Average comments per pull request: 1.15
  • Merged pull requests: 57
  • Bot issues: 0
  • Bot pull requests: 7
Past Year
  • Issues: 1
  • Pull requests: 5
  • Average time to close issues: 1 day
  • Average time to close pull requests: 8 days
  • Issue authors: 1
  • Pull request authors: 3
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.8
  • Merged pull requests: 5
  • Bot issues: 0
  • Bot pull requests: 1
Top Authors
Issue Authors
  • dpo (6)
  • VikasChidananda (1)
  • liushang0322 (1)
  • amontoison (1)
  • migarstka (1)
  • tkemmer (1)
  • dehann (1)
  • JuliaTagBot (1)
  • abelsiqueira (1)
Pull Request Authors
  • amontoison (18)
  • dpo (18)
  • tmigot (8)
  • github-actions[bot] (7)
  • abelsiqueira (6)
  • JSOBot (2)
  • staticfloat (2)
  • tkelman (1)
  • MonssafToukal (1)
  • masuday (1)
  • JuliaTagBot (1)
Top Labels
Issue Labels
Pull Request Labels
formatting (7) automated pr (7) no changelog (7)

Packages

  • Total packages: 1
  • Total downloads:
    • julia 1,274 total
  • Total dependent packages: 9
  • Total dependent repositories: 3
  • Total versions: 7
juliahub.com: AMD

Approximate Minimum Degree Ordering in Julia

  • Versions: 7
  • Dependent Packages: 9
  • Dependent Repositories: 3
  • Downloads: 1,274 Total
Rankings
Dependent repos count: 6.9%
Dependent packages count: 7.2%
Forks count: 11.4%
Average: 12.5%
Stargazers count: 24.7%
Last synced: 5 months ago