diff options
Diffstat (limited to 'gsl-1.9/err/strerror.c')
-rw-r--r-- | gsl-1.9/err/strerror.c | 101 |
1 files changed, 101 insertions, 0 deletions
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" ; + } +} |