1. SuperLU 3.0 (released October 15, 2003)
- Added "options" input argument for the driver routines. This structure
contains all the parameter settings.
You can call the routine set_default_options()
to set the default values.
- Added "stat" output argument for the driver routines. This structure
contains all the statistics collected at run-time.
- The driver routines xGSSV/xGSSVX have new interfaces reflecting the
above changes.
See an example EXAMPLE/dlinsol.c
- Added more examples in EXAMPLE/ directory. See README in that directory.
- Added a "symmetric mode" which gives better performance when the
matrix is or diagonally heavy, or symmetric and/or positive definite,
or nearly so. In this mode, the algorithm attempts to select pivots
on the diagonal.
See an example in EXAMPLE/dlinsol1.c
- Better Fortran interface. See FORTRAN/ directory, and README in
that directory.
- 06/14/05 :
  fixed a bug in the complex drivers sgssvx/zgssvx when
the input matrix is stored in compressed row format.
- 08/01/05 :
- Prefixed the header files by "slu_".
- Fixed a memory leak in get_perm_c() when bnz=0.
- Changed "abs" to "fabs" in izmax1.
- Upgraded COLAMD to the latest version (2.3).
- 01/02/06 :
- Changed the argument of SUPERLU_MALLOC from "int" to "size_t".
Otherwise the computation of the argument to SUPERLU_MALLOC
may cause 32-bit integer overflow.
- In TESTING/[cdsz]drive.c, moved the forward declaration of the
prototype to the top of the file before main().
- Used standard name for library archive: libsuperlu_3.0.a.
2. SuperLU 3.1 (released August 1, 2008)
- Remove recursive DFS for postordering elimination tree in
sp_coletree.c
(The nonrecursive routine nr_etdfs() was contributed by Cedric Doucet, CEDRAT Group, Meylan, France.)
- Make supermatrix.h the same for all three libraries
- Include an on-line HTML documentation for the source code
- Bug fixes:
- corrected backward error BERR formula when a component of the
RHS and the residual are exactly zero
- change parameter "delta" to genmmd() from 1 to 0 in get_perm_c
- remove "static" declaration in EXAMPLE/xlinsolx*.c
3. SuperLU 4.0 (released June 30, 2009)
- Include threshold-based incomplete factorization (ILU)
- Removed the static global variables so that it is thread-safe.
4. SuperLU 4.1 (released November 25, 2010)
- Make superlu_options_t{} structure and enum constants the same for
both superlu & superlu_dist.
- Replace qsort by "quick select" (qselect) in ILU's secondary dropping.
- Replace mc64ad.f by mc64ad.c using f2c.
- Bug fixes, including:
- ilu_sdrop_row.c.
- xgsisx.c, so that when mc64 permutation is used in ILU,
the right-hand side is permuted properly.
- Add parameter #7 in sp_ienv(), setting as the maxsuper for
ILU code (smaller than parameter #3).
- Update Users Guide.
- Update doxygen code documentation.
5. SuperLU 4.2 (released August 25, 2011)
- Fix a bug in ILU driver routine dgsisx.c, so that on return, the
initial row permutation is combined with perm_r[] from partial pivoting.
- Modify 2 ILU examples: EXAMPLE/ditersol.c, EXAMPLE/ditersol1.c
- Update superlu_timer.c
- 09/10/07 :
- Included support for complex data types.
(now has four types: single and double precision / real and complex.)
- Included OpenMP, in addition to POSIX threads.
- Removed an explicit recursion in a subroutine, which often causes
stack overflow for large problems.
- A number of bug fixes.
- 01/15/08 :
- enable detailed profiling by compiling with -DPROFILE.
- a number of bug fixes.
- 03/15/03 :
  Included the distributed input interface
- The driver routine for the distributed interface is pdgssvx()
- The driver routine for the global interface is pdgssvx_ABglobal()
- 02/23/05 :   Improved the time of the redistribution routines.
- 08/01/05 :
- In pdgsrfs_ABXglobal.c / pzgsrfs_ABXglobal.c, put the "static"
function prototypes at file scope.
- Fixed a memory leak in get_perm_c() when bnz=0.
- Fixed a memory leak in superlu_grid.c:
added a call MPI_Group_free( &superlu_grp ).
- Removed COLAMD ordering option.
- 01/02/06:
- Added prototypes to the BLAS routines, in superlu_ddefs.h/superlu_zdefs.h.
- CBLAS/ directory: made a symbolic link Cnames.h -> ../SRC/Cnames.h
- Fixed memory leaks related to MPI, in supelu_grid.c
- added MPI_Group_free(&mpi_base_group);
- added MPI_Type_free( &SuperLU_MPI_DOUBLE_COMPLEX );
- Added "slamch" in Cnames.h.
- Use standard name for library archive: libsuperlu_dist_2.0.a.
- Restricted the length of Fortran names (in FORTRAN/ directory)
not exceeding 31 characters.
2. SuperLU_DIST 2.1 (released November 1, 2007)
- 11/01/07 :
- Included parallel symbolic factorization, which depends on the
ParMeTiS parallel ordering code.
To use this, you need to set one field in the "options" structure as:
- options.ParSymbFact = YES;
- Corrected backward error BERR formula when a component of the RHS
and the residual are exactly zero.
- Made "supermatrix.h" identical for serial SuperLU, SuperLU_MT,
and SuperLU_DIST.
- Fixed a memory leak of the equilibration factors R/C, when Equil
and SamePattern_SameRowPerm are set at the same time.
3. SuperLU_DIST 2.2 (released February 20, 2008)
- 02/20/08 :
- Fixed a number of memory leaks and other bugs related to parallel
symbolic factorization.
- Updated files in SRC/ directory:
- superlu_defs.h
- psymbfact.c
- get_perm_c_parmetis.c
- pdgssvx.c, pzgssvx.c
- pdsymbfact_distdata.c, pzsymbfact_distdata.c
4. SuperLU_DIST 2.3 (October 15, 2008)
- Improved panel factorization: 20-25% faster overall.
- Improved triangular solve: 60-80% faster.
- Updated the Cnames.h with BLAS name mangling [UPCASE].
- Included an on-line HTML documentation for the source code.
- Fixed a few bugs.
- No change of calling sequences.
- Fixed a few bugs related to 64-bit long long int. (04/04/10)
5. SuperLU_DIST 2.4 (June 9, 2010)
- Updated several headers which are used by a new hybrid solver.
- No change of calling sequences.
6. SuperLU_DIST 2.5 (November 25, 2010)
- Make superlu_options_t{} structure and enum constants the same for
both superlu & superlu_dist.
- Update several header files which are needed by a new hybrid solver
PDSLin: superlu_defs.h, superlu_ddefs.h.
- Replace mc64ad.f by mc64ad.c using f2c.
- Update Fortran90 interface to handle 64-bit integers properly.
- Update Users Guide.
- Update doxygen code documentation.
7. SuperLU_DIST 3.0 (October 18, 2011)
- Use better task scheduling strategy for LU factorization,
which resulted in 2-3x faster than V2.5, especially when using
large number of processors.
- Fixed a bug with METIS(A'+A), when the input A is diagonal matrix.
- Add a few options in options_t {...} structure.
- Rename enum constants SINGLE, DOUBLE, EXTRA to SLU_SINGLE,
SLU_DOUBLE, SLU_EXTRA, to avoid name clash in Windows.
- Update Users Guide.
- Update doxygen code documentation.
7. SuperLU_DIST 3.1 (May 20, 2012)
- Update (par)metis interface to be compatible with new 64-bit ParMetis 4.0.2.
- Fix a bug in the factorization routine when using 64-bit integer.