2005-11-14  Brian Gough  <bjg@network-theory.co.uk>

	* test.c: added tests for constants

2005-04-05  Brian Gough  <bjg@network-theory.co.uk>

	* infnan.c: added #include ieeefp.h for Solaris

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

	* infnan.c (gsl_isinf): added missing return type of int

2003-09-02  Brian Gough  <bjg@network-theory.co.uk>

	* infnan.c (gsl_isinf): added fallback for missing isinf (IRIX)

2003-07-24  Brian Gough  <bjg@network-theory.co.uk>

	* invhyp.c: removed duplicate declarations

	* ldfrexp.c: removed duplicate declarations

	* expm1.c: removed duplicate declaration of gsl_expm1

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

	* infnan.c (gsl_isnan): fall back to isnan,isinf,finite/isfinite
	if available and IEEE comparisons do not work

Wed Dec 11 17:29:24 2002  Brian Gough  <brian.gough@network-theory.co.uk>

	* ldfrexp.c: fix include to use <gsl/gsl_math.h> instead of
 	<gsl_math.h>

2002-08-25  Brian Gough  <bjg@network-theory.co.uk>

	* fcmp.c (gsl_fcmp): approximate comparison of floating point
	numbers using Knuth's algorithm

	* ldfrexp.c (gsl_ldexp): portable replacement for ldexp()
	(gsl_frexp): portable replacement for frexp()

Wed Jan 16 16:35:58 2002  Brian Gough  <bjg@network-theory.co.uk>

	* test.c (main): only test gsl_isnan, gsl_isinf, gsl_finite
 	functions if they have been compiled in.

	* infnan.c (gsl_isnan): #ifdef out the gsl_isnan, gsl_isinf and
 	gsl_finite functions if IEEE comparisons for nans and infs are not
 	supported (HAVE_IEEE_COMPARISONS).

Tue Aug 21 22:54:08 2001  Brian Gough  <bjg@network-theory.co.uk>

	* test.c (main): use inf/inf to generate a nan, because MSVC
 	optimizes inf-inf to zero

Sun May  6 14:28:57 2001  Brian Gough  <bjg@network-theory.co.uk>

	* infnan.c: added gsl_isnan, gsl_isinf, gsl_isreal

Sun Feb 25 11:54:21 2001  Brian Gough  <bjg@network-theory.co.uk>

	* invhyp.c: added gsl_acosh, gsl_asinh, gsl_atanh

Mon Jan 29 10:53:06 2001  Brian Gough  <bjg@network-theory.co.uk>

	* hypot.c: removed the inline from gsl_hypot, since this is the
 	static version of the function

	* test.c (main): added an underflow test for gsl_hypot

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

	* coerce.c: added functions for coercing values out of registers
 	so they are correctly rounded

Sun Oct 22 15:00:24 2000  Brian Gough  <bjg@network-theory.co.uk>

	* expm1.c (gsl_expm1): added gsl_expm1, a substitute for BSD's expm1

Mon Apr  3 16:58:53 2000  Brian Gough  <bjg@network-theory.co.uk>

	* params.c (main): added parentheses around negative output values

Tue Mar 21 12:44:07 2000  Brian Gough  <bjg@network-theory.co.uk>

	* hypot.c: added a quick gsl_hypot function for sqrt(x^2+y^2)

1999-07-14  Mark Galassi  <rosalia@cygnus.com>

	* prec.c (GSL_MODE_PREC): surrounded this with function with an
	#ifndef, since it might already be defined as a macro.  In truth,
	this function might be completely unnecessary, since the logic in
	../gsl_mode.h seems to cover all cases.

Fri Nov 20 17:41:35 1998  Brian Gough  <bjg@vvv.lanl.gov>

	* params.c: added program for printing ieee parameters

