https://github.com/abelsiqueira/ldlfactorizations.jl
Factorization of Symmetric Matrices
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 4 DOI reference(s) in README -
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (11.7%) to scientific vocabulary
Last synced: 9 months ago
·
JSON representation
Repository
Factorization of Symmetric Matrices
Basic Info
- Host: GitHub
- Owner: abelsiqueira
- License: lgpl-3.0
- Language: Julia
- Default Branch: master
- Size: 31.3 KB
Statistics
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
- Releases: 0
Fork of JuliaSmoothOptimizers/LDLFactorizations.jl
Created almost 8 years ago
· Last pushed about 5 years ago
https://github.com/abelsiqueira/LDLFactorizations.jl/blob/master/
# LDL: Factorization of Symmetric Matrices
[](https://travis-ci.org/JuliaSmoothOptimizers/LDL.jl)
[](https://ci.appveyor.com/project/dpo/ldl-jl/branch/master)
[](https://coveralls.io/github/JuliaSmoothOptimizers/LDL.jl)
A translation of Tim Davis's Concise LDL Factorization, part of [SuiteSparse](http://faculty.cse.tamu.edu/davis/suitesparse.html).
This package is appropriate for matrices A that possess a factorization of the
form LDL without pivoting, where L is unit lower triangular and D is *diagonal* (indefinite in general), including definite and quasi-definite matrices.
LDL.jl should not be expected to be as fast, as robust or as accurate as factorization
packages such as [HSL.jl](https://github.com/JuliaSmoothOptimizers/HSL.jl), [MUMPS.jl](https://github.com/JuliaSmoothOptimizers/MUMPS.jl) or [Pardiso.jl](https://github.com/JuliaSparse/Pardiso.jl).
Those are multifrontal and/or implement various forms of parallelism, and
employ sophisticated pivot strategies.
The main advantages of LDL.jl are that
1. it is very short and has a small footprint;
2. it is in pure Julia, and so
2.a. it does not require external compiled dependencies;
2.b. it will work with multiple input data types.
Whereas MUMPS.jl, HSL.jl and Pardiso.jl only work with single and double precision
reals and complex data types, LDL.jl accepts any numerical data type.
# Installing
```julia
julia> Pkg.clone("https://github.com/JuliaSmoothOptimizers/LDL.jl.git")
julia> Pkg.test("LDL")
```
# Usage
The only exported function is `ldl()`.
Calling `ldl()` with a dense array converts it to a sparse matrix.
Only the lower triangle of the matrix is accessed, thus `ldl(A)` is always
the same as `ldl(A - triu(A, 1) + tril(A, -1)')`.
A permutation ordering can be supplied: `ldl(A, p)` where `p` is an `Int`
array representing a permutation of the integers between 1 and the order
of `A`.
If no permutation is supplied, one is automatically computed using [AMD.jl](https://github.com/JuliaSmoothOptimizers/AMD.jl).
`ldl` returns a factorization in the form of a `LDLFactorization` object.
The `\` method is implemented for objects of type `LDLFactorization` so that
solving a linear system is as easy as
```julia
julia> LDLT = ldl(A)
julia> x = LDLT \ b # solves Ax=b
```
The factorization can of course be reused to solve for multiple right-hand
sides.
# References
Timothy A. Davis. 2005. Algorithm 849: A concise sparse Cholesky factorization package. ACM Trans. Math. Softw. 31, 4 (December 2005), 587-591. DOI [10.1145/1114268.1114277](http://dx.doi.org/10.1145/1114268.1114277).
Like the original LDL, this package is distributed under the LGPL.
[](http://www.gnu.org/licenses/lgpl.html "LGPLv3")
Owner
- Name: Abel Soares Siqueira
- Login: abelsiqueira
- Kind: user
- Location: Amsterdam - The Netherlands
- Company: Netherlands eScience Center
- Website: https://abelsiqueira.com
- Twitter: abel_siqueira
- Repositories: 331
- Profile: https://github.com/abelsiqueira