2007-02-17  Brian Gough  <bjg@network-theory.co.uk>

	* test_source.c (FUNCTION): avoid running negative value tests on
	char, because it can be unsigned.

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

	* minmax_source.c: added support for NaNs

2006-10-31  Brian Gough  <bjg@network-theory.co.uk>

	* prop_source.c (FUNCTION): added functions gsl_matrix_ispos,
	gsl_matrix_isneg

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

	* gsl_matrix_complex_float.h (gsl_matrix_complex_float_get):
	removed const from zero

	* matrix_source.c (FUNCTION): removed const from zero

2002-11-24  Brian Gough  <bjg@network-theory.co.uk>

	* Makefile.am: added libgslsys.a to link, to provide gsl_hypot for
	complex division

Mon Jun 17 22:31:33 2002  Brian Gough  <bjg@network-theory.co.uk>

	* test_complex_source.c (FUNCTION): fixed non-constant initializer

Wed May  1 21:33:44 2002  Brian Gough  <bjg@network-theory.co.uk>

	* gsl_matrix_complex_float.h (gsl_matrix_complex_float_get): moved
 	constant zero inside GSL_RANGE_CHECK_OFF

Sun Mar 24 20:28:48 2002  Brian Gough  <bjg@network-theory.co.uk>

	* oper_complex_source.c: complex matrix operations (from Toby
 	White)
	
Mon Feb 18 20:33:58 2002  Brian Gough  <bjg@network-theory.co.uk>

	* copy_source.c (gsl_matrix_swap): fixed prototype by removing
 	const from second arg.

Sun Jan 27 22:29:37 2002  Brian Gough  <bjg@network-theory.co.uk>

	* test.c: ensure that range check is working when running the
 	tests

Fri Sep 14 18:56:34 2001  Brian Gough  <bjg@network-theory.co.uk>

	* view_source.c: fixed cast for array type

	* view.c: added #includes for missing const qualified types

	* view_source.c: error for non-unit strides

Fri Aug  3 14:11:23 2001  Brian Gough  <bjg@network-theory.co.uk>

	* added gsl_matrix_ptr and gsl_matrix_const_ptr functions

Mon Jul 16 21:28:05 2001  Brian Gough  <bjg@network-theory.co.uk>

	* rowcol_source.c (FUNCTION): initialized view to NULL

Fri Jul 13 21:29:27 2001  Brian Gough  <bjg@network-theory.co.uk>

	* changed views to be structs and used casts to initialize them

Mon Jul  2 12:35:16 2001  Brian Gough  <bjg@network-theory.co.uk>

	* view.h:  provide macros for initializing null
 	vectors and views

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

	* introduction of new-style vector/matrix views

Fri Jun  1 17:04:52 2001  Brian Gough  <bjg@network-theory.co.uk>

	* getset_source.c: made these routines work with the current
 	matrix struct, previously they would give incorrect results

Mon May 14 22:43:39 2001  Brian Gough  <bjg@network-theory.co.uk>

	* matrix_source.c (FUNCTION): removed unnecessary inline from
 	static function definition

Tue May  1 23:09:25 2001  Brian Gough  <bjg@network-theory.co.uk>

	* gsl_matrix_float.h (struct ): MS VC++ requires that the
 	struct/typedef be made with a single definition

Mon Mar 26 20:33:45 2001  Brian Gough  <bjg@network-theory.co.uk>

	* view_source.c: split view functions out into a separate file

Sat Sep  9 16:47:16 2000  Brian Gough  <bjg@network-theory.co.uk>

	* added an owner field for indicating whether the underlying
 	memory is owned by the vector. Changed the meaning of the block
 	field to always be the address of the underlying block, even for
 	subviews (previously the block field was set to NULL in this
 	case).

Thu Aug 17 19:46:22 2000  Brian Gough  <bjg@network-theory.co.uk>

	* swap_source.c (FUNCTION): added function
 	gsl_matrix_transpose_memcpy for transposing rectangular matrices

Sun Jul 16 10:40:15 2000  Brian Gough  <bjg@network-theory.co.uk>

	* init_source.c (FUNCTION):  added gsl_matrix_view function for
 	creating a matrix view of an ordinary C array

Sat Jul 15 21:44:22 2000  Brian Gough  <bjg@network-theory.co.uk>

	* changed GSL_EDOM to GSL_EINVAL for invalid matrix size arguments

Sat Jun 17 15:38:30 2000  Brian Gough  <bjg@network-theory.co.uk>

        * fixed up missing MULTIPLICITY factors in various functions 

Sun May 28 12:25:02 2000  Brian Gough  <bjg@network-theory.co.uk>

	* test_complex_source.c (FUNCTION): use binary mode "b" when
 	reading and writing binary files

	* test_source.c (FUNCTION): use binary mode "b" when reading and
 	writing binary files

Thu May  4 20:58:59 2000  Brian Gough  <bjg@network-theory.co.uk>

	* oper.c: added simple arithmetic operations (+,-,*,/,scale,+const)

Wed Apr 26 15:04:22 2000  Brian Gough  <bjg@network-theory.co.uk>

	* prop_source.c (FUNCTION): added function gsl_matrix_isnull

Tue Apr 18 12:51:49 2000  Brian Gough  <bjg@network-theory.co.uk>

	* minmax_source.c (FUNCTION): fixed bug in minmax where
 	coordinates would be incorrect for min or max in the first element

	* test_source.c (FUNCTION): added tests for max/min functions

Thu Apr 13 18:39:27 2000  Brian Gough  <bjg@network-theory.co.uk>

	* minmax.c: added matrix max/min functions

Sat Mar 25 20:29:41 2000  Brian Gough  <bjg@network-theory.co.uk>

	* swap_source.c (FUNCTION): renamed swap_cols to swap_columns, and
 	renamed swap_rowcol to swap_row_column

Tue Mar 21 21:15:22 2000  Brian Gough  <bjg@network-theory.co.uk>

	* matrix_source.c (FUNCTION): added set_all and set_zero functions

Sat Mar 11 11:19:05 2000  Brian Gough  <bjg@network-theory.co.uk>

	* init_source.c (FUNCTION): added gsl_matrix_identity to set a
 	matrix to the identity, and gsl_matrix_zero for zeroing a matrix

	* gsl_matrix.h: renamed struct element dim2 to tda (trailing
 	dimension) following blas conventions for row-major matrices

Thu Dec  2 21:17:16 1999  Brian Gough  <bjg@network-theory.co.uk>

	* rowcol_source.c (FUNCTION): added gsl_matrix_view_from_vector
 	(Thanks to Fabrice Rossi)

Sun Oct 31 20:01:39 1999  Brian Gough  <bjg@network-theory.co.uk>

	* copy.c copy_source.c: added gsl_matrix_copy function

Tue Oct 19 14:13:35 1999  Brian Gough  <bjg@network-theory.co.uk>

	* added gsl_matrix_swap_row/col to exchange rows and columns

Fri Oct  1 15:48:07 1999  Brian Gough  <bjg@network-theory.co.uk>

	* the matrix struct now supports a separate 'trailing dimension'
 	to allow handling of submatrices

	* now uses separate block directory for memory management

Mon Mar  1 20:05:52 1999  Brian Gough  <bjg@netsci.freeserve.co.uk>

	* rowcol_source.c: fix rowcol to use strides

1998-11-09    <bjg@ancho.lanl.gov>

	* test_source.c, test_complex_source.c: use macros to determine if
	we should run tests with long double printf/scanf, since these
	aren't supported on all platforms

Mon Apr  6 15:06:38 1998  Brian Gough  <bjg@vvv.lanl.gov>

	* make range checking the default, you have to define
 	GSL_RANGE_CHECK_OFF to turn it off

