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 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443
|
2010-02-24 Brian Gough <bjg@network-theory.co.uk>
* svdstep.c (trailing_eigenvalue): compute the implicit shift
value mu robustly
* svd.c (gsl_linalg_SV_decomp): scale the bidiagonal matrix before
the implicit QR step
* householder.c (gsl_linalg_householder_transform): handle the
case where the scaling factor is subnormal
2009-07-04 Brian Gough <bjg@network-theory.co.uk>
* luc.c (gsl_linalg_complex_LU_solve, gsl_linalg_complex_LU_svx,
gsl_linalg_complex_LU_refine, singular): added check
for singular matrix
2009-06-28 Brian Gough <bjg@network-theory.co.uk>
* lu.c (gsl_linalg_LU_solve, gsl_linalg_LU_svx,
gsl_linalg_LU_refine, gsl_linalg_LU_invert, singular): added check
for singular matrix
2009-06-04 Brian Gough <bjg@network-theory.co.uk>
* hermtd.c (gsl_linalg_hermtd_unpack): use U as matrix name
instead of Q
2008-10-20 Brian Gough <bjg@network-theory.co.uk>
* svd.c (gsl_linalg_SV_decomp_jacobi): change use of
gsl_coerce_double to macro so it is not called unnecessarily
2008-08-30 Brian Gough <bjg@network-theory.co.uk>
* tridiag.c (solve_cyc_tridiag_nonsym): use x_stride when storing
in x[] (fixes bug #24162)
2008-08-26 Brian Gough <bjg@network-theory.co.uk>
* test.c (test_QRPT_update_dim): added tests for
gsl_linalg_QRPT_update
* qrpt.c (gsl_linalg_QRPT_update): handle rectangular matrices
2008-07-03 Brian Gough <bjg@hp2.network-theory.co.uk>
* Makefile.am (INCLUDES): use top_srcdir instead of top_builddir
2008-04-28 Brian Gough <bjg@network-theory.co.uk>
* bidiag.c (gsl_linalg_bidiag_unpack, gsl_linalg_bidiag_unpack2):
use new descending loop convention
* hermtd.c (gsl_linalg_hermtd_unpack): use new descending loop
convention
* hh.c (gsl_linalg_HH_svx): use new descending loop convention
* lq.c (gsl_linalg_LQ_vecQ, gsl_linalg_LQ_unpack): use new
descending loop convention
* qr.c (gsl_linalg_QR_Qvec, gsl_linalg_QR_unpack): use new
descending loop convention
* svd.c (gsl_linalg_SV_decomp_mod): use new descending loop
convention
* svdstep.c (chase_out_trailing_zero): use new descending loop
convention
* symmtd.c (gsl_linalg_symmtd_unpack): use new descending loop
convention
2008-04-03 Brian Gough <bjg@network-theory.co.uk>
* qr.c lq.c: removed unused definition of REAL
2007-08-27 Brian Gough <bjg@network-theory.co.uk>
* tridiag.c: use GSL_ERROR for failed allocation, signal
GSL_EZERODIV if matrix is not positive definite
2007-08-17 Brian Gough <bjg@network-theory.co.uk>
* svd.c (gsl_linalg_SV_decomp): bail out if number of iterations
exceeds 100*N
2007-08-16 Brian Gough <bjg@network-theory.co.uk>
* test.c (main): add some svd tests with small values that will
cause underflow in intermediate steps of SVD iteration
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
|