annotate liboctave/numeric/base-de.h @ 20595:c1a6c31ac29a

eliminate more simple uses of error_state * ov-classdef.cc: Eliminate simple uses of error_state.
author John W. Eaton <jwe@octave.org>
date Tue, 06 Oct 2015 00:20:02 -0400
parents 5dfaaaae784f
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1843
88c5728ae7ae [project @ 1996-02-03 11:44:20 by jwe]
jwe
parents:
diff changeset
1 /*
88c5728ae7ae [project @ 1996-02-03 11:44:20 by jwe]
jwe
parents:
diff changeset
2
19731
4197fc428c7d maint: Update copyright notices for 2015.
John W. Eaton <jwe@octave.org>
parents: 17769
diff changeset
3 Copyright (C) 1996-2015 John W. Eaton
1843
88c5728ae7ae [project @ 1996-02-03 11:44:20 by jwe]
jwe
parents:
diff changeset
4
88c5728ae7ae [project @ 1996-02-03 11:44:20 by jwe]
jwe
parents:
diff changeset
5 This file is part of Octave.
88c5728ae7ae [project @ 1996-02-03 11:44:20 by jwe]
jwe
parents:
diff changeset
6
88c5728ae7ae [project @ 1996-02-03 11:44:20 by jwe]
jwe
parents:
diff changeset
7 Octave is free software; you can redistribute it and/or modify it
88c5728ae7ae [project @ 1996-02-03 11:44:20 by jwe]
jwe
parents:
diff changeset
8 under the terms of the GNU General Public License as published by the
7016
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 5307
diff changeset
9 Free Software Foundation; either version 3 of the License, or (at your
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 5307
diff changeset
10 option) any later version.
1843
88c5728ae7ae [project @ 1996-02-03 11:44:20 by jwe]
jwe
parents:
diff changeset
11
88c5728ae7ae [project @ 1996-02-03 11:44:20 by jwe]
jwe
parents:
diff changeset
12 Octave is distributed in the hope that it will be useful, but WITHOUT
88c5728ae7ae [project @ 1996-02-03 11:44:20 by jwe]
jwe
parents:
diff changeset
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
88c5728ae7ae [project @ 1996-02-03 11:44:20 by jwe]
jwe
parents:
diff changeset
14 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
88c5728ae7ae [project @ 1996-02-03 11:44:20 by jwe]
jwe
parents:
diff changeset
15 for more details.
88c5728ae7ae [project @ 1996-02-03 11:44:20 by jwe]
jwe
parents:
diff changeset
16
88c5728ae7ae [project @ 1996-02-03 11:44:20 by jwe]
jwe
parents:
diff changeset
17 You should have received a copy of the GNU General Public License
7016
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 5307
diff changeset
18 along with Octave; see the file COPYING. If not, see
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 5307
diff changeset
19 <http://www.gnu.org/licenses/>.
1843
88c5728ae7ae [project @ 1996-02-03 11:44:20 by jwe]
jwe
parents:
diff changeset
20
88c5728ae7ae [project @ 1996-02-03 11:44:20 by jwe]
jwe
parents:
diff changeset
21 */
88c5728ae7ae [project @ 1996-02-03 11:44:20 by jwe]
jwe
parents:
diff changeset
22
88c5728ae7ae [project @ 1996-02-03 11:44:20 by jwe]
jwe
parents:
diff changeset
23 #if !defined (octave_base_de_h)
88c5728ae7ae [project @ 1996-02-03 11:44:20 by jwe]
jwe
parents:
diff changeset
24 #define octave_base_de_h 1
88c5728ae7ae [project @ 1996-02-03 11:44:20 by jwe]
jwe
parents:
diff changeset
25
3995
ee0304212be0 [project @ 2002-07-17 04:32:42 by jwe]
jwe
parents: 3984
diff changeset
26 #include <string>
ee0304212be0 [project @ 2002-07-17 04:32:42 by jwe]
jwe
parents: 3984
diff changeset
27
1843
88c5728ae7ae [project @ 1996-02-03 11:44:20 by jwe]
jwe
parents:
diff changeset
28 #include "dColVector.h"
88c5728ae7ae [project @ 1996-02-03 11:44:20 by jwe]
jwe
parents:
diff changeset
29 #include "dMatrix.h"
88c5728ae7ae [project @ 1996-02-03 11:44:20 by jwe]
jwe
parents:
diff changeset
30
1879
1b43d3c06c04 [project @ 1996-02-05 16:24:56 by jwe]
jwe
parents: 1843
diff changeset
31 class
1b43d3c06c04 [project @ 1996-02-05 16:24:56 by jwe]
jwe
parents: 1843
diff changeset
32 base_diff_eqn
1843
88c5728ae7ae [project @ 1996-02-03 11:44:20 by jwe]
jwe
parents:
diff changeset
33 {
88c5728ae7ae [project @ 1996-02-03 11:44:20 by jwe]
jwe
parents:
diff changeset
34 public:
88c5728ae7ae [project @ 1996-02-03 11:44:20 by jwe]
jwe
parents:
diff changeset
35
3995
ee0304212be0 [project @ 2002-07-17 04:32:42 by jwe]
jwe
parents: 3984
diff changeset
36 base_diff_eqn (void)
ee0304212be0 [project @ 2002-07-17 04:32:42 by jwe]
jwe
parents: 3984
diff changeset
37 : x (), t (0.0), stop_time (0.0), stop_time_set (false),
11586
12df7854fa7c strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents: 11523
diff changeset
38 restart (true), integration_error (false), istate (0) { }
1843
88c5728ae7ae [project @ 1996-02-03 11:44:20 by jwe]
jwe
parents:
diff changeset
39
3995
ee0304212be0 [project @ 2002-07-17 04:32:42 by jwe]
jwe
parents: 3984
diff changeset
40 base_diff_eqn (const ColumnVector& xx, double tt)
ee0304212be0 [project @ 2002-07-17 04:32:42 by jwe]
jwe
parents: 3984
diff changeset
41 : x (xx), t (tt), stop_time (0.0), stop_time_set (false),
3997
d4091aff6468 [project @ 2002-07-17 18:00:06 by jwe]
jwe
parents: 3995
diff changeset
42 restart (true), integration_error (false), istate (0) { }
1843
88c5728ae7ae [project @ 1996-02-03 11:44:20 by jwe]
jwe
parents:
diff changeset
43
3995
ee0304212be0 [project @ 2002-07-17 04:32:42 by jwe]
jwe
parents: 3984
diff changeset
44 base_diff_eqn (const base_diff_eqn& a)
ee0304212be0 [project @ 2002-07-17 04:32:42 by jwe]
jwe
parents: 3984
diff changeset
45 : x (a.x), t (a.t), stop_time (0.0), stop_time_set (false),
3997
d4091aff6468 [project @ 2002-07-17 18:00:06 by jwe]
jwe
parents: 3995
diff changeset
46 restart (true), integration_error (false), istate (0) { }
1843
88c5728ae7ae [project @ 1996-02-03 11:44:20 by jwe]
jwe
parents:
diff changeset
47
88c5728ae7ae [project @ 1996-02-03 11:44:20 by jwe]
jwe
parents:
diff changeset
48 virtual ~base_diff_eqn (void) { }
88c5728ae7ae [project @ 1996-02-03 11:44:20 by jwe]
jwe
parents:
diff changeset
49
88c5728ae7ae [project @ 1996-02-03 11:44:20 by jwe]
jwe
parents:
diff changeset
50 base_diff_eqn& operator = (const base_diff_eqn& a)
17769
49a5a4be04a1 maint: Use GNU style coding conventions for code in liboctave/
Rik <rik@octave.org>
parents: 17744
diff changeset
51 {
49a5a4be04a1 maint: Use GNU style coding conventions for code in liboctave/
Rik <rik@octave.org>
parents: 17744
diff changeset
52 if (this != &a)
49a5a4be04a1 maint: Use GNU style coding conventions for code in liboctave/
Rik <rik@octave.org>
parents: 17744
diff changeset
53 {
49a5a4be04a1 maint: Use GNU style coding conventions for code in liboctave/
Rik <rik@octave.org>
parents: 17744
diff changeset
54 x = a.x;
49a5a4be04a1 maint: Use GNU style coding conventions for code in liboctave/
Rik <rik@octave.org>
parents: 17744
diff changeset
55 t = a.t;
49a5a4be04a1 maint: Use GNU style coding conventions for code in liboctave/
Rik <rik@octave.org>
parents: 17744
diff changeset
56 stop_time = a.stop_time;
49a5a4be04a1 maint: Use GNU style coding conventions for code in liboctave/
Rik <rik@octave.org>
parents: 17744
diff changeset
57 stop_time_set = a.stop_time_set;
49a5a4be04a1 maint: Use GNU style coding conventions for code in liboctave/
Rik <rik@octave.org>
parents: 17744
diff changeset
58 restart = a.restart;
49a5a4be04a1 maint: Use GNU style coding conventions for code in liboctave/
Rik <rik@octave.org>
parents: 17744
diff changeset
59 integration_error = a.integration_error;
49a5a4be04a1 maint: Use GNU style coding conventions for code in liboctave/
Rik <rik@octave.org>
parents: 17744
diff changeset
60 istate = a.istate;
49a5a4be04a1 maint: Use GNU style coding conventions for code in liboctave/
Rik <rik@octave.org>
parents: 17744
diff changeset
61 }
3995
ee0304212be0 [project @ 2002-07-17 04:32:42 by jwe]
jwe
parents: 3984
diff changeset
62
17769
49a5a4be04a1 maint: Use GNU style coding conventions for code in liboctave/
Rik <rik@octave.org>
parents: 17744
diff changeset
63 return *this;
49a5a4be04a1 maint: Use GNU style coding conventions for code in liboctave/
Rik <rik@octave.org>
parents: 17744
diff changeset
64 }
1843
88c5728ae7ae [project @ 1996-02-03 11:44:20 by jwe]
jwe
parents:
diff changeset
65
3984
addebffd4961 [project @ 2002-07-11 03:39:33 by jwe]
jwe
parents: 3511
diff changeset
66 void initialize (const ColumnVector& x0, double t0)
17769
49a5a4be04a1 maint: Use GNU style coding conventions for code in liboctave/
Rik <rik@octave.org>
parents: 17744
diff changeset
67 {
49a5a4be04a1 maint: Use GNU style coding conventions for code in liboctave/
Rik <rik@octave.org>
parents: 17744
diff changeset
68 x = x0;
49a5a4be04a1 maint: Use GNU style coding conventions for code in liboctave/
Rik <rik@octave.org>
parents: 17744
diff changeset
69 t = t0;
49a5a4be04a1 maint: Use GNU style coding conventions for code in liboctave/
Rik <rik@octave.org>
parents: 17744
diff changeset
70 integration_error = false;
49a5a4be04a1 maint: Use GNU style coding conventions for code in liboctave/
Rik <rik@octave.org>
parents: 17744
diff changeset
71 istate = 0;
49a5a4be04a1 maint: Use GNU style coding conventions for code in liboctave/
Rik <rik@octave.org>
parents: 17744
diff changeset
72 force_restart ();
49a5a4be04a1 maint: Use GNU style coding conventions for code in liboctave/
Rik <rik@octave.org>
parents: 17744
diff changeset
73 }
1843
88c5728ae7ae [project @ 1996-02-03 11:44:20 by jwe]
jwe
parents:
diff changeset
74
20264
5dfaaaae784f Deprecate Array::capacity() and Sparse::capacity() for numel() and nzmax().
Carnë Draug <carandraug@octave.org>
parents: 19731
diff changeset
75 octave_idx_type size (void) const { return x.numel (); }
1843
88c5728ae7ae [project @ 1996-02-03 11:44:20 by jwe]
jwe
parents:
diff changeset
76
88c5728ae7ae [project @ 1996-02-03 11:44:20 by jwe]
jwe
parents:
diff changeset
77 ColumnVector state (void) const { return x; }
88c5728ae7ae [project @ 1996-02-03 11:44:20 by jwe]
jwe
parents:
diff changeset
78
88c5728ae7ae [project @ 1996-02-03 11:44:20 by jwe]
jwe
parents:
diff changeset
79 double time (void) const { return t; }
88c5728ae7ae [project @ 1996-02-03 11:44:20 by jwe]
jwe
parents:
diff changeset
80
4277
5ab4ac522fec [project @ 2003-01-03 23:45:06 by jwe]
jwe
parents: 4049
diff changeset
81 void set_stop_time (double tt)
17769
49a5a4be04a1 maint: Use GNU style coding conventions for code in liboctave/
Rik <rik@octave.org>
parents: 17744
diff changeset
82 {
49a5a4be04a1 maint: Use GNU style coding conventions for code in liboctave/
Rik <rik@octave.org>
parents: 17744
diff changeset
83 stop_time_set = true;
49a5a4be04a1 maint: Use GNU style coding conventions for code in liboctave/
Rik <rik@octave.org>
parents: 17744
diff changeset
84 stop_time = tt;
49a5a4be04a1 maint: Use GNU style coding conventions for code in liboctave/
Rik <rik@octave.org>
parents: 17744
diff changeset
85 force_restart ();
49a5a4be04a1 maint: Use GNU style coding conventions for code in liboctave/
Rik <rik@octave.org>
parents: 17744
diff changeset
86 }
3995
ee0304212be0 [project @ 2002-07-17 04:32:42 by jwe]
jwe
parents: 3984
diff changeset
87
4049
a35a3c5d4740 [project @ 2002-08-16 08:54:31 by jwe]
jwe
parents: 3997
diff changeset
88 void clear_stop_time (void)
17769
49a5a4be04a1 maint: Use GNU style coding conventions for code in liboctave/
Rik <rik@octave.org>
parents: 17744
diff changeset
89 {
49a5a4be04a1 maint: Use GNU style coding conventions for code in liboctave/
Rik <rik@octave.org>
parents: 17744
diff changeset
90 stop_time_set = false;
49a5a4be04a1 maint: Use GNU style coding conventions for code in liboctave/
Rik <rik@octave.org>
parents: 17744
diff changeset
91 force_restart ();
49a5a4be04a1 maint: Use GNU style coding conventions for code in liboctave/
Rik <rik@octave.org>
parents: 17744
diff changeset
92 }
3995
ee0304212be0 [project @ 2002-07-17 04:32:42 by jwe]
jwe
parents: 3984
diff changeset
93
ee0304212be0 [project @ 2002-07-17 04:32:42 by jwe]
jwe
parents: 3984
diff changeset
94 virtual void force_restart (void) { restart = true; }
ee0304212be0 [project @ 2002-07-17 04:32:42 by jwe]
jwe
parents: 3984
diff changeset
95
ee0304212be0 [project @ 2002-07-17 04:32:42 by jwe]
jwe
parents: 3984
diff changeset
96 bool integration_ok (void) const { return ! integration_error; }
ee0304212be0 [project @ 2002-07-17 04:32:42 by jwe]
jwe
parents: 3984
diff changeset
97
5275
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 4277
diff changeset
98 octave_idx_type integration_state (void) const { return istate; }
3997
d4091aff6468 [project @ 2002-07-17 18:00:06 by jwe]
jwe
parents: 3995
diff changeset
99
3995
ee0304212be0 [project @ 2002-07-17 04:32:42 by jwe]
jwe
parents: 3984
diff changeset
100 virtual std::string error_message (void) const = 0;
ee0304212be0 [project @ 2002-07-17 04:32:42 by jwe]
jwe
parents: 3984
diff changeset
101
1843
88c5728ae7ae [project @ 1996-02-03 11:44:20 by jwe]
jwe
parents:
diff changeset
102 protected:
88c5728ae7ae [project @ 1996-02-03 11:44:20 by jwe]
jwe
parents:
diff changeset
103
88c5728ae7ae [project @ 1996-02-03 11:44:20 by jwe]
jwe
parents:
diff changeset
104 ColumnVector x;
3995
ee0304212be0 [project @ 2002-07-17 04:32:42 by jwe]
jwe
parents: 3984
diff changeset
105
1843
88c5728ae7ae [project @ 1996-02-03 11:44:20 by jwe]
jwe
parents:
diff changeset
106 double t;
3995
ee0304212be0 [project @ 2002-07-17 04:32:42 by jwe]
jwe
parents: 3984
diff changeset
107
ee0304212be0 [project @ 2002-07-17 04:32:42 by jwe]
jwe
parents: 3984
diff changeset
108 double stop_time;
ee0304212be0 [project @ 2002-07-17 04:32:42 by jwe]
jwe
parents: 3984
diff changeset
109
ee0304212be0 [project @ 2002-07-17 04:32:42 by jwe]
jwe
parents: 3984
diff changeset
110 bool stop_time_set;
ee0304212be0 [project @ 2002-07-17 04:32:42 by jwe]
jwe
parents: 3984
diff changeset
111
ee0304212be0 [project @ 2002-07-17 04:32:42 by jwe]
jwe
parents: 3984
diff changeset
112 bool restart;
ee0304212be0 [project @ 2002-07-17 04:32:42 by jwe]
jwe
parents: 3984
diff changeset
113
ee0304212be0 [project @ 2002-07-17 04:32:42 by jwe]
jwe
parents: 3984
diff changeset
114 bool integration_error;
3997
d4091aff6468 [project @ 2002-07-17 18:00:06 by jwe]
jwe
parents: 3995
diff changeset
115
5275
23b37da9fd5b [project @ 2005-04-08 16:07:35 by jwe]
jwe
parents: 4277
diff changeset
116 octave_idx_type istate;
1843
88c5728ae7ae [project @ 1996-02-03 11:44:20 by jwe]
jwe
parents:
diff changeset
117 };
88c5728ae7ae [project @ 1996-02-03 11:44:20 by jwe]
jwe
parents:
diff changeset
118
88c5728ae7ae [project @ 1996-02-03 11:44:20 by jwe]
jwe
parents:
diff changeset
119 #endif