diff options
Diffstat (limited to 'gsl-1.9/err')
-rw-r--r-- | gsl-1.9/err/ChangeLog | 161 | ||||
-rw-r--r-- | gsl-1.9/err/Makefile.am | 12 | ||||
-rw-r--r-- | gsl-1.9/err/Makefile.in | 541 | ||||
-rw-r--r-- | gsl-1.9/err/TODO | 3 | ||||
-rw-r--r-- | gsl-1.9/err/error.c | 78 | ||||
-rw-r--r-- | gsl-1.9/err/gsl_errno.h | 154 | ||||
-rw-r--r-- | gsl-1.9/err/gsl_message.h | 80 | ||||
-rw-r--r-- | gsl-1.9/err/message.c | 38 | ||||
-rw-r--r-- | gsl-1.9/err/stream.c | 66 | ||||
-rw-r--r-- | gsl-1.9/err/strerror.c | 101 | ||||
-rw-r--r-- | gsl-1.9/err/test.c | 116 |
11 files changed, 1350 insertions, 0 deletions
diff --git a/gsl-1.9/err/ChangeLog b/gsl-1.9/err/ChangeLog new file mode 100644 index 0000000..c5916fd --- /dev/null +++ b/gsl-1.9/err/ChangeLog @@ -0,0 +1,161 @@ +2004-07-10 Brian Gough <bjg@network-theory.co.uk> + + * error.c (gsl_error): flush stdout/stderr before aborting (needed + to get a useful error message on some platforms) + +2003-06-17 Brian Gough <bjg@network-theory.co.uk> + + * warn.c: removed, the functions are not used + +Sat Apr 27 21:27:32 2002 Brian Gough <bjg@network-theory.co.uk> + + * error.c (gsl_error): added an explanatory message in the default + error handler before aborting + +Tue Jun 12 11:52:23 2001 Brian Gough <bjg@network-theory.co.uk> + + * gsl_errno.h (GSL_STATUS_UPDATE): added macro for updating + status value multiple times + +Fri Apr 27 18:18:59 2001 Brian Gough <bjg@network-theory.co.uk> + + * gsl_errno.h (GSL_ERROR_NULL): added macro which returns NULL, + for out of memory conditions + +Mon Jan 22 16:01:55 2001 Brian Gough <bjg@network-theory.co.uk> + + * gsl_errno.h: added EOF for end of file + +Sat Aug 26 19:26:59 2000 Brian Gough <bjg@network-theory.co.uk> + + * gsl_errno.h: added error codes ETOLF, ETOLX, ETOLG for + unattainable tolerances in (F,X,G) in multimin MINPACK LM + algorithm. + +Fri May 5 11:20:10 2000 Brian Gough <bjg@network-theory.co.uk> + + * split gsl_test code out into separate test/ directory + +Sun Nov 28 17:17:03 1999 Brian Gough <bjg@network-theory.co.uk> + + * gsl_errno.h: added GSL_ENOPROG and GSL_ENOPROGJ to handle error + conditions from minpack hybrid algorithms (INFO=5,4 in the + original code) + +Thu Oct 28 14:41:31 1999 Brian Gough <bjg@network-theory.co.uk> + + * gsl_test.h: changed variable name in prototype for clarity + +Thu Oct 7 11:46:53 1999 Brian Gough <bjg@network-theory.co.uk> + + * test_results.c (gsl_test_str): changed #if __STDC__ to #ifdef + __STDC__ so the code will compile with compilers that define + __STDC__ to 0 meaning STDC+extensions. + +Sun Jul 11 21:48:25 1999 Brian Gough <bjg@network-theory.co.uk> + + * test_errnos.c (main): added GSL_ECACHE to handle internal cache + structures which grow and can hit a limit + +Sun Mar 7 17:00:08 1999 Brian Gough <bjg@netsci.freeserve.co.uk> + + * gsl_errno.h, test_errnos.c, strerror.c: added GSL_EDIVERGE for + divergent integrals and series + +Sat Feb 20 12:14:47 1999 Brian Gough <bjg@netsci.freeserve.co.uk> + + * test_errnos.c (main): added the new error codes to the tests + + * gsl_errno.h: moved all the error codes into a single enum + instead of having a separate enum for GSL_SUCCESS and GSL_FAILURE + +Fri Feb 19 15:56:15 1999 Brian Gough <bjg@netsci.freeserve.co.uk> + + * gsl_errno.h, strerror.c: added GSL_CONTINUE as an error code + indicating that an iteration process has not converged and should + be continued for more iterations. + +Tue Nov 17 17:11:31 1998 Brian Gough <bjg@vvv.lanl.gov> + + * gsl_test.h: removed #include <config.h> which should not be + present in installed header files + +Tue Nov 10 15:55:56 1998 Brian Gough <bjg@vvv.lanl.gov> + + * test_results.c (gsl_test_abs), gsl_test.h: added gsl_test_abs + for absolute errors, like gsl_test_rel for relative errors + +Fri Oct 23 12:51:01 1998 Brian Gough <bjg@vvv.lanl.gov> + + * test_results.c (gsl_test_rel): print a shorter "observed vs + expected" message if the description is 45 characters or longer + +Mon Jun 1 11:02:04 1998 Brian Gough <bjg@vvv.lanl.gov> + + * gsl_errno.h: added GSL_EUNSUP for errors caused by a hardware + feature which is not supported on a particular platform + + * renamed test.c to test_results.c to avoid confusion when debugging + other test programs called test.c + +Sat May 30 16:11:34 1998 Brian Gough <bjg@vvv.lanl.gov> + + * gsl_errno.h: add GSL_ESING for errors caused by singularities + or other bad function behavior + +Fri May 29 14:41:19 1998 Brian Gough <bjg@vvv.lanl.gov> + + * gsl_errno.h: added GSL_EBADLEN to signify bad lengths of + matrices or vectors (e.g. non-conformant sizes in a matrix or + vector multiplication) + +Wed May 27 18:15:34 1998 Brian Gough <bjg@vvv.lanl.gov> + + * test.c (gsl_test_str): changed things so that the strings aren't + printed unless the string equality test fails (usually they were + too long) + +Mon May 18 17:58:20 1998 Brian Gough <bjg@vvv.lanl.gov> + + * test.c (gsl_test_rel): added a test for numerical quantities, + given a result, an expected result and an allowable relative + error. + (gsl_test_int): added a test for comparing integers + +Sun May 10 16:03:12 1998 Brian Gough <bjg@vvv.lanl.gov> + + * gsl_errno.h: added GSL_EROUND for roundoff errors + +Fri May 8 18:50:13 1998 Brian Gough <bjg@vvv.lanl.gov> + + * gsl_errno.h: changed GSL_ETIMEOUT to GSL_EMAXITER to describe + the error that occurs when a specified number of iterations is + exceeded. + +Sun Apr 19 19:14:05 1998 Brian Gough <bjg@vvv.lanl.gov> + + * strerror.c (gsl_strerror): added an strerror function for making + readable descriptions of the error number + +Wed Apr 15 21:59:57 1998 Brian Gough <bjg@vvv.lanl.gov> + + * added a stream handler, for the error stream + + * completely reorganized the files, but the functions are + relatively unchanged + +Wed Apr 8 13:55:48 1998 Brian Gough <bjg@vvv.lanl.gov> + + * gsl_errno.h (GSL_ERROR_RETURN_NOTHING): added an error macro + suitable for void functions + +Mon Apr 6 14:10:48 1998 Brian Gough <bjg@vvv.lanl.gov> + + * gsl_errno.h: use enum instead of #define for symbolic constants, + so that they can be seen in the debugger + +Sun Apr 5 19:49:17 1998 Brian Gough <bjg@vvv.lanl.gov> + + * err/errno.c (gsl_error): now takes gsl_errno as an argument + (this is useful for doing conditional breakpoints) + diff --git a/gsl-1.9/err/Makefile.am b/gsl-1.9/err/Makefile.am new file mode 100644 index 0000000..9f4175f --- /dev/null +++ b/gsl-1.9/err/Makefile.am @@ -0,0 +1,12 @@ +noinst_LTLIBRARIES = libgslerr.la + +pkginclude_HEADERS = gsl_errno.h gsl_message.h + +libgslerr_la_SOURCES = error.c stream.c message.c strerror.c + +check_PROGRAMS = test + +TESTS = $(check_PROGRAMS) + +test_SOURCES = test.c +test_LDADD = libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la diff --git a/gsl-1.9/err/Makefile.in b/gsl-1.9/err/Makefile.in new file mode 100644 index 0000000..f6827b3 --- /dev/null +++ b/gsl-1.9/err/Makefile.in @@ -0,0 +1,541 @@ +# Makefile.in generated by automake 1.9.6 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +top_builddir = .. +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +INSTALL = @INSTALL@ +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +check_PROGRAMS = test$(EXEEXT) +subdir = err +DIST_COMMON = $(pkginclude_HEADERS) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in ChangeLog TODO +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +LTLIBRARIES = $(noinst_LTLIBRARIES) +libgslerr_la_LIBADD = +am_libgslerr_la_OBJECTS = error.lo stream.lo message.lo strerror.lo +libgslerr_la_OBJECTS = $(am_libgslerr_la_OBJECTS) +am_test_OBJECTS = test.$(OBJEXT) +test_OBJECTS = $(am_test_OBJECTS) +test_DEPENDENCIES = libgslerr.la ../test/libgsltest.la \ + ../sys/libgslsys.la ../utils/libutils.la +DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) +depcomp = +am__depfiles_maybe = +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +SOURCES = $(libgslerr_la_SOURCES) $(test_SOURCES) +DIST_SOURCES = $(libgslerr_la_SOURCES) $(test_SOURCES) +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; +am__installdirs = "$(DESTDIR)$(pkgincludedir)" +pkgincludeHEADERS_INSTALL = $(INSTALL_HEADER) +HEADERS = $(pkginclude_HEADERS) +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +ECHO = @ECHO@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +GSL_CFLAGS = @GSL_CFLAGS@ +GSL_LIBS = @GSL_LIBS@ +GSL_LT_CBLAS_VERSION = @GSL_LT_CBLAS_VERSION@ +GSL_LT_VERSION = @GSL_LT_VERSION@ +HAVE_AIX_IEEE_INTERFACE = @HAVE_AIX_IEEE_INTERFACE@ +HAVE_DARWIN86_IEEE_INTERFACE = @HAVE_DARWIN86_IEEE_INTERFACE@ +HAVE_DARWIN_IEEE_INTERFACE = @HAVE_DARWIN_IEEE_INTERFACE@ +HAVE_EXTENDED_PRECISION_REGISTERS = @HAVE_EXTENDED_PRECISION_REGISTERS@ +HAVE_FREEBSD_IEEE_INTERFACE = @HAVE_FREEBSD_IEEE_INTERFACE@ +HAVE_GNUM68K_IEEE_INTERFACE = @HAVE_GNUM68K_IEEE_INTERFACE@ +HAVE_GNUPPC_IEEE_INTERFACE = @HAVE_GNUPPC_IEEE_INTERFACE@ +HAVE_GNUSPARC_IEEE_INTERFACE = @HAVE_GNUSPARC_IEEE_INTERFACE@ +HAVE_GNUX86_IEEE_INTERFACE = @HAVE_GNUX86_IEEE_INTERFACE@ +HAVE_HPUX11_IEEE_INTERFACE = @HAVE_HPUX11_IEEE_INTERFACE@ +HAVE_HPUX_IEEE_INTERFACE = @HAVE_HPUX_IEEE_INTERFACE@ +HAVE_IEEE_COMPARISONS = @HAVE_IEEE_COMPARISONS@ +HAVE_IEEE_DENORMALS = @HAVE_IEEE_DENORMALS@ +HAVE_INLINE = @HAVE_INLINE@ +HAVE_IRIX_IEEE_INTERFACE = @HAVE_IRIX_IEEE_INTERFACE@ +HAVE_NETBSD_IEEE_INTERFACE = @HAVE_NETBSD_IEEE_INTERFACE@ +HAVE_OPENBSD_IEEE_INTERFACE = @HAVE_OPENBSD_IEEE_INTERFACE@ +HAVE_OS2EMX_IEEE_INTERFACE = @HAVE_OS2EMX_IEEE_INTERFACE@ +HAVE_PRINTF_LONGDOUBLE = @HAVE_PRINTF_LONGDOUBLE@ +HAVE_SOLARIS_IEEE_INTERFACE = @HAVE_SOLARIS_IEEE_INTERFACE@ +HAVE_SUNOS4_IEEE_INTERFACE = @HAVE_SUNOS4_IEEE_INTERFACE@ +HAVE_TRU64_IEEE_INTERFACE = @HAVE_TRU64_IEEE_INTERFACE@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ +MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ +MAKEINFO = @MAKEINFO@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +RANLIB = @RANLIB@ +RELEASED = @RELEASED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_RANLIB = @ac_ct_RANLIB@ +ac_ct_STRIP = @ac_ct_STRIP@ +am__leading_dot = @am__leading_dot@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +datadir = @datadir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +noinst_LTLIBRARIES = libgslerr.la +pkginclude_HEADERS = gsl_errno.h gsl_message.h +libgslerr_la_SOURCES = error.c stream.c message.c strerror.c +TESTS = $(check_PROGRAMS) +test_SOURCES = test.c +test_LDADD = libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu --ignore-deps err/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu --ignore-deps err/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +clean-noinstLTLIBRARIES: + -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) + @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ + dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ + test "$$dir" != "$$p" || dir=.; \ + echo "rm -f \"$${dir}/so_locations\""; \ + rm -f "$${dir}/so_locations"; \ + done +libgslerr.la: $(libgslerr_la_OBJECTS) $(libgslerr_la_DEPENDENCIES) + $(LINK) $(libgslerr_la_LDFLAGS) $(libgslerr_la_OBJECTS) $(libgslerr_la_LIBADD) $(LIBS) + +clean-checkPROGRAMS: + @list='$(check_PROGRAMS)'; for p in $$list; do \ + f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ + echo " rm -f $$p $$f"; \ + rm -f $$p $$f ; \ + done +test$(EXEEXT): $(test_OBJECTS) $(test_DEPENDENCIES) + @rm -f test$(EXEEXT) + $(LINK) $(test_LDFLAGS) $(test_OBJECTS) $(test_LDADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +.c.o: + $(COMPILE) -c $< + +.c.obj: + $(COMPILE) -c `$(CYGPATH_W) '$<'` + +.c.lo: + $(LTCOMPILE) -c -o $@ $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +distclean-libtool: + -rm -f libtool +uninstall-info-am: +install-pkgincludeHEADERS: $(pkginclude_HEADERS) + @$(NORMAL_INSTALL) + test -z "$(pkgincludedir)" || $(mkdir_p) "$(DESTDIR)$(pkgincludedir)" + @list='$(pkginclude_HEADERS)'; for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + f=$(am__strip_dir) \ + echo " $(pkgincludeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(pkgincludedir)/$$f'"; \ + $(pkgincludeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(pkgincludedir)/$$f"; \ + done + +uninstall-pkgincludeHEADERS: + @$(NORMAL_UNINSTALL) + @list='$(pkginclude_HEADERS)'; for p in $$list; do \ + f=$(am__strip_dir) \ + echo " rm -f '$(DESTDIR)$(pkgincludedir)/$$f'"; \ + rm -f "$(DESTDIR)$(pkgincludedir)/$$f"; \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +check-TESTS: $(TESTS) + @failed=0; all=0; xfail=0; xpass=0; skip=0; \ + srcdir=$(srcdir); export srcdir; \ + list='$(TESTS)'; \ + if test -n "$$list"; then \ + for tst in $$list; do \ + if test -f ./$$tst; then dir=./; \ + elif test -f $$tst; then dir=; \ + else dir="$(srcdir)/"; fi; \ + if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *" $$tst "*) \ + xpass=`expr $$xpass + 1`; \ + failed=`expr $$failed + 1`; \ + echo "XPASS: $$tst"; \ + ;; \ + *) \ + echo "PASS: $$tst"; \ + ;; \ + esac; \ + elif test $$? -ne 77; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *" $$tst "*) \ + xfail=`expr $$xfail + 1`; \ + echo "XFAIL: $$tst"; \ + ;; \ + *) \ + failed=`expr $$failed + 1`; \ + echo "FAIL: $$tst"; \ + ;; \ + esac; \ + else \ + skip=`expr $$skip + 1`; \ + echo "SKIP: $$tst"; \ + fi; \ + done; \ + if test "$$failed" -eq 0; then \ + if test "$$xfail" -eq 0; then \ + banner="All $$all tests passed"; \ + else \ + banner="All $$all tests behaved as expected ($$xfail expected failures)"; \ + fi; \ + else \ + if test "$$xpass" -eq 0; then \ + banner="$$failed of $$all tests failed"; \ + else \ + banner="$$failed of $$all tests did not behave as expected ($$xpass unexpected passes)"; \ + fi; \ + fi; \ + dashes="$$banner"; \ + skipped=""; \ + if test "$$skip" -ne 0; then \ + skipped="($$skip tests were not run)"; \ + test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$skipped"; \ + fi; \ + report=""; \ + if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ + report="Please report to $(PACKAGE_BUGREPORT)"; \ + test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$report"; \ + fi; \ + dashes=`echo "$$dashes" | sed s/./=/g`; \ + echo "$$dashes"; \ + echo "$$banner"; \ + test -z "$$skipped" || echo "$$skipped"; \ + test -z "$$report" || echo "$$report"; \ + echo "$$dashes"; \ + test "$$failed" -eq 0; \ + else :; fi + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ + list='$(DISTFILES)'; for file in $$list; do \ + case $$file in \ + $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ + $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ + esac; \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test "$$dir" != "$$file" && test "$$dir" != "."; then \ + dir="/$$dir"; \ + $(mkdir_p) "$(distdir)$$dir"; \ + else \ + dir=''; \ + fi; \ + if test -d $$d/$$file; then \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done +check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) + $(MAKE) $(AM_MAKEFLAGS) check-TESTS +check: check-am +all-am: Makefile $(LTLIBRARIES) $(HEADERS) +installdirs: + for dir in "$(DESTDIR)$(pkgincludedir)"; do \ + test -z "$$dir" || $(mkdir_p) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-checkPROGRAMS clean-generic clean-libtool \ + clean-noinstLTLIBRARIES mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-libtool distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +info: info-am + +info-am: + +install-data-am: install-pkgincludeHEADERS + +install-exec-am: + +install-info: install-info-am + +install-man: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-info-am uninstall-pkgincludeHEADERS + +.PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \ + clean-checkPROGRAMS clean-generic clean-libtool \ + clean-noinstLTLIBRARIES ctags distclean distclean-compile \ + distclean-generic distclean-libtool distclean-tags distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-exec install-exec-am \ + install-info install-info-am install-man \ + install-pkgincludeHEADERS install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags uninstall uninstall-am uninstall-info-am \ + uninstall-pkgincludeHEADERS + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/gsl-1.9/err/TODO b/gsl-1.9/err/TODO new file mode 100644 index 0000000..06dff89 --- /dev/null +++ b/gsl-1.9/err/TODO @@ -0,0 +1,3 @@ +* Add a GSL_ERROR_MODE environment variable for choosing error +behavior at runtime (???). + diff --git a/gsl-1.9/err/error.c b/gsl-1.9/err/error.c new file mode 100644 index 0000000..709512d --- /dev/null +++ b/gsl-1.9/err/error.c @@ -0,0 +1,78 @@ +/* err/error.c + * + * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman, Brian Gough + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or (at + * your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include <config.h> +#include <stddef.h> +#include <stdlib.h> +#include <stdio.h> + +#include <gsl/gsl_errno.h> +#include <gsl/gsl_message.h> + +gsl_error_handler_t * gsl_error_handler = NULL; + +static void no_error_handler (const char *reason, const char *file, int line, int gsl_errno); + +void +gsl_error (const char * reason, const char * file, int line, int gsl_errno) +{ + if (gsl_error_handler) + { + (*gsl_error_handler) (reason, file, line, gsl_errno); + return ; + } + + gsl_stream_printf ("ERROR", file, line, reason); + + fflush (stdout); + fprintf (stderr, "Default GSL error handler invoked.\n"); + fflush (stderr); + + abort (); +} + +gsl_error_handler_t * +gsl_set_error_handler (gsl_error_handler_t * new_handler) +{ + gsl_error_handler_t * previous_handler = gsl_error_handler; + gsl_error_handler = new_handler; + return previous_handler; +} + + +gsl_error_handler_t * +gsl_set_error_handler_off (void) +{ + gsl_error_handler_t * previous_handler = gsl_error_handler; + gsl_error_handler = no_error_handler; + return previous_handler; +} + +static void +no_error_handler (const char *reason, const char *file, int line, int gsl_errno) +{ + /* do nothing */ + reason = 0; + file = 0; + line = 0; + gsl_errno = 0; + return; +} + + diff --git a/gsl-1.9/err/gsl_errno.h b/gsl-1.9/err/gsl_errno.h new file mode 100644 index 0000000..ca537e9 --- /dev/null +++ b/gsl-1.9/err/gsl_errno.h @@ -0,0 +1,154 @@ +/* err/gsl_errno.h + * + * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman, Brian Gough + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or (at + * your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef __GSL_ERRNO_H__ +#define __GSL_ERRNO_H__ + +#include <stdio.h> +#include <errno.h> +#include <gsl/gsl_types.h> + +#undef __BEGIN_DECLS +#undef __END_DECLS +#ifdef __cplusplus +# define __BEGIN_DECLS extern "C" { +# define __END_DECLS } +#else +# define __BEGIN_DECLS /* empty */ +# define __END_DECLS /* empty */ +#endif + +__BEGIN_DECLS + +enum { + GSL_SUCCESS = 0, + GSL_FAILURE = -1, + GSL_CONTINUE = -2, /* iteration has not converged */ + GSL_EDOM = 1, /* input domain error, e.g sqrt(-1) */ + GSL_ERANGE = 2, /* output range error, e.g. exp(1e100) */ + GSL_EFAULT = 3, /* invalid pointer */ + GSL_EINVAL = 4, /* invalid argument supplied by user */ + GSL_EFAILED = 5, /* generic failure */ + GSL_EFACTOR = 6, /* factorization failed */ + GSL_ESANITY = 7, /* sanity check failed - shouldn't happen */ + GSL_ENOMEM = 8, /* malloc failed */ + GSL_EBADFUNC = 9, /* problem with user-supplied function */ + GSL_ERUNAWAY = 10, /* iterative process is out of control */ + GSL_EMAXITER = 11, /* exceeded max number of iterations */ + GSL_EZERODIV = 12, /* tried to divide by zero */ + GSL_EBADTOL = 13, /* user specified an invalid tolerance */ + GSL_ETOL = 14, /* failed to reach the specified tolerance */ + GSL_EUNDRFLW = 15, /* underflow */ + GSL_EOVRFLW = 16, /* overflow */ + GSL_ELOSS = 17, /* loss of accuracy */ + GSL_EROUND = 18, /* failed because of roundoff error */ + GSL_EBADLEN = 19, /* matrix, vector lengths are not conformant */ + GSL_ENOTSQR = 20, /* matrix not square */ + GSL_ESING = 21, /* apparent singularity detected */ + GSL_EDIVERGE = 22, /* integral or series is divergent */ + GSL_EUNSUP = 23, /* requested feature is not supported by the hardware */ + GSL_EUNIMPL = 24, /* requested feature not (yet) implemented */ + GSL_ECACHE = 25, /* cache limit exceeded */ + GSL_ETABLE = 26, /* table limit exceeded */ + GSL_ENOPROG = 27, /* iteration is not making progress towards solution */ + GSL_ENOPROGJ = 28, /* jacobian evaluations are not improving the solution */ + GSL_ETOLF = 29, /* cannot reach the specified tolerance in F */ + GSL_ETOLX = 30, /* cannot reach the specified tolerance in X */ + GSL_ETOLG = 31, /* cannot reach the specified tolerance in gradient */ + GSL_EOF = 32 /* end of file */ +} ; + +void gsl_error (const char * reason, const char * file, int line, + int gsl_errno); + +void gsl_stream_printf (const char *label, const char *file, + int line, const char *reason); + +const char * gsl_strerror (const int gsl_errno); + +typedef void gsl_error_handler_t (const char * reason, const char * file, + int line, int gsl_errno); + +typedef void gsl_stream_handler_t (const char * label, const char * file, + int line, const char * reason); + +gsl_error_handler_t * +gsl_set_error_handler (gsl_error_handler_t * new_handler); + +gsl_error_handler_t * +gsl_set_error_handler_off (void); + +gsl_stream_handler_t * +gsl_set_stream_handler (gsl_stream_handler_t * new_handler); + +FILE * gsl_set_stream (FILE * new_stream); + +/* GSL_ERROR: call the error handler, and return the error code */ + +#define GSL_ERROR(reason, gsl_errno) \ + do { \ + gsl_error (reason, __FILE__, __LINE__, gsl_errno) ; \ + return gsl_errno ; \ + } while (0) + +/* GSL_ERROR_VAL: call the error handler, and return the given value */ + +#define GSL_ERROR_VAL(reason, gsl_errno, value) \ + do { \ + gsl_error (reason, __FILE__, __LINE__, gsl_errno) ; \ + return value ; \ + } while (0) + +/* GSL_ERROR_VOID: call the error handler, and then return + (for void functions which still need to generate an error) */ + +#define GSL_ERROR_VOID(reason, gsl_errno) \ + do { \ + gsl_error (reason, __FILE__, __LINE__, gsl_errno) ; \ + return ; \ + } while (0) + +/* GSL_ERROR_NULL suitable for out-of-memory conditions */ + +#define GSL_ERROR_NULL(reason, gsl_errno) GSL_ERROR_VAL(reason, gsl_errno, 0) + +/* Sometimes you have several status results returned from + * function calls and you want to combine them in some sensible + * way. You cannot produce a "total" status condition, but you can + * pick one from a set of conditions based on an implied hierarchy. + * + * In other words: + * you have: status_a, status_b, ... + * you want: status = (status_a if it is bad, or status_b if it is bad,...) + * + * In this example you consider status_a to be more important and + * it is checked first, followed by the others in the order specified. + * + * Here are some dumb macros to do this. + */ +#define GSL_ERROR_SELECT_2(a,b) ((a) != GSL_SUCCESS ? (a) : ((b) != GSL_SUCCESS ? (b) : GSL_SUCCESS)) +#define GSL_ERROR_SELECT_3(a,b,c) ((a) != GSL_SUCCESS ? (a) : GSL_ERROR_SELECT_2(b,c)) +#define GSL_ERROR_SELECT_4(a,b,c,d) ((a) != GSL_SUCCESS ? (a) : GSL_ERROR_SELECT_3(b,c,d)) +#define GSL_ERROR_SELECT_5(a,b,c,d,e) ((a) != GSL_SUCCESS ? (a) : GSL_ERROR_SELECT_4(b,c,d,e)) + +#define GSL_STATUS_UPDATE(sp, s) do { if ((s) != GSL_SUCCESS) *(sp) = (s);} while(0) + +__END_DECLS + +#endif /* __GSL_ERRNO_H__ */ diff --git a/gsl-1.9/err/gsl_message.h b/gsl-1.9/err/gsl_message.h new file mode 100644 index 0000000..c717f53 --- /dev/null +++ b/gsl-1.9/err/gsl_message.h @@ -0,0 +1,80 @@ +/* err/gsl_message.h + * + * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman, Brian Gough + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or (at + * your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef __GSL_MESSAGE_H__ +#define __GSL_MESSAGE_H__ +#include <gsl/gsl_types.h> + +#undef __BEGIN_DECLS +#undef __END_DECLS +#ifdef __cplusplus +# define __BEGIN_DECLS extern "C" { +# define __END_DECLS } +#else +# define __BEGIN_DECLS /* empty */ +# define __END_DECLS /* empty */ +#endif + +__BEGIN_DECLS + +/* Provide a general messaging service for client use. Messages can + * be selectively turned off at compile time by defining an + * appropriate message mask. Client code which uses the GSL_MESSAGE() + * macro must provide a mask which is or'ed with the GSL_MESSAGE_MASK. + * + * The messaging service can be completely turned off + * by defining GSL_MESSAGING_OFF. */ + +void gsl_message(const char * message, const char * file, int line, + unsigned int mask); + +#ifndef GSL_MESSAGE_MASK +#define GSL_MESSAGE_MASK 0xffffffffu /* default all messages allowed */ +#endif + +GSL_VAR unsigned int gsl_message_mask ; + +/* Provide some symolic masks for client ease of use. */ + +enum { + GSL_MESSAGE_MASK_A = 1, + GSL_MESSAGE_MASK_B = 2, + GSL_MESSAGE_MASK_C = 4, + GSL_MESSAGE_MASK_D = 8, + GSL_MESSAGE_MASK_E = 16, + GSL_MESSAGE_MASK_F = 32, + GSL_MESSAGE_MASK_G = 64, + GSL_MESSAGE_MASK_H = 128 +} ; + +#ifdef GSL_MESSAGING_OFF /* throw away messages */ +#define GSL_MESSAGE(message, mask) do { } while(0) +#else /* output all messages */ +#define GSL_MESSAGE(message, mask) \ + do { \ + if (mask & GSL_MESSAGE_MASK) \ + gsl_message (message, __FILE__, __LINE__, mask) ; \ + } while (0) +#endif + +__END_DECLS + +#endif /* __GSL_MESSAGE_H__ */ + + diff --git a/gsl-1.9/err/message.c b/gsl-1.9/err/message.c new file mode 100644 index 0000000..9098b37 --- /dev/null +++ b/gsl-1.9/err/message.c @@ -0,0 +1,38 @@ +/* err/message.c + * + * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman, Brian Gough + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or (at + * your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include <config.h> +#include <stddef.h> +#include <stdlib.h> +#include <stdio.h> + +#include <gsl/gsl_errno.h> +#include <gsl/gsl_message.h> + +unsigned int gsl_message_mask = GSL_MESSAGE_MASK; + +void +gsl_message (const char * reason, const char * file, int line, + unsigned int mask) +{ + if (mask & gsl_message_mask) + { + gsl_stream_printf ("MESSAGE", file, line, reason); + } +} diff --git a/gsl-1.9/err/stream.c b/gsl-1.9/err/stream.c new file mode 100644 index 0000000..acc7122 --- /dev/null +++ b/gsl-1.9/err/stream.c @@ -0,0 +1,66 @@ +/* err/stream.c + * + * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman, Brian Gough + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or (at + * your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include <config.h> +#include <stddef.h> +#include <stdlib.h> +#include <stdio.h> + +#include <gsl/gsl_errno.h> +#include <gsl/gsl_message.h> + +FILE * gsl_stream = NULL ; +gsl_stream_handler_t * gsl_stream_handler = NULL; + +void +gsl_stream_printf (const char *label, const char *file, int line, + const char *reason) +{ + if (gsl_stream == NULL) + { + gsl_stream = stderr; + } + if (gsl_stream_handler) + { + (*gsl_stream_handler) (label, file, line, reason); + return; + } + fprintf (gsl_stream, "gsl: %s:%d: %s: %s\n", file, line, label, reason); + +} + +gsl_stream_handler_t * +gsl_set_stream_handler (gsl_stream_handler_t * new_handler) +{ + gsl_stream_handler_t * previous_handler = gsl_stream_handler; + gsl_stream_handler = new_handler; + return previous_handler; +} + +FILE * +gsl_set_stream (FILE * new_stream) +{ + FILE * previous_stream; + if (gsl_stream == NULL) { + gsl_stream = stderr; + } + previous_stream = gsl_stream; + gsl_stream = new_stream; + return previous_stream; +} diff --git a/gsl-1.9/err/strerror.c b/gsl-1.9/err/strerror.c new file mode 100644 index 0000000..49f57c0 --- /dev/null +++ b/gsl-1.9/err/strerror.c @@ -0,0 +1,101 @@ +/* err/strerror.c + * + * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman, Brian Gough + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or (at + * your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include <config.h> +#include <gsl/gsl_errno.h> + +const char * +gsl_strerror (const int gsl_errno) +{ + switch (gsl_errno) + { + case GSL_SUCCESS: + return "success" ; + case GSL_FAILURE: + return "failure" ; + case GSL_CONTINUE: + return "the iteration has not converged yet"; + case GSL_EDOM: + return "input domain error" ; + case GSL_ERANGE: + return "output range error" ; + case GSL_EFAULT: + return "invalid pointer" ; + case GSL_EINVAL: + return "invalid argument supplied by user" ; + case GSL_EFAILED: + return "generic failure" ; + case GSL_EFACTOR: + return "factorization failed" ; + case GSL_ESANITY: + return "sanity check failed - shouldn't happen" ; + case GSL_ENOMEM: + return "malloc failed" ; + case GSL_EBADFUNC: + return "problem with user-supplied function"; + case GSL_ERUNAWAY: + return "iterative process is out of control"; + case GSL_EMAXITER: + return "exceeded max number of iterations" ; + case GSL_EZERODIV: + return "tried to divide by zero" ; + case GSL_EBADTOL: + return "specified tolerance is invalid or theoretically unattainable" ; + case GSL_ETOL: + return "failed to reach the specified tolerance" ; + case GSL_EUNDRFLW: + return "underflow" ; + case GSL_EOVRFLW: + return "overflow" ; + case GSL_ELOSS: + return "loss of accuracy" ; + case GSL_EROUND: + return "roundoff error" ; + case GSL_EBADLEN: + return "matrix/vector sizes are not conformant" ; + case GSL_ENOTSQR: + return "matrix not square" ; + case GSL_ESING: + return "singularity or extremely bad function behavior detected" ; + case GSL_EDIVERGE: + return "integral or series is divergent" ; + case GSL_EUNSUP: + return "the required feature is not supported by this hardware platform"; + case GSL_EUNIMPL: + return "the requested feature is not (yet) implemented"; + case GSL_ECACHE: + return "cache limit exceeded"; + case GSL_ETABLE: + return "table limit exceeded"; + case GSL_ENOPROG: + return "iteration is not making progress towards solution"; + case GSL_ENOPROGJ: + return "jacobian evaluations are not improving the solution"; + case GSL_ETOLF: + return "cannot reach the specified tolerance in F"; + case GSL_ETOLX: + return "cannot reach the specified tolerance in X"; + case GSL_ETOLG: + return "cannot reach the specified tolerance in gradient"; + case GSL_EOF: + return "end of file"; + default: + return "unknown error code" ; + } +} diff --git a/gsl-1.9/err/test.c b/gsl-1.9/err/test.c new file mode 100644 index 0000000..ccc111d --- /dev/null +++ b/gsl-1.9/err/test.c @@ -0,0 +1,116 @@ +/* err/test_errnos.c + * + * Copyright (C) 1996, 1997, 1998, 1999, 2000 Gerard Jungman, Brian Gough + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or (at + * your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include <config.h> + +#include <stdio.h> +#include <stdlib.h> + +#include <gsl/gsl_errno.h> +#include <gsl/gsl_test.h> + +#define CHECK(x) errors[n].number = x ; errors[n].name = #x ; n++ ; +#define MAX_ERRS 64 + +int verbose = 0 ; + +int +main (void) +{ + int i, j, n = 0 ; + + struct { + int number; + const char * name; + } errors[MAX_ERRS] ; + + CHECK(GSL_SUCCESS); + CHECK(GSL_FAILURE); + CHECK(GSL_CONTINUE); + CHECK(GSL_EDOM); + CHECK(GSL_ERANGE); + CHECK(GSL_EFAULT); + CHECK(GSL_EINVAL); + CHECK(GSL_EFAILED); + CHECK(GSL_EFACTOR); + CHECK(GSL_ESANITY); + CHECK(GSL_ENOMEM); + CHECK(GSL_EBADFUNC); + CHECK(GSL_ERUNAWAY); + CHECK(GSL_EMAXITER); + CHECK(GSL_EZERODIV); + CHECK(GSL_EBADTOL); + CHECK(GSL_ETOL); + CHECK(GSL_EUNDRFLW); + CHECK(GSL_EOVRFLW); + CHECK(GSL_ELOSS); + CHECK(GSL_EROUND); + CHECK(GSL_EBADLEN); + CHECK(GSL_ENOTSQR); + CHECK(GSL_ESING); + CHECK(GSL_EDIVERGE); + CHECK(GSL_EUNSUP); + CHECK(GSL_EUNIMPL); + CHECK(GSL_ECACHE); + CHECK(GSL_ETABLE); + CHECK(GSL_ENOPROG); + CHECK(GSL_ENOPROGJ); + CHECK(GSL_ETOLF); + CHECK(GSL_ETOLX); + CHECK(GSL_ETOLG); + CHECK(GSL_EOF); + + for (i = 0 ; i < n ; i++) + { + if (verbose) printf ("%s = %d\n", errors[i].name, errors[i].number) ; + } + + for (i = 0; i < n; i++) + { + int status = 0; + for (j = 0; j < n; j++) + { + if (j != i) + status |= (errors[i].number == errors[j].number); + } + + gsl_test (status, "%s is distinct from other error values", + errors[i].name); + } + + for (i = 0; i < n; i++) + { + int status = 0; + int e1 = errors[i].number ; + for (j = 0; j < n; j++) + { + if (j != i) + { + int e2 = errors[j].number; + status |= (gsl_strerror(e1) == gsl_strerror(e2)) ; + } + } + gsl_test (status, "%s has a distinct error message", + errors[i].name); + } + + + exit (gsl_test_summary ()); +} + |