2007-01-26  Brian Gough  <bjg@network-theory.co.uk>

	* fsolver.c (gsl_multifit_fsolver_set): made vector argument x
	const

2006-03-30  Brian Gough  <bjg@network-theory.co.uk>

	* fsolver.c (gsl_multifit_fsolver_alloc): minpack algorithms
	require n>=p, added check

	* fdfsolver.c (gsl_multifit_fdfsolver_alloc): minpack algorithms
	require n>=p, added check

2006-02-20  Brian Gough  <bjg@network-theory.co.uk>

	* multilinear.c (gsl_multifit_linear_est): added linear estimator

	* test_estimator.c (test_estimator): added test for gsl_multifit_linear_est

2005-07-03  Brian Gough  <bjg@network-theory.co.uk>

	* multilinear.c (gsl_multifit_linear_svd): accept a user-specified
	tolerance for the SVD cutoff and return effective rank
	(gsl_multifit_wlinear_svd): same

2004-12-23  Brian Gough  <bjg@network-theory.co.uk>

	* gsl_multifit_nlin.h: removed unused declaration of 
	gsl_multifit_fdjacobian

2004-06-14  Brian Gough  <bjg@network-theory.co.uk>

	* lmiterate.c (iterate): handle case where fnorm = 0 to avoid
	division by zero

	* covar.c (gsl_multifit_covar): change tolerance test to match
	original code, and handle case where tolr = 0

2003-03-21  Brian Gough  <bjg@network-theory.co.uk>

	* lmset.c (set): removed reference to q, compute QR decomposition
	in place

	* lmiterate.c (iterate): removed reference to q, compute QR
	decomposition in-place for R

	* lmutil.c: removed compute_qtf

	* lmder.c (lmder_free): removed reference to q
	(lmder_alloc): removed reference to q

Tue Nov 12 22:18:14 2002  Brian Gough  <bjg@network-theory.co.uk>

	* lmder.c (lmder_alloc): use GSL_ERROR instead of GSL_ERROR_VAL
 	for internal alloc functions which return int

Thu Feb 28 20:15:33 2002  Brian Gough  <bjg@network-theory.co.uk>

	* lmiterate.c (iterate): return immediately if evaluation raised
 	error (Hans E. Plesser)

	* lmpar.c (lmpar): avoid division by zero for w=0 in rank
 	deficient case

Mon Oct  8 19:25:55 2001  Brian Gough  <bjg@network-theory.co.uk>

	* test.c (main): added extra nist tests

	* lmutil.c (compute_rptdx): fixed bug, permutation in rptdx vector
 	 was incorrectly applied

	* lmpar.c (compute_newton_direction): fixed bug, permutation of
 	newton direction vector was incorrect (should have been inverse
 	permutation)

Mon Jul 30 17:43:21 2001  Brian Gough  <bjg@network-theory.co.uk>

	* test_filip.c (test_filip): reduce tolerance on covariance test
 	slightly for MSVC with /O2

Sun Jul  1 22:42:34 2001  Brian Gough  <bjg@network-theory.co.uk>

	* multilinear.c:  modified to use new-style vector views

	* test_pontius.c:  modified to use new-style vector views

	* test_longley.c:  modified to use new-style vector views

	* test_fn.c:  modified to use new-style vector views

	* test_filip.c:  modified to use new-style vector views

Tue Jun 26 21:41:30 2001  Brian Gough  <bjg@network-theory.co.uk>

	* test_filip.c (test_filip): reduce tolerance on covariance test
 	slightly

Wed Jun 20 13:11:26 2001  Brian Gough  <bjg@network-theory.co.uk>

	* removed unused variable work2

Tue Jun 19 23:18:01 2001  Brian Gough  <bjg@network-theory.co.uk>

	* multilinear.c: perform column scaling before doing fit to
 	improve accuracy
	(gsl_multifit_linear): use modified Golub-Reinsch SVD for greater
 	speed
	(gsl_multifit_wlinear): use modified Golub-Reinsch SVD for greater
 	speed

Wed Jun  6 13:32:22 2001  Brian Gough  <bjg@network-theory.co.uk>

	* lmder.c covar.c lmiterate.c lmset.c: updated to use new QR
 	calling convention (now passes workspace)

Sat Apr 28 11:46:59 2001  Brian Gough  <bjg@network-theory.co.uk>

	* qrsolv.c (qrsolv): removed local declaration of j to avoid
 	shadowing global j

Mon Apr 23 13:40:04 2001  Brian Gough  <bjg@network-theory.co.uk>

	* qrsolv.c (qrsolv): made function static so it is not exported

Wed Apr 18 13:39:33 2001  Brian Gough  <bjg@network-theory.co.uk>

	* lmpar.c (compute_newton_direction): moved final rescaling inside
 	loop, as in the original lmpar.f

Thu Mar  8 15:29:32 2001  Brian Gough  <bjg@network-theory.co.uk>

	* lmpar.c (compute_newton_direction): corrected bug that produced
 	negative index

Sun Feb 18 16:39:46 2001  Brian Gough  <bjg@network-theory.co.uk>

	* fdfsolver.c (gsl_multifit_fdfsolver_alloc): changed so that the
 	solver _alloc function no longer calls _set, the user must do that
 	separately.

Fri Sep 29 19:19:24 2000  Brian Gough  <bjg@network-theory.co.uk>

	* Makefile.am multifit/demo.c: removed demo from Makefile since it
 	is was just a temporary test.

