January 1, 2002: UMFPACK Version 3.2 released. Submitted to ACM Trans. on Mathematical Software. * The umfpack mexFunction now returns the Info array when the matrix is singular. Returned an empty array prior to this change. * Renamed variable that conflicted with system library routines (system and j1). * Added a #ifdef MATHWORKS definition, so the built-in UMFPACK routine (in a future release of MATLAB) can use the internal ut* memory allocation routines, ut* assertion routine, and utPrintf. * MAX and MIN are not defined if they are already defined. * A bug fix in umf_kernel_init (a variable was not properly initialized). * Removed unused variables. October 8, 2001: UMFPACK Version 3.1 released. August-October, 2001: * added umfpack_btf M-file. * modified the BLAS update in the frontal matrix. If there are only a few pivots in remaining in the current front, then the BLAS3 update is delayed to include pivots in the next front. * Removed the special-case handling of dense columns from the numerical factorization (kept it in the colamd preordering). This improves the performance of UMFPACK on dense matrices by a factor of 5 or so, and simplifies the code. * Added a symmetric-preference pivoting option. The option slightly (but uniformly) improves the ordering when factorizing matrices with symmetric nonzero pattern. That class of matrix is better handled by the symmetric-pattern multifrontal method (MA41 in the Harwell Subroutine Library), however. * Fixed the detection of integer overflow. The 32-bit version cannot make use of more than 2GB of main memory (use the 64-bit version in that case, instead). The 32-bit version did not correctly detect when it was trying to factorize too large of a matrix. May 4, 2001: * SGI port extended. It can now call the SCSL Scientific Library, with 64-bit BLAS. Make.sgi and umf_config.h modified. April 30, 2001: UMFPACK Version 3.0 released. Changes since 3.0Beta release: * Long integer version added (umfpack_l_* user-callable routines). * Peak memory usage in the numerical factorization reduced by a total of 12n integers (8n temporary workspace used during numerical factorization, and 4n for the permanent LU factors which was allocated at the beginning of factorization). * Ported to the IBM RS 6000 and Compaq Alpha, with help from Anshul Gupta and Friedrich Grund, respectively. * 64-bit version added. Uses dgemm_64, dgemv_64, and dger_64 in the Sun Performance Library. 64-bit versions with the BLAS might not work on any other platform, because they take int's as their integer input arguments instead of long's. Unfortunately, the proposed ANSI definition of the C-BLAS also uses int's as input integer arguments. It ought to use long's, or include a version that uses long's, just like the Sun Performance Library BLAS. * Additional statistics returned in Info: Info [UMFPACK_SIZE_OF_INT] sizeof (int) Info [UMFPACK_SIZE_OF_LONG] sizeof (long) Info [UMFPACK_SIZE_OF_POINTER] sizeof (void *) Info [UMFPACK_SIZE_OF_ENTRY] (was Info [UMFPACK_WORD]) Info [UMFPACK_MAX_FRONT_SIZE_ESTIMATE] est. front matrix size Info [UMFPACK_MAX_FRONT_SIZE] actual max frontal matrix size. Contents of Info rearranged. * UMFPACK_ERROR_bad_configurution error code replaced with UMFPACK_ERROR_problem_too_large error code. The "bad configuration" error occured when sizeof (int) < sizeof (size_t). Now, the int version of UMFPACK can use 32-bit int's and 64-bit pointers, and the long version can use 64-bit long's and 64-bit pointers. Both versions check to see if the array sizes allocated are larger than what can be accessed by an integer index variable (int or long, depending on the version), and returns UMFPACK_ERROR_problem_too_large if they become too large. March 15, 2001: UMFPACK Version 3.0Beta released.