comparison liboctave/numeric/LSODE.cc @ 30046:b3717fd85e49

maint: use "m_" prefix for member variables ODE/DAE classes in liboctave/numeric. * build-aux/mk-opts.pl: Rename member variable to "m_reset" used by all *-opts.in files. * DAEFunc.h, DASPK-opts.in, DASPK.cc, DASPK.h, DASRT-opts.in, DASRT.cc, DASRT.h, DASSL-opts.in, DASSL.cc, DASSL.h, LSODE-opts.in, LSODE.cc, LSODE.h: use "m_" prefix for member variables ODE/DAE classes.
author Rik <rik@octave.org>
date Wed, 25 Aug 2021 15:38:23 -0700
parents 0a5b15007766
children 02e28f7e4d04
comparison
equal deleted inserted replaced
30045:849bd0f1129c 30046:b3717fd85e49
103 { 103 {
104 ColumnVector retval; 104 ColumnVector retval;
105 105
106 static F77_INT nn = 0; 106 static F77_INT nn = 0;
107 107
108 if (! initialized || restart || ODEFunc::reset || LSODE_options::reset) 108 if (! m_initialized || restart || ODEFunc::reset || LSODE_options::m_reset)
109 { 109 {
110 integration_error = false; 110 integration_error = false;
111 111
112 initialized = true; 112 m_initialized = true;
113 113
114 istate = 1; 114 istate = 1;
115 115
116 F77_INT n = octave::to_f77_int (size ()); 116 F77_INT n = octave::to_f77_int (size ());
117 117
122 if (integration_method () == "stiff") 122 if (integration_method () == "stiff")
123 { 123 {
124 max_maxord = 5; 124 max_maxord = 5;
125 125
126 if (jac) 126 if (jac)
127 method_flag = 21; 127 m_method_flag = 21;
128 else 128 else
129 method_flag = 22; 129 m_method_flag = 22;
130 130
131 liw = 20 + n; 131 m_liw = 20 + n;
132 lrw = 22 + n * (9 + n); 132 m_lrw = 22 + n * (9 + n);
133 } 133 }
134 else 134 else
135 { 135 {
136 max_maxord = 12; 136 max_maxord = 12;
137 137
138 method_flag = 10; 138 m_method_flag = 10;
139 139
140 liw = 20; 140 m_liw = 20;
141 lrw = 22 + 16 * n; 141 m_lrw = 22 + 16 * n;
142 } 142 }
143 143
144 iwork.resize (dim_vector (liw, 1)); 144 m_iwork.resize (dim_vector (m_liw, 1));
145 145
146 for (F77_INT i = 4; i < 9; i++) 146 for (F77_INT i = 4; i < 9; i++)
147 iwork(i) = 0; 147 m_iwork(i) = 0;
148 148
149 rwork.resize (dim_vector (lrw, 1)); 149 m_rwork.resize (dim_vector (m_lrw, 1));
150 150
151 for (F77_INT i = 4; i < 9; i++) 151 for (F77_INT i = 4; i < 9; i++)
152 rwork(i) = 0; 152 m_rwork(i) = 0;
153 153
154 octave_idx_type maxord = maximum_order (); 154 octave_idx_type maxord = maximum_order ();
155 155
156 if (maxord >= 0) 156 if (maxord >= 0)
157 { 157 {
158 if (maxord > 0 && maxord <= max_maxord) 158 if (maxord > 0 && maxord <= max_maxord)
159 { 159 {
160 iwork(4) = octave::to_f77_int (maxord); 160 m_iwork(4) = octave::to_f77_int (maxord);
161 iopt = 1; 161 m_iopt = 1;
162 } 162 }
163 else 163 else
164 { 164 {
165 // FIXME: Should this be a warning? 165 // FIXME: Should this be a warning?
166 (*current_liboctave_error_handler) 166 (*current_liboctave_error_handler)
170 } 170 }
171 } 171 }
172 172
173 if (stop_time_set) 173 if (stop_time_set)
174 { 174 {
175 itask = 4; 175 m_itask = 4;
176 rwork(0) = stop_time; 176 m_rwork(0) = stop_time;
177 iopt = 1; 177 m_iopt = 1;
178 } 178 }
179 else 179 else
180 { 180 {
181 itask = 1; 181 m_itask = 1;
182 } 182 }
183 183
184 restart = false; 184 restart = false;
185 185
186 // ODEFunc 186 // ODEFunc
208 208
209 ODEFunc::reset = false; 209 ODEFunc::reset = false;
210 210
211 // LSODE_options 211 // LSODE_options
212 212
213 rel_tol = relative_tolerance (); 213 m_rel_tol = relative_tolerance ();
214 abs_tol = absolute_tolerance (); 214 m_abs_tol = absolute_tolerance ();
215 215
216 F77_INT abs_tol_len = octave::to_f77_int (abs_tol.numel ()); 216 F77_INT abs_tol_len = octave::to_f77_int (m_abs_tol.numel ());
217 217
218 if (abs_tol_len == 1) 218 if (abs_tol_len == 1)
219 itol = 1; 219 m_itol = 1;
220 else if (abs_tol_len == n) 220 else if (abs_tol_len == n)
221 itol = 2; 221 m_itol = 2;
222 else 222 else
223 { 223 {
224 // FIXME: Should this be a warning? 224 // FIXME: Should this be a warning?
225 (*current_liboctave_error_handler) 225 (*current_liboctave_error_handler)
226 ("lsode: inconsistent sizes for state and absolute tolerance vectors"); 226 ("lsode: inconsistent sizes for state and absolute tolerance vectors");
230 } 230 }
231 231
232 double iss = initial_step_size (); 232 double iss = initial_step_size ();
233 if (iss >= 0.0) 233 if (iss >= 0.0)
234 { 234 {
235 rwork(4) = iss; 235 m_rwork(4) = iss;
236 iopt = 1; 236 m_iopt = 1;
237 } 237 }
238 238
239 double maxss = maximum_step_size (); 239 double maxss = maximum_step_size ();
240 if (maxss >= 0.0) 240 if (maxss >= 0.0)
241 { 241 {
242 rwork(5) = maxss; 242 m_rwork(5) = maxss;
243 iopt = 1; 243 m_iopt = 1;
244 } 244 }
245 245
246 double minss = minimum_step_size (); 246 double minss = minimum_step_size ();
247 if (minss >= 0.0) 247 if (minss >= 0.0)
248 { 248 {
249 rwork(6) = minss; 249 m_rwork(6) = minss;
250 iopt = 1; 250 m_iopt = 1;
251 } 251 }
252 252
253 F77_INT sl = octave::to_f77_int (step_limit ()); 253 F77_INT sl = octave::to_f77_int (step_limit ());
254 if (sl > 0) 254 if (sl > 0)
255 { 255 {
256 iwork(5) = sl; 256 m_iwork(5) = sl;
257 iopt = 1; 257 m_iopt = 1;
258 } 258 }
259 259
260 LSODE_options::reset = false; 260 LSODE_options::m_reset = false;
261 } 261 }
262 262
263 double *px = x.fortran_vec (); 263 double *px = x.fortran_vec ();
264 264
265 double *pabs_tol = abs_tol.fortran_vec (); 265 double *pabs_tol = m_abs_tol.fortran_vec ();
266 266
267 F77_INT *piwork = iwork.fortran_vec (); 267 F77_INT *piwork = m_iwork.fortran_vec ();
268 double *prwork = rwork.fortran_vec (); 268 double *prwork = m_rwork.fortran_vec ();
269 269
270 F77_INT tmp_istate = octave::to_f77_int (istate); 270 F77_INT tmp_istate = octave::to_f77_int (istate);
271 271
272 F77_XFCN (dlsode, DLSODE, (lsode_f, nn, px, t, tout, itol, rel_tol, 272 F77_XFCN (dlsode, DLSODE, (lsode_f, nn, px, t, tout, m_itol, m_rel_tol,
273 pabs_tol, itask, tmp_istate, iopt, prwork, lrw, 273 pabs_tol, m_itask, tmp_istate, m_iopt, prwork,
274 piwork, liw, lsode_j, method_flag)); 274 m_lrw, piwork, m_liw, lsode_j, m_method_flag));
275 275
276 istate = tmp_istate; 276 istate = tmp_istate;
277 277
278 switch (istate) 278 switch (istate)
279 { 279 {