annotate include/error.hpp @ 15:5144dd3c5468

Almost completed adding all Doxygen docstrings.
author Jordi Gutiérrez Hermoso <jordigh@gmail.com>
date Fri, 08 Aug 2008 00:08:57 -0500
parents 6e06eb6ec448
children 29a7b95c2805
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
1 /*! \file error.hpp
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
2 * \brief Throw exceptions instead of using GSL error handler function which
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
3 * prefers to call abort().
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
4 *
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
5
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
6 * Remember to put `gsl_set_error_handler(&errorHandler);' in the
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
7 * main() loops when including this header file; otherwise it's
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
8 * useless!
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
9 */
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
10
12
6e06eb6ec448 Trivial change in include guards.
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 4
diff changeset
11 #ifndef __ERROR_HPP__
6e06eb6ec448 Trivial change in include guards.
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 4
diff changeset
12 #define __ERROR_HPP__
0
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
13
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
14 #include <gsl/gsl_errno.h>
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
15 #include <string>
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
16
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
17 /// Exception classes in this namespace
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
18 namespace error_handling{
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
19 //Structs to be thrown as exceptions
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
20 using std::string;
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
21
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
22 /// generic error and base struct. /*GSL_FAILURE = -1,*/
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
23 class error{
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
24 public:
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
25 std::string reason, file;
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
26 int line;
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
27 error(){};
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
28 error(string r, string f, int l) :
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
29 reason(r), file(f), line(l) {};
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
30
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
31 };
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
32
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
33 struct noConvergence ;
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
34 struct badDomain ;
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
35 struct badRange ;
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
36 struct badPointer ;
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
37 struct badArgument ;
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
38 struct failure ;
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
39 struct failedFactorisation ;
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
40 struct failedSanity ;
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
41 struct outOfMemory ;
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
42 struct badFunction ;
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
43 struct runAway ;
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
44 struct maxIterations ;
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
45 struct divideByZero ;
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
46 struct badTolerance ;
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
47 struct aboveTolerance ;
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
48 struct underflow ;
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
49 struct overflow ;
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
50 struct lossOfAccuracy ;
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
51 struct roundOffError ;
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
52 struct inconformantSizes ;
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
53 struct matrixNotSquare ;
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
54 struct singularityFound ;
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
55 struct integralOrSeriesDivergent ;
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
56 struct badHardware ;
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
57 struct notImplemented ;
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
58 struct cacheLimitExceeded ;
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
59 struct tableLimitExceeded ;
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
60 struct iterationNotProgressing ;
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
61 struct jacobiansNotImprovingSolution ;
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
62
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
63 struct cannotReachToleranceInF ;
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
64 struct cannotReachToleranceInX ;
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
65 struct cannotReachToleranceInGradient ;
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
66 struct endOfFile ;
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
67
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
68 /*! \brief Custom error handler to be used for GSL.
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
69 *
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
70 * Throw exceptions instead of calling abort().
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
71 *
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
72 * Remember to put `gsl_set_error_handler(&errorHandler);' in the
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
73 * main() loops when including this header file; otherwise it's
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
74 * useless!
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
75 */
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
76 void errorHandler(const char * reason, const char * file,
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
77 int line, int gsl_errno);
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
78 }
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
79
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
80
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
81 //A few more details about the structs we're throwing as exceptions.
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
82 namespace error_handling{
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
83 using std::string;
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
84
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
85 ///GSL_CONTINUE = -2, /* iteration has not converged */
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
86 struct noConvergence : public error {
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
87 noConvergence() {};
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
88 noConvergence(string r, string f, int l) :
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
89 error(r,f,l) {};
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
90 };
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
91
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
92 ///GSL_EDOM = 1, /* input domain error, e.g sqrt(-1) */
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
93 struct badDomain : public error {
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
94 badDomain() {};
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
95 badDomain(string r, string f, int l) :
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
96 error(r,f,l) {};
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
97 };
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
98
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
99 ///GSL_ERANGE = 2, /* output range error, e.g. exp(1e100) */
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
100 struct badRange : public error {
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
101 badRange() {};
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
102 badRange(string r, string f, int l) :
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
103 error(r,f,l) {};
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
104 };
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
105
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
106 ///GSL_EFAULT = 3, /* invalid pointer */
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
107 struct badPointer : public error {
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
108 badPointer() {};
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
109 badPointer(string r, string f, int l) :
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
110 error(r,f,l) {};
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
111 };
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
112
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
113 ///GSL_EINVAL = 4, /* invalid argument supplied by user */
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
114 struct badArgument : public error {
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
115 badArgument() {};
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
116 badArgument(string r, string f, int l) :
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
117 error(r,f,l) {};
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
118 };
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
119
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
120 ///GSL_EFAILED = 5, /* generic failure */
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
121 struct failure : public error {
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
122 failure() {};
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
123 failure(string r, string f, int l) :
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
124 error(r,f,l) {};
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
125 };
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
126
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
127 ///GSL_EFACTOR = 6, /* factorization failed */
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
128 struct failedFactorisation : public error {
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
129 failedFactorisation() {};
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
130 failedFactorisation(string r, string f, int l) :
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
131 error(r,f,l) {};
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
132 };
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
133
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
134 ///GSL_ESANITY = 7, /* sanity check failed - shouldn't happen */
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
135 struct failedSanity : public error {
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
136 failedSanity() {};
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
137 failedSanity(string r, string f, int l) :
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
138 error(r,f,l) {};
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
139 };
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
140
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
141 ///GSL_ENOMEM = 8, /* malloc failed */
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
142 struct outOfMemory : public error {
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
143 outOfMemory() {};
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
144 outOfMemory(string r, string f, int l) :
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
145 error(r,f,l) {};
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
146 };
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
147
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
148 ///GSL_EBADFUNC = 9, /* problem with user-supplied function */
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
149 struct badFunction : public error {
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
150 badFunction() {};
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
151 badFunction(string r, string f, int l) :
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
152 error(r,f,l) {};
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
153 };
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
154
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
155 ///GSL_ERUNAWAY = 10, /* iterative process is out of control */
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
156 struct runAway : public error {
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
157 runAway() {};
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
158 runAway(string r, string f, int l) :
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
159 error(r,f,l) {};
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
160 };
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
161
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
162 ///GSL_EMAXITER = 11, /* exceeded max number of iterations */
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
163 struct maxIterations : public error {
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
164 maxIterations() {};
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
165 maxIterations(string r, string f, int l) :
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
166 error(r,f,l) {};
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
167 };
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
168
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
169 ///GSL_EZERODIV = 12, /* tried to divide by zero */
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
170 struct divideByZero : public error {
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
171 divideByZero() {};
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
172 divideByZero(string r, string f, int l) :
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
173 error(r,f,l) {};
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
174 };
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
175
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
176 ///GSL_EBADTOL = 13, /* user specified an invalid tolerance */
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
177 struct badTolerance : public error {
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
178 badTolerance() {};
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
179 badTolerance(string r, string f, int l) :
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
180 error(r,f,l) {};
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
181 };
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
182
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
183 ///GSL_ETOL = 14, /* failed to reach the specified tolerance */
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
184 struct aboveTolerance : public error {
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
185 aboveTolerance() {};
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
186 aboveTolerance(string r, string f, int l) :
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
187 error(r,f,l) {};
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
188 };
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
189
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
190 ///GSL_EUNDRFLW = 15, /* underflow */
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
191 struct underflow : public error {
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
192 underflow() {};
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
193 underflow(string r, string f, int l) :
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
194 error(r,f,l) {};
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
195 };
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
196
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
197 ///GSL_EOVRFLW = 16, /* overflow */
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
198 struct overflow : public error {
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
199 overflow() {};
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
200 overflow(string r, string f, int l) :
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
201 error(r,f,l) {};
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
202 };
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
203
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
204 ///GSL_ELOSS = 17, /* loss of accuracy */
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
205 struct lossOfAccuracy : public error {
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
206 lossOfAccuracy() {};
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
207 lossOfAccuracy(string r, string f, int l) :
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
208 error(r,f,l) {};
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
209 };
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
210
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
211 ///GSL_EROUND = 18, /* failed because of roundoff error */
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
212 struct roundOffError : public error {
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
213 roundOffError() {};
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
214 roundOffError(string r, string f, int l) :
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
215 error(r,f,l) {};
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
216 };
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
217
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
218 ///GSL_EBADLEN = 19, /* matrix, vector lengths are not conformant */
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
219 struct inconformantSizes : public error {
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
220 inconformantSizes() {};
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
221 inconformantSizes(string r, string f, int l) :
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
222 error(r,f,l) {};
4
9d4fda54a41d Buggy, must check why interpolator assignment destroys precomputed
Jordi Guitérrez Hermoso <jordigh@gmail.com>
parents: 0
diff changeset
223 size_t n_A, m_A, n_B, m_B;
0
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
224 };
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
225
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
226 ///GSL_ENOTSQR = 20, /* matrix not square */
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
227 struct matrixNotSquare : public error {
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
228 matrixNotSquare() {};
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
229 matrixNotSquare(string r, string f, int l) :
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
230 error(r,f,l) {};
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
231 };
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
232
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
233 ///GSL_ESING = 21, /* apparent singularity detected */
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
234 struct singularityFound : public error {
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
235 singularityFound() {};
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
236 singularityFound(string r, string f, int l) :
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
237 error(r,f,l) {};
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
238 };
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
239
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
240 ///GSL_EDIVERGE = 22, /* integral or series is divergent */
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
241 struct integralOrSeriesDivergent : public error {
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
242 integralOrSeriesDivergent() {};
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
243 integralOrSeriesDivergent(string r, string f, int l) :
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
244 error(r,f,l) {};
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
245 };
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
246
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
247 ///GSL_EUNSUP = 23, /* requested feature is not supported by the hardware */
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
248 struct badHardware : public error {
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
249 badHardware() {};
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
250 badHardware(string r, string f, int l) :
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
251 error(r,f,l) {};
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
252 };
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
253
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
254 ///GSL_EUNIMPL = 24, /* requested feature not (yet) implemented */
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
255 struct notImplemented : public error {
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
256 notImplemented() {};
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
257 notImplemented(string r, string f, int l) :
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
258 error(r,f,l) {};
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
259 };
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
260
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
261 ///GSL_ECACHE = 25, /* cache limit exceeded */
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
262 struct cacheLimitExceeded : public error {
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
263 cacheLimitExceeded() {};
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
264 cacheLimitExceeded(string r, string f, int l) :
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
265 error(r,f,l) {};
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
266 };
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
267
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
268 ///GSL_ETABLE = 26, /* table limit exceeded */
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
269 struct tableLimitExceeded : public error {
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
270 tableLimitExceeded() {};
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
271 tableLimitExceeded(string r, string f, int l) :
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
272 error(r,f,l) {};
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
273 };
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
274
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
275 ///GSL_ENOPROG = 27, /* iteration is not making progress towards solution */
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
276 struct iterationNotProgressing : public error {
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
277 iterationNotProgressing() {};
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
278 iterationNotProgressing(string r, string f, int l) :
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
279 error(r,f,l) {};
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
280 };
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
281
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
282 ///GSL_ENOPROGJ = 28, /* jacobian evaluations are not improving solution */
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
283 struct jacobiansNotImprovingSolution : public error {
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
284 jacobiansNotImprovingSolution() {};
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
285 jacobiansNotImprovingSolution(string r, string f, int l) :
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
286 error(r,f,l) {};
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
287 };
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
288
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
289 ///GSL_ETOLF = 29, /* cannot reach the specified tolerance in F */
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
290 struct cannotReachToleranceInF : public error {
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
291 cannotReachToleranceInF() {};
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
292 cannotReachToleranceInF(string r, string f, int l) :
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
293 error(r,f,l) {};
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
294 };
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
295
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
296 ///GSL_ETOLX = 30, /* cannot reach the specified tolerance in X */
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
297 struct cannotReachToleranceInX : public error {
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
298 cannotReachToleranceInX() {};
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
299 cannotReachToleranceInX(string r, string f, int l) :
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
300 error(r,f,l) {};
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
301 };
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
302
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
303 ///GSL_ETOLG = 31, /* cannot reach the specified tolerance in gradient */
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
304 struct cannotReachToleranceInGradient : public error {
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
305 cannotReachToleranceInGradient() {};
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
306 cannotReachToleranceInGradient(string r, string f, int l) :
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
307 error(r,f,l) {};
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
308 };
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
309
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
310 ///GSL_EOF = 32 /* end of file */
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
311 struct endOfFile : public error {
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
312 endOfFile() {};
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
313 endOfFile(string r, string f, int l) :
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
314 error(r,f,l) {};
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
315 };
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
316
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
317 ///Exception for indices out of range.
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
318 struct indexOutOfRange : public badArgument{
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
319 size_t i,j,m,n;
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
320 indexOutOfRange() {};
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
321 indexOutOfRange(string r, string f, int l) :
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
322 badArgument(r,f,l) {};
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
323 };
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
324 }
4fa56dc7e271 Initial commit
jordi@Iris
parents:
diff changeset
325
12
6e06eb6ec448 Trivial change in include guards.
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 4
diff changeset
326 #endif //__ERROR_HPP__