Rev 1820 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
UMFPACK Version 4.5: a set of routines solving sparse linear systems via LUfactorization. Requires two other packages: the BLAS (dense matrixoperations) and AMD (sparse matrix minimum degree ordering). Includesa C-callable and MATLAB interface, and a basic FORTRAN 77 interface toa subset of the C-callable routines. Requires AMD Version 1.2 or later.Quick start (Unix, or Windows with Cygwin):To compile, test, and install both UMFPACK and AMD, the UMFPACK and AMDdirectories must be in the same parent directory. To configure, editthe UFconfig/UFconfig.mk file (otherwise, you may get warnings that theBLAS (dgemm, etc) are not found). You may use UMFPACK_CONFIG = -DNBLAS inthe UFconfig/UFconfig.mk file, to avoid using the BLAS, but UMFPACK will beslow. Next, cd to this directory (UMFPACK) and type "make". To compileand run a FORTRAN demo program for Harwell/Boeing matrices, type "make hb".To compile a FORTRAN main program that calls the 32-bit C-callable UMFPACKlibrary, type "make fortran". When done, type "make clean" to removeunused *.o files (keeps the compiled libraries and demo programs). Seethe User Guide (Doc/UserGuide.pdf), or ../UFconfig/UFconfig.mk for moredetails (including options for compiling in 64-bit mode).Quick start (for MATLAB users):To compile, test, and install the UMFPACK mexFunction, cd to theUMFPACK/MATLAB directory and type umfpack_make at the MATLAB prompt.This works on any system supported by MATLAB.--------------------------------------------------------------------------------UMFPACK Version 4.5, Copyright (c) 2005 by Timothy A. Davis.All Rights Reserved.UMFPACK is available under alternate licences; contact T. Davis for details.UMFPACK License:Your use or distribution of UMFPACK or any modified version ofUMFPACK implies that you agree to this 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-1301USAPermission is hereby granted to use or copy this program under theterms of the GNU LGPL, provided that the Copyright, this License,and the Availability of the original version is retained on all copies.User documentation of any code that uses this code or any modifiedversion of this code must cite the Copyright, this License, theAvailability note, and "Used by permission." Permission to modifythe code and to distribute modified code is granted, provided theCopyright, this License, and the Availability note are retained,and a notice that the code was modified is included.Availability:http://www.cise.ufl.edu/research/sparse/umfpackUMFPACK (including versions 2.2.1 and earlier, in FORTRAN) is available athttp://www.cise.ufl.edu/research/sparse. MA38 is available in the HarwellSubroutine Library. This version of UMFPACK includes a modified form ofCOLAMD Version 2.0, originally released on Jan. 31, 2000, also available athttp://www.cise.ufl.edu/research/sparse. COLAMD V2.0 is also incorporatedas a built-in function in MATLAB version 6.1, by The MathWorks, Inc.(http://www.mathworks.com). COLAMD V1.0 appears as a column-preorderingin SuperLU (SuperLU is available at http://www.netlib.org).UMFPACK v4.0 is a built-in routine in MATLAB 6.5.UMFPACK v4.3 is a built-in routine in MATLAB 7.1.--------------------------------------------------------------------------------Refer to ../AMD/README for the License for AMD, which is a separatepackage for ordering sparse matrices that is required by UMFPACK.UMFPACK v4.5 cannot user AMD v1.1 or earlier. It requires AMD v1.2 or later.--------------------------------------------------------------------------------This is the UMFPACK README.txt file. It is a terse overview of UMFPACK.Refer to the User Guide (Doc/UserGuide.pdf) for how to install and use UMFPACK,or to the Quick Start Guide, QuickStart.pdf.Description:UMFPACK is a set of routines for solving unsymmetric sparse linear systems,Ax=b, using the Unsymmetric MultiFrontal method. Written in ANSI/ISO C,with a MATLAB (Version 6.0 or later) interface.For best performance, UMFPACK requires an optimized BLAS library. It canalso be compiled without any BLAS at all. UMFPACK requires AMD Version 1.2.Authors:Timothy A. Davis (davis@cise.ufl.edu), University of Florida.Includes a modified version of COLAMD V2.0, by Stefan I. Larimore andTimothy A. Davis, University of Florida. The COLAMD algorithm was developedin collaboration with John Gilbert, Xerox Palo Alto Research Center, andEsmond Ng, Lawrence Berkeley National Laboratory.Includes AMD, by Timothy A. Davis, Patrick R. Amestoy, and Iain S. Duff.UMFPACK Version 2.2.1 (MA38 in the Harwell Subroutine Library) isco-authored with Iain S. Duff, Rutherford Appleton Laboratory.Acknowledgements:This work was supported by the National Science Foundation, undergrants DMS-9504974, DMS-9803599, and CCR-0203270.Portions of this work were done while on sabbatical at Stanford Universityand Lawrence Berkeley National Laboratory (with funding from the SciDACprogram). I would like to thank Gene Golub, Esmond Ng, and Horst Simonfor making this sabbatical possible.I would also like to thank the many researchers who provided sparsematrices from a wide range of domains and used earlier versions of UMFPACK/MA38 in their applications, and thus assisted in the practical developmentof the algorithm (see http://www.cise.ufl.edu/research/sparse, futurecontributions of matrices are always welcome).The MathWorks, Inc., provided a pre-release of MATLAB V6 which allowed meto release the first umfpack mexFunction (v3.0) about 6 months earlier thanI had originally planned. They also supported the extension of UMFPACK tocomplex, singular, and rectangular matrices (UMFPACK v4.0).Penny Anderson (The MathWorks, Inc.), Anshul Gupta (IBM), and FriedrichGrund (WAIS) assisted in porting UMFPACK to different platforms. PennyAnderson also incorporated UMFPACK v4.0 into MATLAB, for lu, backslash (\),and forward slash (/).David Bateman (Motorola) wrote the initial version of the packed complexinput option, and umfpack_get_determinant.--------------------------------------------------------------------------------Files and directories in the UMFPACK distribution:------------------------------------------------------------------------------------------------------------------------------------------------------------Subdirectories of the UMFPACK directory:----------------------------------------------------------------------------Doc documentationSource primary source codeInclude include files for use in your code that calls UMFPACKDemo demo programs. also serves as test of the UMFPACK installation.MATLAB UMFPACK mexFunction for MATLAB, and supporting m-filesLib where the compiled C-callable UMFPACK library is placed.----------------------------------------------------------------------------Files in the UMFPACK directory:----------------------------------------------------------------------------Makefile top-level Makefile for GNU make or original make.Windows users would require Cygwin to use "make"README.txt this file----------------------------------------------------------------------------Doc directory: documentation----------------------------------------------------------------------------ChangeLog change logLicense the UMFPACK LicenseMakefile for creating the documentationQuickStart.tex Quick Start guide (source)QuickStart.pdf Quick Start guide (PDF)UserGuide.bib User Guide (references)UserGuide.sed1 sed script for processing UserGuide.stexUserGuide.sed2 sed script for processing UserGuide.stexUserGuide.stex User Guide (LaTeX)UserGuide.pdf User Guide (PDF)----------------------------------------------------------------------------Source directory:----------------------------------------------------------------------------GNUmakefile a nice Makefile, for GNU makeMakefile an ugly Unix Makefile (for older make's)umfpack_col_to_triplet.c convert col form to tripletumfpack_defaults.c set Control defaultsumfpack_free_numeric.c free Numeric objectumfpack_free_symbolic.c free Symbolic objectumfpack_get_determinant.c compute determinant from Numeric objectumfpack_get_lunz.c get nz's in L and Uumfpack_get_numeric.c get Numeric objectumfpack_get_symbolic.c get Symbolic objectumfpack_load_numeric.c load Numeric object from fileumfpack_load_symbolic.c load Symbolic object from fileumfpack_numeric.c numeric factorizationumfpack_qsymbolic.c symbolic factorization, user Qumfpack_report_control.c print Control settingsumfpack_report_info.c print Info statisticsumfpack_report_matrix.c print col or row-form sparse matrixumfpack_report_numeric.c print Numeric objectumfpack_report_perm.c print permutationumfpack_report_status.c print return statusumfpack_report_symbolic.c print Symbolic objectumfpack_report_triplet.c print triplet matrixumfpack_report_vector.c print dense vectorumfpack_save_numeric.c save Numeric object to fileumfpack_save_symbolic.c save Symbolic object to fileumfpack_scale.c scale a vectorumfpack_solve.c solve a linear systemumfpack_symbolic.c symbolic factorizationumfpack_tictoc.c timerumfpack_timer.c timerumfpack_transpose.c transpose a matrixumfpack_triplet_to_col.c convert triplet to col formumf_config.h configuration file (BLAS, memory, timer)umf_internal.h definitions internal to UMFPACKumf_version.h version definitions (int/long, real/complex)umf_2by2.[ch]umf_analyze.[ch] symbolic factorization of A'*Aumf_apply_order.[ch] apply column etree postorderumf_assemble.[ch] assemble elements into current frontumf_blas3_update.[ch] rank-k update. Uses level-3 BLASumf_build_tuples.[ch] construct tuples for elementsumf_colamd.[ch] COLAMD pre-ordering, modified for UMFPACKumf_create_element.[ch] create a new elementumf_dump.[ch] debugging routines, not normally activeumf_extend_front.[ch] extend the current frontal matrixumf_free.[ch] free memoryumf_fsize.[ch] determine largest front in each subtreeumf_garbage_collection.[ch] compact Numeric->Memoryumf_get_memory.[ch] make Numeric->Memory biggerumf_grow_front.[ch] make current frontal matrix biggerumf_init_front.[ch] initialize a new frontal matrixumf_is_permutation.[ch] checks the validity of a permutation vectorumf_kernel.[ch] the main numeric factorization kernelumf_kernel_init.[ch] initializations for umf_kernelumf_kernel_wrapup.[ch] wrapup for umf_kernelumf_local_search.[ch] local row and column pivot searchumf_lsolve.[ch] solve Lx=bumf_ltsolve.[ch] solve L'x=b and L.'x=bumf_malloc.[ch] malloc some memoryumf_mem_alloc_element.[ch] allocate element in Numeric->Memoryumf_mem_alloc_head_block.[ch] alloc. block at head of Numeric->Memoryumf_mem_alloc_tail_block.[ch] alloc. block at tail of Numeric->Memoryumf_mem_free_tail_block.[ch] free block at tail of Numeric->Memoryumf_mem_init_memoryspace.[ch] initialize Numeric->Memoryumf_realloc.[ch] realloc memoryumf_report_perm.[ch] print a permutation vectorumf_report_vector.[ch] print a double vectorumf_row_search.[ch] look for a pivot rowumf_scale.[ch] scale the pivot columnumf_scale_column.[ch] move pivot row & column into place, log P and Qumf_set_stats.[ch] set statistics (final or estimates)umf_singletons.[ch] find all zero-cost pivotsumf_solve.[ch] solve a linear systemumf_start_front.[ch] start a new frontal matrix for one frontal chainumf_store_lu.[ch] store LU factors of current frontumf_symbolic_usage.[ch] determine memory usage for Symbolic objectumf_transpose.[ch] transpose a matrix in row or col formumf_triplet.[ch] convert triplet to column formumf_tuple_lengths.[ch] determine the tuple list lengthsumf_usolve.[ch] solve Ux=bumf_utsolve.[ch] solve U'x=b and U.'x=bumf_valid_numeric.[ch] checks the validity of a Numeric objectumf_valid_symbolic.[ch] check the validity of a Symbolic object----------------------------------------------------------------------------Include directory:----------------------------------------------------------------------------umfpack.h include file for user programs. Includes all ofthe following files. This serves are source-code level documenation. These files are alsoused to construct the User Guide.umfpack_col_to_triplet.humfpack_defaults.humfpack_free_numeric.humfpack_free_symbolic.humfpack_get_determinant.humfpack_get_lunz.humfpack_get_numeric.humfpack_get_symbolic.humfpack_load_numeric.humfpack_load_symbolic.humfpack_numeric.humfpack_qsymbolic.humfpack_report_control.humfpack_report_info.humfpack_report_matrix.humfpack_report_numeric.humfpack_report_perm.humfpack_report_status.humfpack_report_symbolic.humfpack_report_triplet.humfpack_report_vector.humfpack_save_numeric.humfpack_save_symbolic.humfpack_scale.humfpack_solve.humfpack_symbolic.humfpack_tictoc.humfpack_timer.humfpack_transpose.humfpack_triplet_to_col.humfpack_wsolve.h note that there is no umfpack_wsolve.c. Theumfpack_*_wsolve routines are created from theumfpack_solve.c file.----------------------------------------------------------------------------Demo directory:----------------------------------------------------------------------------Makefile for GNU make or original makeumfpack_simple.c a simple demoumpack_xx_demo.c template to create the demo codes belowumfpack_di_demo.sed for creating umfpack_di_demo.cumfpack_dl_demo.sed for creating umfpack_dl_demo.cumfpack_zi_demo.sed for creating umfpack_zi_demo.cumfpack_zl_demo.sed for creating umfpack_zl_demo.cumfpack_di_demo.c a full demo (real/int version)umfpack_dl_demo.c a full demo (real/long version)umfpack_zi_demo.c a full demo (complex/int version)umfpack_zl_demo.c a full demo (complex/long version)umfpack_di_demo.out umfpack_di_demo outputumfpack_dl_demo.out umfpack_dl_demo outputumfpack_zi_demo.out umfpack_zi_demo outputumfpack_zl_demo.out umfpack_zl_demo outputumf4.c a demo (real/int) for Harwell/Boeing matricesumf4.out output of "make hb"HB directory of sample Harwell/Boeing matricesreadhb.f reads HB matrices, keeps zero entriesreadhb_nozeros.f reads HB matrices, removes zero entriesreadhb_size.f reads HB matrix dimension, nnztmp empty directory for umf4.c demoumf4_f77wrapper.c a simple FORTRAN interface for UMFPACK.compile with "make fortran"umf4hb.f a demo of the FORTRAN interfaceumf4hb.out output of "make fortran"umf4_f77zwrapper.c a simple FORTRAN interface for the complexUMFPACK routines. compile with "make fortran"umf4zhb.f a demo of the FORTRAN interface (complex)umf4zhb.out output of umf4zhb with HB/qc324.cuaumf4hb64.f 64-bit version of umf4hb.fsimple_compile a single command that compiles the double/intversion of UMFPACK (useful prototype forMicrosoft Visual Studio project)----------------------------------------------------------------------------MATLAB directory:----------------------------------------------------------------------------Contents.m for "help umfpack" listing of toolbox contentsGNUmakefile a nice Makefile, for GNU makeMakefile an ugly Unix Makefile (for older make's)lu_normest.m 1-norm estimate of A-L*U (by Hager & Davis).luflop.m for "help luflop"luflopmex.c luflop mexFunction, for computing LU flop countumfpack.m for "help umfpack"umfpack_btf.m solve Ax=b using umfpack and dmpermumfpack_demo.m a full umfpack demoumfpack_details.m the details of how to use umfpackumfpack_make.m compile the umfpack mexFunction within MATLABumfpack_report.m report statisticsumfpack_simple.m a simple umfpack demoumfpack_solve.m x=A\b or b/A for arbitrary bumfpack_test.m extensive test, requires UF sparse matricesumfpackmex.c the umfpack mexFunctionwest0067.mat sparse matrix for umfpack_demo.mumfpack_demo.m.out output of umfpack_demo.mumfpack_simple.m.out output of umfpack_simplelcc_lib/lapacksyms.def LAPACK definitions for lcc compiler (Windows)lcc_lib/libmwlapack.lib LAPACK definitions for lcc compiler (Windows)----------------------------------------------------------------------------Lib directory: libumfpack.a library placed here----------------------------------------------------------------------------libumfpack.def UMPFACK definitions for Windows