1 2007-08-27 Brian Gough <bjg@network-theory.co.uk>
3 * tridiag.c: use GSL_ERROR for failed allocation, signal
4 GSL_EZERODIV if matrix is not positive definite
6 2007-08-17 Brian Gough <bjg@network-theory.co.uk>
8 * svd.c (gsl_linalg_SV_decomp): bail out if number of iterations
11 2007-08-16 Brian Gough <bjg@network-theory.co.uk>
13 * test.c (main): add some svd tests with small values that will
14 cause underflow in intermediate steps of SVD iteration
16 2006-08-14 Brian Gough <bjg@network-theory.co.uk>
18 * balancemat.c: balance a general matrix D^-1 A D for rows and
21 2006-04-24 Brian Gough <bjg@network-theory.co.uk>
23 * svdstep.c apply_givens.c householder.c: perform linear
24 operations with level-1 blas when compiled with USE_BLAS.
26 2006-02-10 Brian Gough <bjg@network-theory.co.uk>
28 * cholesky.c (quiet_sqrt): added a quiet_sqrt to allow checking
29 for positive definiteness without a runtime error
31 2005-08-22 Brian Gough <bjg@network-theory.co.uk>
33 * svd.c (gsl_linalg_SV_decomp_jacobi): reorganised convergence
34 tests to increase robustness in the presence of extended precision
37 2005-06-22 Brian Gough <bjg@network-theory.co.uk>
39 * svd.c (gsl_linalg_SV_decomp_jacobi): increased number of sweeps
40 to MAX(5*N,12) and track numerical errors for better termination
42 2005-02-02 Brian Gough <bjg@network-theory.co.uk>
44 * svd.c (gsl_linalg_SV_decomp_jacobi): changed M<N test to correct
45 matrix A instead of Q.
47 2004-12-23 Brian Gough <bjg@network-theory.co.uk>
49 * qr.c (gsl_linalg_R_svx): added missing function
51 2004-09-13 Brian Gough <bjg@network-theory.co.uk>
53 * test.c: added tests for LQ, P^TLQ solvers
55 * ptlq.c: added support for PA = LQ decompositions
57 * lq.c: added support for A = LQ decompositions
59 2004-05-30 Brian Gough <bjg@network-theory.co.uk>
61 * test.c (test_LU_solve): increase test tolerance to accommodate
62 gcc-3.3.3 w/ bounds checking
64 2004-05-26 Brian Gough <bjg@network-theory.co.uk>
66 * householder.c (gsl_linalg_householder_hm):
67 (gsl_linalg_householder_mh):
68 (gsl_linalg_householder_hm1): added blas code (but ifdef'd out)
70 * test.c (test_SV_decomp_dim): skip NaNs in test
71 (test_SV_decomp_mod_dim): skip NaNs in test
73 2004-04-26 Brian Gough <bjg@network-theory.co.uk>
75 * test.c (test_TDN_solve): increased tolerance for tests
76 (test_TDN_cyc_solve): increased tolerance for tests
78 2004-03-15 Brian Gough <bjg@network-theory.co.uk>
80 * tridiag.c: (gsl_linalg_solve_symm_tridiag):
81 (gsl_linalg_solve_tridiag):
82 (gsl_linalg_solve_symm_cyc_tridiag):
83 (gsl_linalg_solve_cyc_tridiag): use GSL_ERROR macro to report
84 errors, make size restrictions tighter (no unused elements allowed
87 2004-03-06 Brian Gough <bjg@network-theory.co.uk>
89 * test.c (test_SV_decomp_mod_dim): added tests for SV_decomp_mod
91 * svd.c (gsl_linalg_SV_decomp): handle the case N=1 (SVD of a
93 (gsl_linalg_SV_decomp_mod): handle the case N=1 (SVD of a column
96 2004-03-05 Brian Gough <bjg@network-theory.co.uk>
98 * test.c (test_SV_decomp): add tests with inf/nan
100 * svd.c (gsl_linalg_SV_decomp): handle nans in block reduction
102 * balance.c: handle infinity/nan when scaling input matrix
104 2003-07-24 Brian Gough <bjg@network-theory.co.uk>
106 * tridiag.c (solve_cyc_tridiag_nonsym): fixed declarations of i so
107 they do not shadow each other
109 2003-05-30 Brian Gough <bjg@network-theory.co.uk>
111 * householder.c (gsl_linalg_householder_hv): converted to use blas
114 2003-05-08 Brian Gough <bjg@network-theory.co.uk>
116 * test.c: added tests for QR_QRsolve and QRPT_QRsolve
118 * qrpt.c (gsl_linalg_QRPT_QRsolve): fixed dgemv to use CblasTrans
121 * qr.c (gsl_linalg_QR_QRsolve): fixed dgemv to use CblasTrans when
124 Fri Oct 18 17:46:30 2002 Brian Gough <bjg@network-theory.co.uk>
126 * householdercomplex.c (gsl_linalg_complex_householder_transform):
127 return tau = 0 to prevent division by zero for beta_r = 0
129 Mon Aug 12 20:12:55 2002 Brian Gough <bjg@network-theory.co.uk>
131 * bidiag.c (gsl_linalg_bidiag_unpack_B): fixed to copy
132 superdiagonal and not subdiagonal, as was incorrectly done
135 Sun Jun 16 11:57:00 2002 Brian Gough <bjg@network-theory.co.uk>
137 * svd.c (gsl_linalg_SV_decomp): keep track of maximum value
138 correctly when sorting singular values
140 * test.c (test_SV_decomp): add 3x3 of SVD
142 * svdstep.c (chase_out_intermediate_zero): handle case of dk=0
143 (chase_out_trailing_zero): handle case of dn=0
145 Wed Apr 17 20:04:11 2002 Brian Gough <bjg@network-theory.co.uk>
147 * tridiag.c (gsl_linalg_solve_tridiag):
148 (gsl_linalg_solve_cyc_tridiag): added tridiagonal solvers for
149 non-symmetric case (David Necas <yeti@physics.muni.cz>)
151 Mon Apr 15 19:55:40 2002 Brian Gough <bjg@network-theory.co.uk>
153 * tridiag.c (solve_cyc_tridiag): corrected typographical error in
154 Engeln-Mullges Algorithm 4.35, step 1.7 (f_(n-1) should be
157 Thu Sep 13 12:26:17 2001 Brian Gough <bjg@network-theory.co.uk>
159 * test.c (test_SV_decomp): added brute force testing of 2x2 svd
161 * svdstep.c (svd2): fixed bug where singular values in 2x2 svd
162 were not ordered correctly.
164 Mon Sep 10 22:35:24 2001 Brian Gough <bjg@network-theory.co.uk>
166 * test.c (test_LUc_solve): added a test for complex LU
168 Tue Sep 4 17:22:58 2001 Brian Gough <bjg@network-theory.co.uk>
170 * luc.c: added LU decomposition for complex matrices
172 Wed Aug 29 16:34:50 2001 Brian Gough <bjg@network-theory.co.uk>
174 * svd.c (gsl_linalg_SV_decomp_jacobi): make sure all singular
175 vectors are zero, not just first.
177 * svdstep.c (svd2): added explicit calculation of 2x2 svd, fixes
178 bug that prevents convergence.
180 Thu Aug 2 18:19:08 2001 Brian Gough <bjg@network-theory.co.uk>
182 * svdstep.c (trailing_eigenvalue): chose better value of mu when
185 Sun Jul 8 18:03:05 2001 Brian Gough <bjg@network-theory.co.uk>
187 * qrpt.c (gsl_linalg_QRPT_decomp): fix bug where null column
188 caused division by zero in norm-update calculation
190 Sun Jul 1 22:43:22 2001 Brian Gough <bjg@network-theory.co.uk>
192 * modified to use new-style vector views, affects most
195 Wed Jun 20 13:38:24 2001 Brian Gough <bjg@network-theory.co.uk>
197 * svd.c (gsl_linalg_SV_decomp): added error checking
199 Tue Jun 19 23:19:49 2001 Brian Gough <bjg@network-theory.co.uk>
201 * svd.c (gsl_linalg_SV_decomp): Golub-Reinsch svd, has more
202 deterministic convergence
203 (gsl_linalg_SV_decomp_mod): Golub-Reinsch with
204 Preconditioning, much more efficient for M>>N
206 * balance.c (gsl_linalg_balance_columns): balances (or
207 "equilibrates") the columns of a matrix
209 Sun Jun 17 21:49:03 2001 Brian Gough <bjg@network-theory.co.uk>
211 * givens.c: split out apply_givens functions into separate file
214 Wed Jun 13 23:41:34 2001 Brian Gough <bjg@network-theory.co.uk>
216 * qr.c (gsl_linalg_QR_decomp): simplified reverse loop
218 * bidiag.c: bidiagonalisation of a matrix (needed for
221 Wed Jun 6 12:36:58 2001 Brian Gough <bjg@network-theory.co.uk>
223 * householdercomplex.c: split out complex functions into a
224 separate file to reduce linking dependencies
226 * qrpt.c (gsl_linalg_QRPT_decomp): provide workspace as an
227 argument, to avoid allocating it on each call
228 (gsl_linalg_QRPT_decomp2): provide workspace as an argument, to
229 avoid allocating it on each call
231 * qr.c (gsl_linalg_QR_decomp): provide workspace as an argument,
232 to avoid allocating it on each call
234 Thu May 17 17:01:45 2001 Brian Gough <bjg@network-theory.co.uk>
236 * qr.c (gsl_linalg_QR_lssolve): added least squares solver
238 Sat Apr 28 00:39:53 2001 Brian Gough <bjg@network-theory.co.uk>
240 * qr.c (gsl_linalg_QR_update): fixed QR update to work correctly
241 with rectangular matrices where M > N
243 Mon Apr 23 10:29:01 2001 Brian Gough <bjg@network-theory.co.uk>
245 * tridiag.c: removed EFAULT test since this should only apply to
246 non-null invalid pointers
248 Fri Apr 13 20:43:38 2001 Brian Gough <bjg@network-theory.co.uk>
250 * test.c: replaced uses of matmult by dgemm
252 Sun Oct 22 13:56:30 2000 Brian Gough <bjg@network-theory.co.uk>
254 * householder.c (gsl_linalg_householder_transform): changed calls
255 to gsl_hypot() to hypot() so that the system function is used in
256 preference (the configure script will define hypot to gsl_hypot if
257 hypot is unavailable)
259 * svd.c (gsl_linalg_SV_decomp): changed calls to gsl_hypot() to
262 Sat Oct 21 15:54:56 2000 Brian Gough <bjg@network-theory.co.uk>
264 * tridiag.c (solve_tridiag): prevent out-of-bounds array access
265 for small N (attempt to access element[N-2] when N is 1).
267 Tue Sep 19 21:42:13 2000 Brian Gough <bjg@network-theory.co.uk>
269 * qrpt.c (gsl_linalg_QRPT_decomp2): added convenience function to
270 compute q,r unpacked decomposition directly
272 Wed Aug 16 19:50:35 2000 Brian Gough <bjg@network-theory.co.uk>
274 * svd.c (gsl_linalg_SV_decomp): take more care with singular
275 values, set the associated vectors to zero
277 Sun Aug 13 16:39:40 2000 Brian Gough <bjg@network-theory.co.uk>
279 * qrpt.c (gsl_linalg_QRPT_decomp): fixed obvious bug in selection
280 of column with max norm
282 Wed May 31 19:42:59 2000 Brian Gough <bjg@network-theory.co.uk>
284 * test.c (test_QR_update): increased tolerances on results to
285 allow tests to pass with other compilers
287 Wed May 3 21:19:45 2000 Brian Gough <bjg@network-theory.co.uk>
289 * cholesky.c: added cholesky decomposition/solve from Thomas
290 Walter. Modified for GSL.
292 Fri Apr 28 17:13:00 2000 Brian Gough <bjg@network-theory.co.uk>
294 * renamed all matrices to use upper case variable names, e.g. A
296 Thu Apr 27 20:31:46 2000 Brian Gough <bjg@network-theory.co.uk>
298 * test.c: tightened up accuracy of the decomp test
300 * test_la.c: renamed to test.c for consistency
301 (test_QR_decomp): added the "moler" matrix as a test for SVD
303 * svd.c (gsl_linalg_SV_decomp): improved the convergence criterion
304 for rank deficient case.
306 Wed Apr 26 19:37:46 2000 Brian Gough <bjg@network-theory.co.uk>
308 * renamed rhs -> b, and solution -> x throughout for consistency
310 Mon Apr 24 17:04:52 2000 Brian Gough <bjg@network-theory.co.uk>
312 * test_la.c (main): added tests for MxN matrices
314 * test_la.c (main): added tests for SV decomposition and solve.
316 * svd.c (gsl_linalg_SV_decomp): made use of vector row/column
317 functions, tidied up the algorithm a bit. Use a standard tolerance
318 of 10*GSL_DBL_EPSILON.
319 (gsl_linalg_SV_solve): added a least squares solver
321 Sun Apr 23 21:18:04 2000 Brian Gough <bjg@network-theory.co.uk>
323 * gsl_linalg.h, svd.c (gsl_linalg_SV_decomp): changed function
324 name to new naming convention
326 * qr.c (gsl_linalg_QR_unpack): fixed index ranges for rectangular
327 case when unpacking R
329 Sat Apr 22 15:05:21 2000 Brian Gough <bjg@network-theory.co.uk>
331 * matrix.c: removed, equivalent functions now in matrix directory
333 Sat Mar 11 17:36:33 2000 Brian Gough <bjg@network-theory.co.uk>
335 * multiply.c: removed _impl from these functions since all the
336 errors they can return are fatal.
338 Wed Feb 16 12:03:00 2000 Brian Gough <bjg@network-theory.co.uk>
340 * multiply.c (gsl_la_matmult_mod_impl): fixed error in transposed
341 matrix memory access, expressions should always be of the form
342 M->data[i*M->size2 + j] even when i,j are transposed.
344 Safer to replace matrix access by gsl_matrix_set and
345 gsl_matrix_get, which is what I have done now. Shouldn't be any
346 cost in the production version of the library where we have
347 inlines and range checking off.
349 Tue Feb 15 17:46:19 2000 Brian Gough <bjg@network-theory.co.uk>
351 * tridiag.h (solve_cyc_tridiag): fixed typo in header, was
352 solve_cyctridiag, missing _.
354 * converted all functions to use gsl_permutation instead of
357 Fri Oct 1 15:51:02 1999 Brian Gough <bjg@network-theory.co.uk>
359 * temporary changes resulting from changes to block/vector/matrix
362 Fri Aug 6 14:42:23 1999 Brian Gough <bjg@network-theory.co.uk>
364 * linalg_simple.c: include <string.h> to declare memcpy