comparison 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
comparison
equal deleted inserted replaced
5163:9f3299378193 5164:57077d0ddc8e
1 UMFPACK Version 4.4: a set of routines solving sparse linear systems via LU
2 factorization. Requires two other packages: the BLAS (dense matrix
3 operations) and AMD (sparse matrix minimum degree ordering). Includes
4 a C-callable and MATLAB interface, and a basic FORTRAN 77 interface to
5 a subset of the C-callable routines.
6
7 Quick start (Unix, or Windows with Cygwin):
8
9 To compile, test, and install both UMFPACK and AMD, the UMFPACK and AMD
10 directories must be in the same parent directory. To configure, edit
11 UMFPACK/Make/Make.include and AMD/Make/Make.include (otherwise the BLAS
12 will not be used, and UMFPACK will be slow). cd to this directory (UMFPACK)
13 and type "make" (or "make lib" if you do not have MATLAB). To compile and
14 run a demo program for Harwell/Boeing matrices, type "make hb". To compile
15 a FORTRAN main program that calls the 32-bit C-callable UMFPACK library,
16 type "make fortran". When done, type "make clean" to remove unused *.o
17 files (keeps the compiled libraries and demo programs). See the User Guide
18 (Doc/UserGuide.pdf), or UMFPACK/Make/Make.include, for more details
19 (including options for compiling 64-bit mode).
20
21 Quick start (for MATLAB users):
22
23 To compile, test, and install the UMFPACK mexFunction, cd to the
24 UMFPACK/MATLAB directory and type umfpack_make at the MATLAB prompt.
25 This works on any system supported by MATLAB.
26
27 --------------------------------------------------------------------------------
28
29 UMFPACK Version 4.4 (Jan. 28, 2005), Copyright (c) 2005 by Timothy A.
30 Davis. All Rights Reserved.
31
32 UMFPACK License:
33
34 Your use or distribution of UMFPACK or any modified version of
35 UMFPACK implies that you agree to this License.
36
37 THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
38 EXPRESSED OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
39
40 Permission is hereby granted to use or copy this program, provided
41 that the Copyright, this License, and the Availability of the original
42 version is retained on all copies. User documentation of any code that
43 uses UMFPACK or any modified version of UMFPACK code must cite the
44 Copyright, this License, the Availability note, and "Used by permission."
45 Permission to modify the code and to distribute modified code is granted,
46 provided the Copyright, this License, and the Availability note are
47 retained, and a notice that the code was modified is included. This
48 software was developed with support from the National Science Foundation,
49 and is provided to you free of charge.
50
51 Availability:
52
53 http://www.cise.ufl.edu/research/sparse/umfpack
54
55 UMFPACK (including versions 2.2.1 and earlier, in Fortran) is available at
56 http://www.cise.ufl.edu/research/sparse. MA38 is available in the Harwell
57 Subroutine Library. This version of UMFPACK includes a modified form of
58 COLAMD Version 2.0, originally released on Jan. 31, 2000, also available at
59 http://www.cise.ufl.edu/research/sparse. COLAMD V2.0 is also incorporated
60 as a built-in function in MATLAB version 6.1, by The MathWorks, Inc.
61 (http://www.mathworks.com). COLAMD V1.0 appears as a column-preordering
62 in SuperLU (SuperLU is available at http://www.netlib.org).
63 UMFPACK v4.0 is a built-in routine in MATLAB 6.5.
64 UMFPACK v4.3 is a built-in routine in MATLAB 7.1.
65
66 --------------------------------------------------------------------------------
67
68 Refer to ../AMD/README for the License for AMD, which is a separate
69 package for ordering sparse matrices that is required by UMFPACK.
70 UMFPACK v4.4 can use either AMD v1.0 or v1.1.
71
72 --------------------------------------------------------------------------------
73
74 This is the UMFPACK README.txt file. It is a terse overview of UMFPACK.
75 Refer to the User Guide (Doc/UserGuide.pdf) for how to install and use UMFPACK,
76 or to the Quick Start Guide, QuickStart.pdf.
77
78 Description:
79
80 UMFPACK is a set of routines for solving unsymmetric sparse linear systems,
81 Ax=b, using the Unsymmetric MultiFrontal method. Written in ANSI/ISO C,
82 with a MATLAB (Version 6.0 or later) interface.
83
84 For best performance, UMFPACK requires an optimized BLAS library. It can
85 also be compiled without any BLAS at all. UMFPACK requires AMD Version 1.0
86 or Version 1.1
87
88 Authors:
89
90 Timothy A. Davis (davis@cise.ufl.edu), University of Florida.
91
92 Includes a modified version of COLAMD V2.0, by Stefan I. Larimore and
93 Timothy A. Davis, University of Florida. The COLAMD algorithm was developed
94 in collaboration with John Gilbert, Xerox Palo Alto Research Center, and
95 Esmond Ng, Lawrence Berkeley National Laboratory.
96
97 Includes AMD, by Timothy A. Davis, Patrick R. Amestoy, and Iain S. Duff.
98
99 UMFPACK Version 2.2.1 (MA38 in the Harwell Subroutine Library) is
100 co-authored with Iain S. Duff, Rutherford Appleton Laboratory.
101
102 Acknowledgements:
103
104 This work was supported by the National Science Foundation, under
105 grants DMS-9504974, DMS-9803599, and CCR-0203270.
106
107 Portions of this work were done while on sabbatical at Stanford University
108 and Lawrence Berkeley National Laboratory (with funding from the SciDAC
109 program). I would like to thank Gene Golub, Esmond Ng, and Horst Simon
110 for making this sabbatical possible.
111
112 I would also like to thank the many researchers who provided sparse
113 matrices from a wide range of domains and used earlier versions of UMFPACK/
114 MA38 in their applications, and thus assisted in the practical development
115 of the algorithm (see http://www.cise.ufl.edu/research/sparse, future
116 contributions of matrices are always welcome).
117
118 The MathWorks, Inc., provided a pre-release of MATLAB V6 which allowed me
119 to release the first umfpack mexFunction (v3.0) about 6 months earlier than
120 I had originally planned. They also supported the extension of UMFPACK to
121 complex, singular, and rectangular matrices (UMFPACK v4.0).
122
123 Penny Anderson (The MathWorks, Inc.), Anshul Gupta (IBM), and Friedrich
124 Grund (WAIS) assisted in porting UMFPACK to different platforms. Penny
125 Anderson also incorporated UMFPACK v4.0 into MATLAB, for lu, backslash (\),
126 and forward slash (/).
127
128 David Bateman (Motorola) wrote the initial version of the packed complex
129 input option, and umfpack_get_determinant.
130
131 --------------------------------------------------------------------------------
132 Files and directories in the UMFPACK distribution:
133 --------------------------------------------------------------------------------
134
135 ----------------------------------------------------------------------------
136 Subdirectories of the UMFPACK directory:
137 ----------------------------------------------------------------------------
138
139 Doc documentation
140 Make for compiling UMFPACK (a symbolic link to ../AMD/Make)
141 Source primary source code
142 Include include files for use in your code that calls UMFPACK
143 Demo demo programs. also serves as test of the UMFPACK installation.
144 MATLAB UMFPACK mexFunction for MATLAB, and supporting m-files
145 Lib where the compiled C-callable UMFPACK library is placed.
146
147 ----------------------------------------------------------------------------
148 Files in the UMFPACK directory:
149 ----------------------------------------------------------------------------
150
151 Makefile top-level Makefile for GNU make or original make.
152 Windows users would require Cygwin to use "make"
153
154 README.txt this file
155
156 ----------------------------------------------------------------------------
157 Doc directory: documentation
158 ----------------------------------------------------------------------------
159
160 ChangeLog change log
161 License the UMFPACK License
162 Makefile for creating the documentation
163 QuickStart.tex Quick Start guide (source)
164 QuickStart.pdf Quick Start guide (PDF)
165 UserGuide.bib User Guide (references)
166 UserGuide.sed1 sed script for processing UserGuide.stex
167 UserGuide.sed2 sed script for processing UserGuide.stex
168 UserGuide.stex User Guide (LaTeX)
169 UserGuide.pdf User Guide (PDF)
170
171 ----------------------------------------------------------------------------
172 Make directory: for compiling the UMFPACK library (Lib/libumfpack.a)
173 ----------------------------------------------------------------------------
174
175 This is a symbolic link to the ../AMD/Make directory. Refer to the
176 ../AMD/README file for a list of its contents.
177
178 ----------------------------------------------------------------------------
179 Source directory:
180 ----------------------------------------------------------------------------
181
182 GNUmakefile a nice Makefile, for GNU make
183 Makefile an ugly Unix Makefile (for older make's)
184
185 umfpack_col_to_triplet.c convert col form to triplet
186 umfpack_defaults.c set Control defaults
187 umfpack_free_numeric.c free Numeric object
188 umfpack_free_symbolic.c free Symbolic object
189 umfpack_get_determinant.c compute determinant from Numeric object
190 umfpack_get_lunz.c get nz's in L and U
191 umfpack_get_numeric.c get Numeric object
192 umfpack_get_symbolic.c get Symbolic object
193 umfpack_load_numeric.c load Numeric object from file
194 umfpack_load_symbolic.c load Symbolic object from file
195 umfpack_numeric.c numeric factorization
196 umfpack_qsymbolic.c symbolic factorization, user Q
197 umfpack_report_control.c print Control settings
198 umfpack_report_info.c print Info statistics
199 umfpack_report_matrix.c print col or row-form sparse matrix
200 umfpack_report_numeric.c print Numeric object
201 umfpack_report_perm.c print permutation
202 umfpack_report_status.c print return status
203 umfpack_report_symbolic.c print Symbolic object
204 umfpack_report_triplet.c print triplet matrix
205 umfpack_report_vector.c print dense vector
206 umfpack_save_numeric.c save Numeric object to file
207 umfpack_save_symbolic.c save Symbolic object to file
208 umfpack_scale.c scale a vector
209 umfpack_solve.c solve a linear system
210 umfpack_symbolic.c symbolic factorization
211 umfpack_tictoc.c timer
212 umfpack_timer.c timer
213 umfpack_transpose.c transpose a matrix
214 umfpack_triplet_to_col.c convert triplet to col form
215
216 umf_config.h configuration file (BLAS, memory, timer)
217 umf_internal.h definitions internal to UMFPACK
218 umf_version.h version definitions (int/long, real/complex)
219
220 umf_2by2.[ch]
221 umf_analyze.[ch] symbolic factorization of A'*A
222 umf_apply_order.[ch] apply column etree postorder
223 umf_assemble.[ch] assemble elements into current front
224 umf_blas3_update.[ch] rank-k update. Uses level-3 BLAS
225 umf_build_tuples.[ch] construct tuples for elements
226 umf_colamd.[ch] COLAMD pre-ordering, modified for UMFPACK
227 umf_create_element.[ch] create a new element
228 umf_dump.[ch] debugging routines, not normally active
229 umf_extend_front.[ch] extend the current frontal matrix
230 umf_free.[ch] free memory
231 umf_fsize.[ch] determine largest front in each subtree
232 umf_garbage_collection.[ch] compact Numeric->Memory
233 umf_get_memory.[ch] make Numeric->Memory bigger
234 umf_grow_front.[ch] make current frontal matrix bigger
235 umf_init_front.[ch] initialize a new frontal matrix
236 umf_is_permutation.[ch] checks the validity of a permutation vector
237 umf_kernel.[ch] the main numeric factorization kernel
238 umf_kernel_init.[ch] initializations for umf_kernel
239 umf_kernel_wrapup.[ch] wrapup for umf_kernel
240 umf_local_search.[ch] local row and column pivot search
241 umf_lsolve.[ch] solve Lx=b
242 umf_ltsolve.[ch] solve L'x=b and L.'x=b
243 umf_malloc.[ch] malloc some memory
244 umf_mem_alloc_element.[ch] allocate element in Numeric->Memory
245 umf_mem_alloc_head_block.[ch] alloc. block at head of Numeric->Memory
246 umf_mem_alloc_tail_block.[ch] alloc. block at tail of Numeric->Memory
247 umf_mem_free_tail_block.[ch] free block at tail of Numeric->Memory
248 umf_mem_init_memoryspace.[ch] initialize Numeric->Memory
249 umf_realloc.[ch] realloc memory
250 umf_report_perm.[ch] print a permutation vector
251 umf_report_vector.[ch] print a double vector
252 umf_row_search.[ch] look for a pivot row
253 umf_scale.[ch] scale the pivot column
254 umf_scale_column.[ch] move pivot row & column into place, log P and Q
255 umf_set_stats.[ch] set statistics (final or estimates)
256 umf_singletons.[ch] find all zero-cost pivots
257 umf_solve.[ch] solve a linear system
258 umf_start_front.[ch] start a new frontal matrix for one frontal chain
259 umf_store_lu.[ch] store LU factors of current front
260 umf_symbolic_usage.[ch] determine memory usage for Symbolic object
261 umf_transpose.[ch] transpose a matrix in row or col form
262 umf_triplet.[ch] convert triplet to column form
263 umf_tuple_lengths.[ch] determine the tuple list lengths
264 umf_usolve.[ch] solve Ux=b
265 umf_utsolve.[ch] solve U'x=b and U.'x=b
266 umf_valid_numeric.[ch] checks the validity of a Numeric object
267 umf_valid_symbolic.[ch] check the validity of a Symbolic object
268
269 ----------------------------------------------------------------------------
270 Include directory:
271 ----------------------------------------------------------------------------
272
273 umfpack.h include file for user programs. Includes all of
274 the following files. This serves are source-
275 code level documenation. These files are also
276 used to construct the User Guide.
277
278 umfpack_col_to_triplet.h
279 umfpack_defaults.h
280 umfpack_free_numeric.h
281 umfpack_free_symbolic.h
282 umfpack_get_determinant.h
283 umfpack_get_lunz.h
284 umfpack_get_numeric.h
285 umfpack_get_symbolic.h
286 umfpack_load_numeric.h
287 umfpack_load_symbolic.h
288 umfpack_numeric.h
289 umfpack_qsymbolic.h
290 umfpack_report_control.h
291 umfpack_report_info.h
292 umfpack_report_matrix.h
293 umfpack_report_numeric.h
294 umfpack_report_perm.h
295 umfpack_report_status.h
296 umfpack_report_symbolic.h
297 umfpack_report_triplet.h
298 umfpack_report_vector.h
299 umfpack_save_numeric.h
300 umfpack_save_symbolic.h
301 umfpack_scale.h
302 umfpack_solve.h
303 umfpack_symbolic.h
304 umfpack_tictoc.h
305 umfpack_timer.h
306 umfpack_transpose.h
307 umfpack_triplet_to_col.h
308
309 umfpack_wsolve.h note that there is no umfpack_wsolve.c. The
310 umfpack_*_wsolve routines are created from the
311 umfpack_solve.c file.
312
313 ----------------------------------------------------------------------------
314 Demo directory:
315 ----------------------------------------------------------------------------
316
317 Makefile for GNU make or original make
318
319 umfpack_simple.c a simple demo
320 umpack_xx_demo.c template to create the demo codes below
321
322 umfpack_di_demo.sed for creating umfpack_di_demo.c
323 umfpack_dl_demo.sed for creating umfpack_dl_demo.c
324 umfpack_zi_demo.sed for creating umfpack_zi_demo.c
325 umfpack_zl_demo.sed for creating umfpack_zl_demo.c
326
327 umfpack_di_demo.c a full demo (real/int version)
328 umfpack_dl_demo.c a full demo (real/long version)
329 umfpack_zi_demo.c a full demo (complex/int version)
330 umfpack_zl_demo.c a full demo (complex/long version)
331
332 umfpack_di_demo.out umfpack_di_demo output, unmodified Make.include
333 umfpack_dl_demo.out umfpack_dl_demo output, unmodified Make.include
334 umfpack_zi_demo.out umfpack_zi_demo output, unmodified Make.include
335 umfpack_zl_demo.out umfpack_zl_demo output, unmodified Make.include
336
337 umf4.c a demo (real/int) for Harwell/Boeing matrices
338 umf4.out output of "make hb", unmodified Make.include
339 HB directory of sample Harwell/Boeing matrices
340 readhb.f reads HB matrices, keeps zero entries
341 readhb_nozeros.f reads HB matrices, removes zero entries
342 readhb_size.f reads HB matrix dimension, nnz
343 tmp empty directory for umf4.c demo
344
345 umf4_f77wrapper.c a simple FORTRAN interface for UMFPACK.
346 compile with "make fortran"
347 umf4hb.f a demo of the FORTRAN interface
348 umf4hb.out output of "make fortran"
349
350 umf4_f77zwrapper.c a simple FORTRAN interface for the complex
351 UMFPACK routines. compile with "make fortran"
352 umf4zhb.f a demo of the FORTRAN interface (complex)
353 umf4zhb.out output of umf4zhb with HB/qc324.cua
354
355 umf4hb64.f 64-bit version of umf4hb.f
356
357 simple_compile a single command that compiles the double/int
358 version of UMFPACK (useful prototype for
359 Microsoft Visual Studio project)
360
361 ----------------------------------------------------------------------------
362 MATLAB directory:
363 ----------------------------------------------------------------------------
364
365 Contents.m for "help umfpack" listing of toolbox contents
366 GNUmakefile a nice Makefile, for GNU make
367 Makefile an ugly Unix Makefile (for older make's)
368
369 lu_normest.m 1-norm estimate of A-L*U (by Hager & Davis).
370 luflop.m for "help luflop"
371 luflopmex.c luflop mexFunction, for computing LU flop count
372 umfpack.m for "help umfpack"
373 umfpack_btf.m solve Ax=b using umfpack and dmperm
374 umfpack_demo.m a full umfpack demo
375 umfpack_details.m the details of how to use umfpack
376 umfpack_make.m compile the umfpack mexFunction within MATLAB
377 umfpack_report.m report statistics
378 umfpack_simple.m a simple umfpack demo
379 umfpack_solve.m x=A\b or b/A for arbitrary b
380 umfpack_test.m extensive test, requires UF sparse matrices
381 umfpackmex.c the umfpack mexFunction
382 west0067.mat sparse matrix for umfpack_demo.m
383
384 umfpack_demo.m.out output of umfpack_demo.m
385 umfpack_simple.m.out output of umfpack_simple
386
387 lcc_lib/lapacksyms.def LAPACK definitions for lcc compiler (Windows)
388 lcc_lib/libmwlapack.lib LAPACK definitions for lcc compiler (Windows)
389
390 ----------------------------------------------------------------------------
391 Lib directory: libumfpack.a library placed here
392 ----------------------------------------------------------------------------
393
394 libumfpack.def UMPFACK definitions for Windows