Mercurial > hg > octave-nkf
annotate examples/code/unwinddemo.cc @ 20811:a22d8a2eb0e5
fix adaptive strategy in ode solvers.
* script/ode/ode45.m: remove unused option OutputSave
* script/ode/private/integrate_adaptive.m: rewrite algorithm
to be more compatible.
* script/ode/private/runge_kutta_45_dorpri.m: use kahan summation
for time increment.
author | Carlo de Falco <carlo.defalco@polimi.it> |
---|---|
date | Sun, 11 Oct 2015 18:44:58 +0200 |
parents | 2f8500ca91d3 |
children |
rev | line source |
---|---|
6572 | 1 #include <octave/oct.h> |
2 #include <octave/unwind-prot.h> | |
3 | |
4 void | |
16867
be41c30bcb44
Re-write documentation and all examples of dynamically linked functions.
Rik <rik@octave.org>
parents:
14855
diff
changeset
|
5 my_err_handler (const char *fmt, ...) |
6572 | 6 { |
7 // Do nothing!! | |
8 } | |
9 | |
19607
95c533ed464b
use warning IDs for all warnings in liboctave
John W. Eaton <jwe@octave.org>
parents:
19225
diff
changeset
|
10 void |
95c533ed464b
use warning IDs for all warnings in liboctave
John W. Eaton <jwe@octave.org>
parents:
19225
diff
changeset
|
11 my_err_with_id_handler (const char *id, const char *fmt, ...) |
95c533ed464b
use warning IDs for all warnings in liboctave
John W. Eaton <jwe@octave.org>
parents:
19225
diff
changeset
|
12 { |
95c533ed464b
use warning IDs for all warnings in liboctave
John W. Eaton <jwe@octave.org>
parents:
19225
diff
changeset
|
13 // Do nothing!! |
95c533ed464b
use warning IDs for all warnings in liboctave
John W. Eaton <jwe@octave.org>
parents:
19225
diff
changeset
|
14 } |
95c533ed464b
use warning IDs for all warnings in liboctave
John W. Eaton <jwe@octave.org>
parents:
19225
diff
changeset
|
15 |
6572 | 16 DEFUN_DLD (unwinddemo, args, nargout, "Unwind Demo") |
17 { | |
20753
2f8500ca91d3
eliminate error_state from example files
John W. Eaton <jwe@octave.org>
parents:
19607
diff
changeset
|
18 if (args.length () < 2) |
6572 | 19 print_usage (); |
20753
2f8500ca91d3
eliminate error_state from example files
John W. Eaton <jwe@octave.org>
parents:
19607
diff
changeset
|
20 |
2f8500ca91d3
eliminate error_state from example files
John W. Eaton <jwe@octave.org>
parents:
19607
diff
changeset
|
21 NDArray a = args(0).array_value (); |
2f8500ca91d3
eliminate error_state from example files
John W. Eaton <jwe@octave.org>
parents:
19607
diff
changeset
|
22 NDArray b = args(1).array_value (); |
6572 | 23 |
20753
2f8500ca91d3
eliminate error_state from example files
John W. Eaton <jwe@octave.org>
parents:
19607
diff
changeset
|
24 // Declare unwind_protect frame which lasts as long as |
2f8500ca91d3
eliminate error_state from example files
John W. Eaton <jwe@octave.org>
parents:
19607
diff
changeset
|
25 // the variable frame has scope. |
2f8500ca91d3
eliminate error_state from example files
John W. Eaton <jwe@octave.org>
parents:
19607
diff
changeset
|
26 unwind_protect frame; |
2f8500ca91d3
eliminate error_state from example files
John W. Eaton <jwe@octave.org>
parents:
19607
diff
changeset
|
27 frame.add_fcn (set_liboctave_warning_handler, |
2f8500ca91d3
eliminate error_state from example files
John W. Eaton <jwe@octave.org>
parents:
19607
diff
changeset
|
28 current_liboctave_warning_handler); |
19607
95c533ed464b
use warning IDs for all warnings in liboctave
John W. Eaton <jwe@octave.org>
parents:
19225
diff
changeset
|
29 |
20753
2f8500ca91d3
eliminate error_state from example files
John W. Eaton <jwe@octave.org>
parents:
19607
diff
changeset
|
30 frame.add_fcn (set_liboctave_warning_with_id_handler, |
2f8500ca91d3
eliminate error_state from example files
John W. Eaton <jwe@octave.org>
parents:
19607
diff
changeset
|
31 current_liboctave_warning_with_id_handler); |
19607
95c533ed464b
use warning IDs for all warnings in liboctave
John W. Eaton <jwe@octave.org>
parents:
19225
diff
changeset
|
32 |
20753
2f8500ca91d3
eliminate error_state from example files
John W. Eaton <jwe@octave.org>
parents:
19607
diff
changeset
|
33 set_liboctave_warning_handler (my_err_handler); |
2f8500ca91d3
eliminate error_state from example files
John W. Eaton <jwe@octave.org>
parents:
19607
diff
changeset
|
34 set_liboctave_warning_with_id_handler (my_err_with_id_handler); |
19607
95c533ed464b
use warning IDs for all warnings in liboctave
John W. Eaton <jwe@octave.org>
parents:
19225
diff
changeset
|
35 |
20753
2f8500ca91d3
eliminate error_state from example files
John W. Eaton <jwe@octave.org>
parents:
19607
diff
changeset
|
36 return octave_value (quotient (a, b)); |
6572 | 37 } |