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

