summaryrefslogtreecommitdiff
path: root/gsl-1.9/linalg/ChangeLog
blob: f454b25a80ba73bb218db928ec122d00deac121b (plain)
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