Mercurial > octave
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 { |