Rev 1979 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
CCOLAMD version 1.0: constrained column approximate minimum degree orderingCopyright (C) 2005, Univ. of Florida. Authors: Timothy A. Davis,Sivasankaran Rajamanickam, and Stefan Larimore. Closely based on COLAMD byDavis, Stefan Larimore, in collaboration with Esmond Ng, and John Gilbert.http://www.cise.ufl.edu/research/sparse-------------------------------------------------------------------------------The CCOLAMD column approximate minimum degree ordering algorithm computesa 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, alsoavailable as a MATLAB-callable function. It constructs a matrix M suchthat M'*M has the same pattern as A, and then uses CCOLAMD to compute a columnordering of M.To compile and test the colamd m-files and mexFunctions, just unpack theCCOLAMD/ directory from the CCOLAMD.tar.gz file, and run MATLAB fromwithin that directory. Next, type ccolamd_test to compile and test ccolamdand csymamd. This will work on any computer with MATLAB (Unix, PC, or Mac).Alternatively, type "make" (in Unix) to compile and run a simple example Ccode, and to compile the C-callable library (libccolamd.a).Other "make" targets:make matlab compiles MATLAB mexFunctions onlymake libccolamd.a compiles a C-callable library containing ccolamdmake clean removes all files not in the distribution, except forlibccolamd.amake distclean removes all files not in the distributionTo use ccolamd and csymamd within an application written in C, all you need arecolamd.c and colamd.h, which are the C-callable ccolamd/csymamd codes.See ccolamd.c for more information on how to call ccolamd from a C program.It contains a complete description of the C-interface to CCOLAMD and CSYMAMD.Copyright (c) 1998-2005 by the University of Florida.All Rights Reserved.Licensed under the GNU LESSER GENERAL PUBLIC LICENSE.-------------------------------------------------------------------------------This library is free software; you can redistribute it and/ormodify it under the terms of the GNU Lesser General PublicLicense as published by the Free Software Foundation; eitherversion 2.1 of the License, or (at your option) any later version.This library is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNULesser General Public License for more details.You should have received a copy of the GNU Lesser General PublicLicense along with this library; if not, write to the Free SoftwareFoundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA-------------------------------------------------------------------------------Related papers:T. A. Davis, W. W. Hager, and S. Rajamanickam, Multiple-rank updatesto a supernodal sparse Cholesky factorization, under preparation.T. A. Davis, W. W. Hager, and S. Rajamanickam, CHOLMOD: a sparseCholesky update/downdate package, under preparation. CHOLMOD'snested dissection ordering relies on CCOLAMD and CSYMAMD to orderthe matrix after graph partitioning is used to find the orderingconstraints.T. A. Davis, J. R. Gilbert, S. Larimore, E. Ng, An approximate columnminimum degree ordering algorithm, ACM Transactions on MathematicalSoftware, 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, ACMTransactions 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 InformationScience and Engineering, University of Florida, Gainesville, FL,1998. CISE Tech Report TR-98-016. Available atftp://ftp.cise.ufl.edu/cis/tech-reports/tr98/tr98-016.psvia anonymous ftp.Approximate Deficiency for Ordering the Columns of a Matrix,J. L. Kern, Senior Thesis, Dept. of Computer and InformationScience and Engineering, University of Florida, Gainesville, FL,1999. Available at http://www.cise.ufl.edu/~davis/Kern/kern.psAuthors: Timothy A. Davis, Sivasankaran Rajamanickam, and Stefan Larimore.Closely based on COLAMD by Stefan I. Larimore and Timothy A. Davis,University of Florida, in collaboration with John Gilbert, Xerox PARC(now at UC Santa Barbara), and Esmong Ng, Lawrence Berkeley NationalLaboratory (much of this work he did while at Oak Ridge NationalLaboratory).COLAMD files:CCOLAMD.tar.gz:All files, as a gzipped, Unix tar file.The *.m, and *mex.c files are for use in MATLAB.ccolamd.c: the primary ccolamd computational kernel.ccolamd.h: include file for ccolamd/csymamd library.ccolamd.m: the MATLAB interface to ccolamd.ccolamd_demo.m: MATLAB demo file for ccolamd and csymamd(also compiles the ccolamdmex and csymamdmex mexFunctions).ccolamdmex.c: ccolamd mexFunction for use in MATLAB.ccolamd_example.c: example C main program that calls ccolamd and csymamdccolamd_example.out: output of ccolamd_example.c.Makefile: Makefile for ccolamd_example.ccsymamd.m: the MATLAB interface to csymamd.csymamdmex.c: csymamd mexFunction for use in MATLAB.README: this fileChangeLog: a log of changes since Version 1.0.ccolamd_test.m: test codeccolamdtestmex.c: test codeluflops.m: test codecsymamdtestmex.c: test codelesser.txt: a verbatim copy of the GNU LGPL Version 2.1 license