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

Approximate Minimum Degree Ordering in Julia

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

Science Score: 13.0%

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

  • CITATION.cff file
  • codemeta.json file
  • .zenodo.json file
  • DOI references
    Found 8 DOI reference(s) in README
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (9.6%) to scientific vocabulary
Last synced: 10 months ago · JSON representation

Repository

Approximate Minimum Degree Ordering in Julia

Basic Info
  • Host: GitHub
  • Owner: abelsiqueira
  • License: other
  • Language: Julia
  • Default Branch: master
  • Size: 27.3 KB
Statistics
  • Stars: 0
  • Watchers: 3
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Fork of JuliaSmoothOptimizers/AMD.jl
Created almost 8 years ago · Last pushed over 6 years ago

https://github.com/abelsiqueira/AMD.jl/blob/master/

# AMD

[![Build Status](https://travis-ci.org/JuliaSmoothOptimizers/AMD.jl.svg?branch=master)](https://travis-ci.org/JuliaSmoothOptimizers/AMD.jl)
[![Build status](https://ci.appveyor.com/api/projects/status/6wrr7rwl7qpox3ny/branch/master?svg=true)](https://ci.appveyor.com/project/JuliaSmoothOptimizers/amd-jl/branch/master)
[![codecov.io](https://codecov.io/github/JuliaSmoothOptimizers/AMD.jl/coverage.svg?branch=master)](https://codecov.io/github/JuliaSmoothOptimizers/AMD.jl?branch=master)

Given a square sparse matrix, compute an approximate minimum degree ordering.
This package is an interface to the AMD library of Amestoy, Davis and Duff.

### Installing

```JULIA
Pkg.add("AMD")
Pkg.test("AMD")
```

### Example

In the simplest case:

```JULIA
julia> using AMD
julia> A = sprand(10, 10, .5);
julia> p = amd(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
```

AMD 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](http://dx.doi.org/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](http://dx.doi.org/10.1145/1024074.1024081)

Owner

  • Name: Abel Soares Siqueira
  • Login: abelsiqueira
  • Kind: user
  • Location: Amsterdam - The Netherlands
  • Company: Netherlands eScience Center

GitHub Events

Total
Last Year