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