2003-01-12  Brian Gough  <brian.gough@network-theory.co.uk>

	* qawc.c (gsl_integration_qawc): fixed bisection condition to
	prevent singularity falling on interval boundary

Mon Apr 29 20:05:56 2002  Brian Gough  <bjg@network-theory.co.uk>

	* qcheb.c (gsl_integration_qcheb): avoid loss of precision by
 	replacing endpoints center+half_length by b and center-half_length
 	by a

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

	* test.c (main): reduced tolerance on qagiu(f455) smooth elist
 	test slightly

Mon Jul  2 15:42:41 2001  Brian Gough  <bjg@network-theory.co.uk>

	* util.c: split out some static functions into separate files

Tue Apr 17 22:11:28 2001  Brian Gough  <bjg@network-theory.co.uk>

	* qc25f.c (qc25f): need GSL_ERROR_VOID because function does not
 	return value

Mon Apr 16 20:09:09 2001  Brian Gough  <bjg@network-theory.co.uk>

	* qc25f.c (qc25f): removed unnecessary variables, replaced use of
 	abort by GSL_ERROR

	* qmomof.c (gsl_integration_qawo_table_set_length): removed
 	unnecessary duplicate variable declaration for i

Mon Jan 22 12:35:05 2001  Brian Gough  <bjg@network-theory.co.uk>

	* qmomof.c: moments are now precomputed in a read-only table
 	instead of being computed on the fly (cached)

Fri Dec  8 19:45:52 2000  Brian Gough  <bjg@network-theory.co.uk>

	* reorganized, made internal functions static

Thu Nov 16 19:45:19 2000  Brian Gough  <bjg@network-theory.co.uk>

	* qag_impl.c (gsl_integration_qag_impl): replace use of volatile
 	with the macro GSL_COERCE_DBL

Wed May 31 19:35:57 2000  Brian Gough  <bjg@network-theory.co.uk>

	* test.c (main): increased tolerances on some results to allow
 	tests to pass with other compilers

Mon May 15 14:21:00 2000  Brian Gough  <bjg@network-theory.co.uk>

	* test.c (main): increased one test limit slightly to allow for
 	rounding errors

Wed Feb 23 14:35:31 2000  Brian Gough  <bjg@network-theory.co.uk>

	* qpsrt.c (qpsrt): changed ordering of while conditions to avoid
 	segmentation faults due to accessing values before testing end of
 	loop condition. Thanks to Brett Viren
 	<bviren@superk.physics.sunysb.edu> for pointing this out.

	* qelg.c (qelg): changed update of nres from the original quadpack
 	so that uninitialized elements of the res3la array are never
 	accessed.

	* test.c (main): eliminate small memory leak from test

Mon Feb 14 13:45:04 2000  Brian Gough  <bjg@network-theory.co.uk>

	* qk.c: renamed function qk to gsl_integration_qk since it is
 	exported

	* err.c: made internal function rescale_err static, only used in
 	qk.c and qng.c

Mon Jul 12 11:37:55 1999  Brian Gough  <bjg@network-theory.co.uk>

	* qawc_impl.c (gsl_integration_qawc_impl): removed, no longer
 	necessary since everything goes into qawc.c

Fri Apr  2 20:57:09 1999  Brian Gough  <bjg@netsci.freeserve.co.uk>

	* qelg.c (qelg): removed debugging code

	* qpsrt.c (qpsrt): removed debugging code

Thu Mar 11 15:15:46 1999  Brian Gough  <bjg@netsci.freeserve.co.uk>

	* qags_impl.c (gsl_integration_qags_impl): removed dependency in
 	quadrature function calls by introducing dummy variables resabs1
 	and resabs2

Wed Mar 10 19:05:41 1999  Brian Gough  <bjg@netsci.freeserve.co.uk>

	* added integrators QAGI, QAGIU, QAGIL for infinite and
 	semi-infinite ranges

1999-01-01  Mark Galassi  <rosalia@cygnus.com>

	* integration.c: replaced strings.h with string.h, which is the
	ISO library way.

Sat Nov 21 12:43:03 1998  Brian Gough  <bjg@vvv.lanl.gov>

	* Makefile.am (libgslintegration_a_SOURCES): eliminated local
 	max.h in favor of global GSL_MAX

	* added missing gsl_math.h headers for new GSL_DBL_EPSILON macros

Tue Nov 17 17:16:51 1998  Brian Gough  <bjg@vvv.lanl.gov>

	* added #include <config.h> to all top-level source files

Fri Jun 12 22:30:21 1998  Brian Gough  <bjg@vvv.lanl.gov>

	* qage_impl.c: started using volatile (selectively) to enforce
 	strict IEEE behavior for the branches where it matters. I was
 	going to use gcc's -ffloat-store option but it didn't work for me.
  	Using volatile is not really a complete solution but is probably
 	close enough for all practical purposes (also it doesn't degrade
 	the performance as much as -ffloat-store would).
	
Sat May 30 15:40:51 1998  Brian Gough  <bjg@vvv.lanl.gov>

	* test.c (main): basic tests of qage are now complete

	* qage_impl.c (gsl_integration_qage_impl): fixed serious bug for
 	index i, which was incremented at the end of the do loop and
 	give an extra undefined entry in the result list!
	
