comparison liboctave/LSODE.cc @ 3959:5a848097fe4a

[project @ 2002-05-24 17:58:16 by jwe]
author jwe
date Fri, 24 May 2002 17:58:17 +0000
parents dc970f5941ee
children ee0304212be0
comparison
equal deleted inserted replaced
3958:b88e01ad515e 3959:5a848097fe4a
314 case -5: // repeated convergence failures (perhaps bad jacobian 314 case -5: // repeated convergence failures (perhaps bad jacobian
315 // supplied or wrong choice of mf or tolerances). 315 // supplied or wrong choice of mf or tolerances).
316 case -4: // repeated error test failures (check all inputs). 316 case -4: // repeated error test failures (check all inputs).
317 case -3: // illegal input detected (see printed message). 317 case -3: // illegal input detected (see printed message).
318 case -2: // excess accuracy requested (tolerances too small). 318 case -2: // excess accuracy requested (tolerances too small).
319 integration_error = 1;
320 break;
321
322 case -1: // excess work done on this call (perhaps wrong mf). 319 case -1: // excess work done on this call (perhaps wrong mf).
323 (*current_liboctave_error_handler)
324 ("giving up after more than %d steps attempted in lsode",
325 step_limit ());
326 integration_error = 1; 320 integration_error = 1;
327 break; 321 break;
328 322
329 case 2: // lsode was successful 323 case 2: // lsode was successful
330 retval = x; 324 retval = x;
334 default: // Error? 328 default: // Error?
335 (*current_liboctave_error_handler) 329 (*current_liboctave_error_handler)
336 ("unrecognized value of istate returned from lsode"); 330 ("unrecognized value of istate returned from lsode");
337 break; 331 break;
338 } 332 }
333 }
334
335 return retval;
336 }
337
338 std::string
339 LSODE::error_message (void) const
340 {
341 std::string retval;
342
343 switch (istate)
344 {
345 case -13:
346 retval = "return requested in user-supplied function";
347 break;
348
349 case -6:
350 retval = "Error weight became zero during problem.\
351 (solution component i vanished, and atol or atol(i) == 0)";
352 break;
353
354 case -5:
355 retval = "repeated convergence failures (perhaps bad jacobian\
356 supplied or wrong choice of integration method or tolerances)";
357 break;
358
359 case -4:
360 retval = "repeated error test failures (check all inputs)";
361 break;
362
363 case -3:
364 retval = "invalid input detected (see printed message)";
365 break;
366
367 case -2:
368 retval = "excess accuracy requested (tolerances too small)";
369 break;
370
371 case -1:
372 retval = "excess work on this call (perhaps wrong integration method)";
373 break;
374
375 case 1:
376 retval = "prior to initial call";
377 break;
378
379 case 2:
380 retval = "successful exit";
381 break;
382
383 case 3:
384 retval = "prior to continuation call with modified parameters";
385 break;
386
387 default:
388 retval = "unknown error state";
389 break;
339 } 390 }
340 391
341 return retval; 392 return retval;
342 } 393 }
343 394