# Iterative Methods for Sparse Linear Systems Svn Source Tree

Source at commit HEAD created 2 years 6 months ago.
By baudin, Shortened messages printed at startup. (These verbose messages make the startup confusing when dozens of modules are loaded.)
1Scilab Iterative Methods for Sparse Linear Equations Toolbox
2
3Purpose
4-------
5
6Imsls provides iterative methods for sparse linear systems of equations.
7More precisely, it provides functions to find x such that A*x=b,
8where A is a n-by-n matrix of doubles and b is a n-by-1
9matrix of doubles.
10Although these functions can manage full matrices, it is mainly
11designed for sparse matrices.
12
13This module is mainly a Scilab port of the Matlab scripts provided
14on netlib.org/templates.
15
16One of the interesting point here is that the matrix-vector products
17or the preconditionning steps M\x can be performed either with full or sparse
18matrices, or with callback functions.
19This flexibility makes the module convenient to use in situations when
20the sparse matrices are not stored in memory, since only the matrix-vector
21product (or the preconditionning step M\x) is required.
22
23Moreover, we provide Matlab-compatible pcg and qmr solvers:
24 * the order of the arguments are the same as in Matlab,
25 * the default values of the Matlab functions are the same as in Matlab,
26 * the headers of the callback functions are the same as in Matlab.
27This contrasts with Scilab's internal functions, where the two last points are
28completely unsatisfied.
29
30Finally, we provide a complete test suite for these functions, which
31are using robust argument checking.
32
33Features
34--------
35
36 * imsls_bicg: BIConjugate Gradient method
37 * imsls_bicgstab: BIConjugate Gradient STABilized method
38 * imsls_pcg: Conjugate Gradient method
39 * imsls_cgs: Conjugate Gradient Squared method
40 * imsls_cheby: CHEBYshev method
41 * imsls_gmres: Generalized Minimal RESidual method
42 * imsls_jacobi: JACOBI method
43 * imsls_qmr: Quasi Minimal Residual method
44 * imsls_sor: Successive Over-Relaxation method
45
46Support:
47 * imsls_benchmatrix : Test a matrix against all solvers.
48 * imsls_getpath : Returns the path to the current module.
49 * imsls_lehmer : Returns the Lehmer matrix.
50 * imsls_makefish : Returns the Poisson matrix.
51 * imsls_matgen : Returns a test matrix.
52 * imsls_nonsym : Returns a non symetric matrix.
53 * imsls_spdiags : Extract and create sparse band and diagonal matrices
54 * imsls_split : Sets up the matrix splitting for Jacobi and SOR.
55 * imsls_tester : Test all algorithms
56 * imsls_wathen : Generates a random finite element matrix.
57
58Compatibility
59 * mtlb_bicg : Solves linear equations using BiConjugate Gradient Method with preconditioning.
60 * mtlb_bicgstab : Solves linear equations using BiConjugate Gradient Stabilized Method with preconditioning.
61 * mtlb_cgs : Solves linear equations using Conjugate Gradient Squared Method with preconditioning.
62 * mtlb_gmres : Solves linear equations using Generalized Minimal residual with restarts .
63 * mtlb_pcg : Solves linear equations using Conjugate Gradient method with preconditioning.
64 * mtlb_qmr : Solves linear equations using Quasi Minimal Residual method with preconditioning.
65
66Dependencies
67------------
68
69 * This module depends on the helptbx module (to build the help pages).
70 * This module depends on the apifun module, v0.2.
71 * This module depends on the assert module.
72
73
74History
75-------
76
77In 1993, the Book "Templates for the Solution of Linear Systems: Building Blocks for Iterative Methods"
78was published.
79Associated source codes in the Matlab language were provided at http://www.netlib.org/templates/.
80
81From 2000 to 2006, these function have been ported to Scilab 4 by Aladin Group (IRISA-INRIA).
82
83Starting in 2010, Michael Baudin upgraded this module to Scilab 5.
84I updated the management of the input arguments, the arguments checking and the
85management of the callbacks (for the matrix-vector product <literal>A*x</literal> and
86the preconditionning <literal>M\x</literal>).
87The argument management is now based on apifun, which greatly improves the robustness and
88simplifies the writing of the functions.
89I described the input arguments more precisely in the help pages, added examples and created unit tests
90(based on the assert module).
91I added the right preconditionner M2 for all functions.
92I created the Matlab compatibility functions.
93
94TODO
95----
96
97Extra-TODOS:
98 * Create a Scilab port of LSQR: http://www.stanford.edu/group/SOL/software/lsqr.html
99
100
101
102Licence
103-------
104
105This toolbox is released under the terms of the CeCILL license :
106http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
107
108Authors
109-------
110
111 * 1993 - Richard Barrett, Michael Berry, Tony F. Chan, James Demmel, June M. Donato, Jack Dongarra, Victor Eijkhout, Roldan Pozo, Charles Romine, and Henk Van der Vorst
112 * 1993 - Univ. of Tennessee and Oak Ridge National Laboratory
113 * 2000 - 2001 - INRIA - Aladin Group
114 * 2010 - 2011 - DIGITEO - Michael Baudin
115
116Bibliography
117------------
118