Mercurial > octave-nkf
diff liboctave/UMFPACK/UMFPACK/README.txt @ 5164:57077d0ddc8e
[project @ 2005-02-25 19:55:24 by jwe]
author | jwe |
---|---|
date | Fri, 25 Feb 2005 19:55:28 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/liboctave/UMFPACK/UMFPACK/README.txt Fri Feb 25 19:55:28 2005 +0000 @@ -0,0 +1,394 @@ +UMFPACK Version 4.4: a set of routines solving sparse linear systems via LU + factorization. Requires two other packages: the BLAS (dense matrix + operations) and AMD (sparse matrix minimum degree ordering). Includes + a C-callable and MATLAB interface, and a basic FORTRAN 77 interface to + a subset of the C-callable routines. + +Quick start (Unix, or Windows with Cygwin): + + To compile, test, and install both UMFPACK and AMD, the UMFPACK and AMD + directories must be in the same parent directory. To configure, edit + UMFPACK/Make/Make.include and AMD/Make/Make.include (otherwise the BLAS + will not be used, and UMFPACK will be slow). cd to this directory (UMFPACK) + and type "make" (or "make lib" if you do not have MATLAB). To compile and + run a demo program for Harwell/Boeing matrices, type "make hb". To compile + a FORTRAN main program that calls the 32-bit C-callable UMFPACK library, + type "make fortran". When done, type "make clean" to remove unused *.o + files (keeps the compiled libraries and demo programs). See the User Guide + (Doc/UserGuide.pdf), or UMFPACK/Make/Make.include, for more details + (including options for compiling 64-bit mode). + +Quick start (for MATLAB users): + + To compile, test, and install the UMFPACK mexFunction, cd to the + UMFPACK/MATLAB directory and type umfpack_make at the MATLAB prompt. + This works on any system supported by MATLAB. + +-------------------------------------------------------------------------------- + +UMFPACK Version 4.4 (Jan. 28, 2005), Copyright (c) 2005 by Timothy A. +Davis. All Rights Reserved. + +UMFPACK License: + + Your use or distribution of UMFPACK or any modified version of + UMFPACK implies that you agree to this License. + + THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY + EXPRESSED OR IMPLIED. ANY USE IS AT YOUR OWN RISK. + + Permission is hereby granted to use or copy this program, 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 UMFPACK or any modified version of UMFPACK code must cite the + Copyright, this License, the Availability note, and "Used by permission." + Permission to modify the code and to distribute modified code is granted, + provided the Copyright, this License, and the Availability note are + retained, and a notice that the code was modified is included. This + software was developed with support from the National Science Foundation, + and is provided to you free of charge. + +Availability: + + http://www.cise.ufl.edu/research/sparse/umfpack + + UMFPACK (including versions 2.2.1 and earlier, in Fortran) is available at + http://www.cise.ufl.edu/research/sparse. MA38 is available in the Harwell + Subroutine Library. This version of UMFPACK includes a modified form of + COLAMD Version 2.0, originally released on Jan. 31, 2000, also available at + http://www.cise.ufl.edu/research/sparse. COLAMD V2.0 is also incorporated + as a built-in function in MATLAB version 6.1, by The MathWorks, Inc. + (http://www.mathworks.com). COLAMD V1.0 appears as a column-preordering + in 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 separate +package for ordering sparse matrices that is required by UMFPACK. +UMFPACK v4.4 can use either AMD v1.0 or v1.1. + +-------------------------------------------------------------------------------- + +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 can + also be compiled without any BLAS at all. UMFPACK requires AMD Version 1.0 + or Version 1.1 + +Authors: + + Timothy A. Davis (davis@cise.ufl.edu), University of Florida. + + Includes a modified version of COLAMD V2.0, by Stefan I. Larimore and + Timothy A. Davis, University of Florida. The COLAMD algorithm was developed + in collaboration with John Gilbert, Xerox Palo Alto Research Center, and + Esmond 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) is + co-authored with Iain S. Duff, Rutherford Appleton Laboratory. + +Acknowledgements: + + This work was supported by the National Science Foundation, under + grants DMS-9504974, DMS-9803599, and CCR-0203270. + + Portions of this work were done while on sabbatical at Stanford University + and Lawrence Berkeley National Laboratory (with funding from the SciDAC + program). I would like to thank Gene Golub, Esmond Ng, and Horst Simon + for making this sabbatical possible. + + I would also like to thank the many researchers who provided sparse + matrices from a wide range of domains and used earlier versions of UMFPACK/ + MA38 in their applications, and thus assisted in the practical development + of the algorithm (see http://www.cise.ufl.edu/research/sparse, future + contributions of matrices are always welcome). + + The MathWorks, Inc., provided a pre-release of MATLAB V6 which allowed me + to release the first umfpack mexFunction (v3.0) about 6 months earlier than + I had originally planned. They also supported the extension of UMFPACK to + complex, singular, and rectangular matrices (UMFPACK v4.0). + + Penny Anderson (The MathWorks, Inc.), Anshul Gupta (IBM), and Friedrich + Grund (WAIS) assisted in porting UMFPACK to different platforms. Penny + Anderson also incorporated UMFPACK v4.0 into MATLAB, for lu, backslash (\), + and forward slash (/). + + David Bateman (Motorola) wrote the initial version of the packed complex + input option, and umfpack_get_determinant. + +-------------------------------------------------------------------------------- +Files and directories in the UMFPACK distribution: +-------------------------------------------------------------------------------- + + ---------------------------------------------------------------------------- + Subdirectories of the UMFPACK directory: + ---------------------------------------------------------------------------- + + Doc documentation + Make for compiling UMFPACK (a symbolic link to ../AMD/Make) + Source primary source code + Include include files for use in your code that calls UMFPACK + Demo demo programs. also serves as test of the UMFPACK installation. + MATLAB UMFPACK mexFunction for MATLAB, and supporting m-files + Lib 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 log + License the UMFPACK License + Makefile for creating the documentation + QuickStart.tex Quick Start guide (source) + QuickStart.pdf Quick Start guide (PDF) + UserGuide.bib User Guide (references) + UserGuide.sed1 sed script for processing UserGuide.stex + UserGuide.sed2 sed script for processing UserGuide.stex + UserGuide.stex User Guide (LaTeX) + UserGuide.pdf User Guide (PDF) + + ---------------------------------------------------------------------------- + Make directory: for compiling the UMFPACK library (Lib/libumfpack.a) + ---------------------------------------------------------------------------- + + This is a symbolic link to the ../AMD/Make directory. Refer to the + ../AMD/README file for a list of its contents. + + ---------------------------------------------------------------------------- + Source directory: + ---------------------------------------------------------------------------- + + GNUmakefile a nice Makefile, for GNU make + Makefile an ugly Unix Makefile (for older make's) + + umfpack_col_to_triplet.c convert col form to triplet + umfpack_defaults.c set Control defaults + umfpack_free_numeric.c free Numeric object + umfpack_free_symbolic.c free Symbolic object + umfpack_get_determinant.c compute determinant from Numeric object + umfpack_get_lunz.c get nz's in L and U + umfpack_get_numeric.c get Numeric object + umfpack_get_symbolic.c get Symbolic object + umfpack_load_numeric.c load Numeric object from file + umfpack_load_symbolic.c load Symbolic object from file + umfpack_numeric.c numeric factorization + umfpack_qsymbolic.c symbolic factorization, user Q + umfpack_report_control.c print Control settings + umfpack_report_info.c print Info statistics + umfpack_report_matrix.c print col or row-form sparse matrix + umfpack_report_numeric.c print Numeric object + umfpack_report_perm.c print permutation + umfpack_report_status.c print return status + umfpack_report_symbolic.c print Symbolic object + umfpack_report_triplet.c print triplet matrix + umfpack_report_vector.c print dense vector + umfpack_save_numeric.c save Numeric object to file + umfpack_save_symbolic.c save Symbolic object to file + umfpack_scale.c scale a vector + umfpack_solve.c solve a linear system + umfpack_symbolic.c symbolic factorization + umfpack_tictoc.c timer + umfpack_timer.c timer + umfpack_transpose.c transpose a matrix + umfpack_triplet_to_col.c convert triplet to col form + + umf_config.h configuration file (BLAS, memory, timer) + umf_internal.h definitions internal to UMFPACK + umf_version.h version definitions (int/long, real/complex) + + umf_2by2.[ch] + umf_analyze.[ch] symbolic factorization of A'*A + umf_apply_order.[ch] apply column etree postorder + umf_assemble.[ch] assemble elements into current front + umf_blas3_update.[ch] rank-k update. Uses level-3 BLAS + umf_build_tuples.[ch] construct tuples for elements + umf_colamd.[ch] COLAMD pre-ordering, modified for UMFPACK + umf_create_element.[ch] create a new element + umf_dump.[ch] debugging routines, not normally active + umf_extend_front.[ch] extend the current frontal matrix + umf_free.[ch] free memory + umf_fsize.[ch] determine largest front in each subtree + umf_garbage_collection.[ch] compact Numeric->Memory + umf_get_memory.[ch] make Numeric->Memory bigger + umf_grow_front.[ch] make current frontal matrix bigger + umf_init_front.[ch] initialize a new frontal matrix + umf_is_permutation.[ch] checks the validity of a permutation vector + umf_kernel.[ch] the main numeric factorization kernel + umf_kernel_init.[ch] initializations for umf_kernel + umf_kernel_wrapup.[ch] wrapup for umf_kernel + umf_local_search.[ch] local row and column pivot search + umf_lsolve.[ch] solve Lx=b + umf_ltsolve.[ch] solve L'x=b and L.'x=b + umf_malloc.[ch] malloc some memory + umf_mem_alloc_element.[ch] allocate element in Numeric->Memory + umf_mem_alloc_head_block.[ch] alloc. block at head of Numeric->Memory + umf_mem_alloc_tail_block.[ch] alloc. block at tail of Numeric->Memory + umf_mem_free_tail_block.[ch] free block at tail of Numeric->Memory + umf_mem_init_memoryspace.[ch] initialize Numeric->Memory + umf_realloc.[ch] realloc memory + umf_report_perm.[ch] print a permutation vector + umf_report_vector.[ch] print a double vector + umf_row_search.[ch] look for a pivot row + umf_scale.[ch] scale the pivot column + umf_scale_column.[ch] move pivot row & column into place, log P and Q + umf_set_stats.[ch] set statistics (final or estimates) + umf_singletons.[ch] find all zero-cost pivots + umf_solve.[ch] solve a linear system + umf_start_front.[ch] start a new frontal matrix for one frontal chain + umf_store_lu.[ch] store LU factors of current front + umf_symbolic_usage.[ch] determine memory usage for Symbolic object + umf_transpose.[ch] transpose a matrix in row or col form + umf_triplet.[ch] convert triplet to column form + umf_tuple_lengths.[ch] determine the tuple list lengths + umf_usolve.[ch] solve Ux=b + umf_utsolve.[ch] solve U'x=b and U.'x=b + umf_valid_numeric.[ch] checks the validity of a Numeric object + umf_valid_symbolic.[ch] check the validity of a Symbolic object + + ---------------------------------------------------------------------------- + Include directory: + ---------------------------------------------------------------------------- + + umfpack.h include file for user programs. Includes all of + the following files. This serves are source- + code level documenation. These files are also + used to construct the User Guide. + + umfpack_col_to_triplet.h + umfpack_defaults.h + umfpack_free_numeric.h + umfpack_free_symbolic.h + umfpack_get_determinant.h + umfpack_get_lunz.h + umfpack_get_numeric.h + umfpack_get_symbolic.h + umfpack_load_numeric.h + umfpack_load_symbolic.h + umfpack_numeric.h + umfpack_qsymbolic.h + umfpack_report_control.h + umfpack_report_info.h + umfpack_report_matrix.h + umfpack_report_numeric.h + umfpack_report_perm.h + umfpack_report_status.h + umfpack_report_symbolic.h + umfpack_report_triplet.h + umfpack_report_vector.h + umfpack_save_numeric.h + umfpack_save_symbolic.h + umfpack_scale.h + umfpack_solve.h + umfpack_symbolic.h + umfpack_tictoc.h + umfpack_timer.h + umfpack_transpose.h + umfpack_triplet_to_col.h + + umfpack_wsolve.h note that there is no umfpack_wsolve.c. The + umfpack_*_wsolve routines are created from the + umfpack_solve.c file. + + ---------------------------------------------------------------------------- + Demo directory: + ---------------------------------------------------------------------------- + + Makefile for GNU make or original make + + umfpack_simple.c a simple demo + umpack_xx_demo.c template to create the demo codes below + + umfpack_di_demo.sed for creating umfpack_di_demo.c + umfpack_dl_demo.sed for creating umfpack_dl_demo.c + umfpack_zi_demo.sed for creating umfpack_zi_demo.c + umfpack_zl_demo.sed for creating umfpack_zl_demo.c + + umfpack_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 output, unmodified Make.include + umfpack_dl_demo.out umfpack_dl_demo output, unmodified Make.include + umfpack_zi_demo.out umfpack_zi_demo output, unmodified Make.include + umfpack_zl_demo.out umfpack_zl_demo output, unmodified Make.include + + umf4.c a demo (real/int) for Harwell/Boeing matrices + umf4.out output of "make hb", unmodified Make.include + HB directory of sample Harwell/Boeing matrices + readhb.f reads HB matrices, keeps zero entries + readhb_nozeros.f reads HB matrices, removes zero entries + readhb_size.f reads HB matrix dimension, nnz + tmp empty directory for umf4.c demo + + umf4_f77wrapper.c a simple FORTRAN interface for UMFPACK. + compile with "make fortran" + umf4hb.f a demo of the FORTRAN interface + umf4hb.out output of "make fortran" + + umf4_f77zwrapper.c a simple FORTRAN interface for the complex + UMFPACK routines. compile with "make fortran" + umf4zhb.f a demo of the FORTRAN interface (complex) + umf4zhb.out output of umf4zhb with HB/qc324.cua + + umf4hb64.f 64-bit version of umf4hb.f + + simple_compile a single command that compiles the double/int + version of UMFPACK (useful prototype for + Microsoft Visual Studio project) + + ---------------------------------------------------------------------------- + MATLAB directory: + ---------------------------------------------------------------------------- + + Contents.m for "help umfpack" listing of toolbox contents + GNUmakefile a nice Makefile, for GNU make + Makefile 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 count + umfpack.m for "help umfpack" + umfpack_btf.m solve Ax=b using umfpack and dmperm + umfpack_demo.m a full umfpack demo + umfpack_details.m the details of how to use umfpack + umfpack_make.m compile the umfpack mexFunction within MATLAB + umfpack_report.m report statistics + umfpack_simple.m a simple umfpack demo + umfpack_solve.m x=A\b or b/A for arbitrary b + umfpack_test.m extensive test, requires UF sparse matrices + umfpackmex.c the umfpack mexFunction + west0067.mat sparse matrix for umfpack_demo.m + + umfpack_demo.m.out output of umfpack_demo.m + umfpack_simple.m.out output of umfpack_simple + + lcc_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