Rev 4428 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
The COLAMD ordering method - Version 2.7-------------------------------------------------------------------------------The COLAMD 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.SYMAMD is a symmetric minimum degree ordering method based on COLAMD,available as a MATLAB-callable function. It constructs a matrix M suchthat M'*M has the same pattern as A, and then uses COLAMD to compute a columnordering of M. Colamd and symamd tend to be faster and generate betterorderings than their MATLAB counterparts, colmmd and symmmd.To compile and test the colamd m-files and mexFunctions, just unpack theCOLAMD/ directory from the COLAMD.tar.gz file, and run MATLAB fromwithin that directory. Next, type colamd_test to compile and test colamdand symamd. 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, without using MATLAB.To compile and install the colamd m-files and mexFunctions, just cd toCOLAMD/MATLAB and type colamd_install in the MATLAB command window.A short demo will run. Optionally, type colamd_test to run an extensive tests.Type "make" in Unix in the COLAMD directory to compile the C-callablelibrary and to run a short demo.If you have MATLAB 7.2 or earlier, you must first edit UFconfig/UFconfig.h toremove the "-largeArrayDims" option from the MEX command (or just usecolamd_make.m inside MATLAB).Colamd is a built-in routine in MATLAB, available from TheMathworks, Inc. Under most cases, the compiled COLAMD from Versions 2.0 to thecurrent version do not differ. Colamd Versions 2.2 and 2.3 differ only in theirmexFunction interaces to MATLAB. v2.4 fixes a bug in the symamd routine inv2.3. The bug (in v2.3 and earlier) has no effect on the MATLAB symamdmexFunction. v2.5 adds additional checks for integer overflow, so thatthe "int" version can be safely used with 64-bit pointers. Refer to theChangeLog for more details.To use colamd and symamd within an application written in C, all you need arecolamd.c, colamd_global.c, and colamd.h, which are the C-callablecolamd/symamd codes. See colamd.c for more information on how to callcolamd from a C program.Requires UFconfig, in the ../UFconfig directory relative to this directory.Copyright (c) 1998-2007, Timothy A. Davis, All Rights Reserved.See http://www.cise.ufl.edu/research/sparse/colamd (the colamd.cfile) for the License.Related papers: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: 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 National Laboratory (much of this workhe did while at Oak Ridge National Laboratory).COLAMD files:Demo simple demoDoc additional documentation (see colamd.c for more)Include include fileLib compiled C-callable libraryMakefile primary Unix MakefileMATLAB MATLAB functionsREADME.txt this fileSource C source code./Demo:colamd_example.c simple examplecolamd_example.out output of colamd_example.ccolamd_l_example.c simple example, long integerscolamd_l_example.out output of colamd_l_example.cMakefile Makefile for C demos./Doc:ChangeLog change loglesser.txt license./Include:colamd.h include file./Lib:Makefile Makefile for C-callable library./MATLAB:colamd2.m MATLAB interface for colamd2colamd_demo.m simple democolamd_install.m compile and install colamd2 and symamd2colamd_make.m compile colamd2 and symamd2colamdmex.ca MATLAB mexFunction for colamd2colamd_test.m extensive testcolamdtestmex.c test function for colamdContents.m contents of the MATLAB directoryluflops.m test codeMakefile Makefile for MATLAB functionssymamd2.m MATLAB interface for symamd2symamdmex.c MATLAB mexFunction for symamd2symamdtestmex.c test function for symamd./Source:colamd.c primary source codecolamd_global.c globally defined function pointers (malloc, free, ...)