137 lines
5.4 KiB
Plaintext
137 lines
5.4 KiB
Plaintext
CCOLAMD: constrained column approximate minimum degree ordering
|
|
Copyright (C) 2005-2016. Authors: Timothy A. Davis,
|
|
Sivasankaran Rajamanickam, and Stefan Larimore. Closely based on COLAMD by
|
|
Davis, Stefan Larimore, in collaboration with Esmond Ng, and John Gilbert.
|
|
http://www.suitesparse.com
|
|
-------------------------------------------------------------------------------
|
|
|
|
SPDX-License-Identifier: BSD-3-clause
|
|
|
|
The CCOLAMD column approximate minimum degree ordering algorithm computes
|
|
a permutation vector P such that the LU factorization of A (:,P)
|
|
tends to be sparser than that of A. The Cholesky factorization of
|
|
(A (:,P))'*(A (:,P)) will also tend to be sparser than that of A'*A.
|
|
CSYMAMD is a symmetric minimum degree ordering method based on CCOLAMD, also
|
|
available as a MATLAB-callable function. It constructs a matrix M such
|
|
that M'*M has the same pattern as A, and then uses CCOLAMD to compute a column
|
|
ordering of M.
|
|
|
|
Requires SuiteSparse_config, in the ../SuiteSparse_config directory relative to
|
|
this directory.
|
|
|
|
To compile and install the ccolamd m-files and mexFunctions, just cd to
|
|
CCOLAMD/MATLAB and type ccolamd_install in the MATLAB command window.
|
|
A short demo will run. Optionally, type ccolamd_test to run an extensive tests.
|
|
Type "make" in Unix in the CCOLAMD directory to compile the C-callable
|
|
library and to run a short demo.
|
|
|
|
CCOLAMD includes a simple top-level Makefile, which is optional. All the work
|
|
is done via cmake. Windows users can simply import the CMakeLists.txt into MS
|
|
Visual Studio.
|
|
|
|
"make" targets:
|
|
|
|
make compiles the CCOLAMD library;
|
|
"make install" will install in /usr/local/lib,
|
|
/usr/local/include, SuiteSparse/lib, and
|
|
SuiteSparse/include
|
|
make demos compiles and runs a few demos
|
|
make library compiles a C-callable library containing colamd
|
|
make clean removes all files not in the distribution,
|
|
but keeps the compiled libraries.
|
|
make distclean removes all files not in the distribution
|
|
make local compiles the CCOLAMD library;
|
|
"make install" will install only in
|
|
SuiteSparse/lib and SuiteSparse/include
|
|
make install installs the library
|
|
make uninstall uninstalls the library
|
|
|
|
See CCOLAMD/Doc/License.txt for the license.
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
Related papers:
|
|
|
|
T. A. Davis and W. W. Hager, Rajamanickam, Multiple-rank updates
|
|
to a supernodal sparse Cholesky factorization, submitted.
|
|
|
|
T. A. Davis, W. W. Hager, S. Rajamanickam, and Y. Chen, CHOLMOD: a
|
|
sparse Cholesky update/downdate package, submitted. CHOLMOD's
|
|
nested dissection ordering relies on CCOLAMD and CSYMAMD to order
|
|
the matrix after graph partitioning is used to find the ordering
|
|
constraints.
|
|
|
|
T. A. Davis, J. R. Gilbert, S. Larimore, E. Ng, An approximate column
|
|
minimum degree ordering algorithm, ACM Transactions on Mathematical
|
|
Software, vol. 30, no. 3., pp. 353-376, 2004.
|
|
|
|
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, vol. 30, no. 3., pp. 377-380,
|
|
2004.
|
|
|
|
"An approximate minimum degree column ordering algorithm",
|
|
S. I. Larimore, MS Thesis, Dept. of Computer and Information
|
|
Science and Engineering, University of Florida, Gainesville, FL,
|
|
1998. CISE Tech Report TR-98-016.
|
|
|
|
Approximate Deficiency for Ordering the Columns of a Matrix,
|
|
J. L. Kern, Senior Thesis, Dept. of Computer and Information
|
|
Science and Engineering, University of Florida, Gainesville, FL,
|
|
1999.
|
|
|
|
Authors: Timothy A. Davis, Sivasankaran Rajamanickam, and Stefan Larimore.
|
|
Closely based on COLAMD by Stefan I. Larimore and Timothy A. Davis,
|
|
in collaboration with John Gilbert, Xerox PARC (now at UC Santa
|
|
Barbara), and Esmong Ng, Lawrence Berkeley National Laboratory (much of
|
|
this work he did while at Oak Ridge National Laboratory).
|
|
|
|
CCOLAMD files:
|
|
|
|
Demo simple demo
|
|
Doc additional documentation (see ccolamd.c for more)
|
|
Include include file
|
|
Config source for ccolamd.h
|
|
Makefile optional Makefile
|
|
CMakeLists.txt for using cmake to build CCOLAMD
|
|
MATLAB MATLAB functions
|
|
README.txt this file
|
|
Source C source code
|
|
|
|
./Demo:
|
|
ccolamd_example.c simple example
|
|
ccolamd_example.out output of colamd_example.c
|
|
ccolamd_l_example.c simple example, long integers
|
|
ccolamd_l_example.out output of colamd_l_example.c
|
|
|
|
./Doc:
|
|
ChangeLog change log
|
|
License.txt license
|
|
|
|
./Include:
|
|
ccolamd.h include file
|
|
|
|
./MATLAB:
|
|
ccolamd.m MATLAB interface for ccolamd
|
|
ccolamd_demo.m simple demo
|
|
ccolamd_install.m compile and install ccolamd and csymamd
|
|
ccolamd_make.m compile colamd2 and symamd2
|
|
ccolamdmex.c MATLAB mexFunction for ccolamd
|
|
ccolamd_test.m extensive test
|
|
ccolamdtestmex.c test function for ccolamd
|
|
Contents.m contents of the MATLAB directory
|
|
luflops.m test code
|
|
Makefile Makefile for MATLAB functions
|
|
csymamd.m MATLAB interface for csymamd
|
|
csymamdmex.c MATLAB mexFunction for csymamd
|
|
symamdtestmex.c test function for csymamd
|
|
|
|
./Source:
|
|
ccolamd.c primary source code
|
|
ccolamd_l.c primary source code for int64_t version
|
|
|
|
./build: where CCOLAMD is built
|
|
.gitignore
|
|
|
|
|