2006-08-14 Brian Gough * balancemat.c: balance a general matrix D^-1 A D for rows and columns 2006-04-24 Brian Gough * svdstep.c apply_givens.c householder.c: perform linear operations with level-1 blas when compiled with USE_BLAS. 2006-02-10 Brian Gough * cholesky.c (quiet_sqrt): added a quiet_sqrt to allow checking for positive definiteness without a runtime error 2005-08-22 Brian Gough * 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 * 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 * svd.c (gsl_linalg_SV_decomp_jacobi): changed M * qr.c (gsl_linalg_R_svx): added missing function 2004-09-13 Brian Gough * 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 * test.c (test_LU_solve): increase test tolerance to accommodate gcc-3.3.3 w/ bounds checking 2004-05-26 Brian Gough * 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 * test.c (test_TDN_solve): increased tolerance for tests (test_TDN_cyc_solve): increased tolerance for tests 2004-03-15 Brian Gough * 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 * 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 * 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 * tridiag.c (solve_cyc_tridiag_nonsym): fixed declarations of i so they do not shadow each other 2003-05-30 Brian Gough * householder.c (gsl_linalg_householder_hv): converted to use blas routines 2003-05-08 Brian Gough * 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 * 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 * 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 * 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 * tridiag.c (gsl_linalg_solve_tridiag): (gsl_linalg_solve_cyc_tridiag): added tridiagonal solvers for non-symmetric case (David Necas ) Mon Apr 15 19:55:40 2002 Brian Gough * 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 * 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 * test.c (test_LUc_solve): added a test for complex LU Tue Sep 4 17:22:58 2001 Brian Gough * luc.c: added LU decomposition for complex matrices Wed Aug 29 16:34:50 2001 Brian Gough * 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 * svdstep.c (trailing_eigenvalue): chose better value of mu when dt=0. Sun Jul 8 18:03:05 2001 Brian Gough * 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 * modified to use new-style vector views, affects most functions Wed Jun 20 13:38:24 2001 Brian Gough * svd.c (gsl_linalg_SV_decomp): added error checking Tue Jun 19 23:19:49 2001 Brian Gough * 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 * givens.c: split out apply_givens functions into separate file apply_givens.c Wed Jun 13 23:41:34 2001 Brian Gough * 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 * 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 * qr.c (gsl_linalg_QR_lssolve): added least squares solver Sat Apr 28 00:39:53 2001 Brian Gough * 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 * tridiag.c: removed EFAULT test since this should only apply to non-null invalid pointers Fri Apr 13 20:43:38 2001 Brian Gough * test.c: replaced uses of matmult by dgemm Sun Oct 22 13:56:30 2000 Brian Gough * 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 * 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 * 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 * 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 * 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 * 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 * cholesky.c: added cholesky decomposition/solve from Thomas Walter. Modified for GSL. Fri Apr 28 17:13:00 2000 Brian Gough * renamed all matrices to use upper case variable names, e.g. A Thu Apr 27 20:31:46 2000 Brian Gough * 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 * renamed rhs -> b, and solution -> x throughout for consistency Mon Apr 24 17:04:52 2000 Brian Gough * 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 * 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 * matrix.c: removed, equivalent functions now in matrix directory Sat Mar 11 17:36:33 2000 Brian Gough * 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 * 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 * 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 * temporary changes resulting from changes to block/vector/matrix organization Fri Aug 6 14:42:23 1999 Brian Gough * linalg_simple.c: include to declare memcpy