GNU Octave  4.2.1
A high-level interpreted language, primarily intended for numerical computations, mostly compatible with Matlab
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
DASPK-opts.cc
Go to the documentation of this file.
1 // DO NOT EDIT!
2 // Generated automatically from ../liboctave/numeric/DASPK-opts.in.
3 
4 // This file should not include config.h. It is only included in other
5 // C++ source files that should have included config.h before including
6 // this file.
7 
8 #include <iomanip>
9 #include <iostream>
10 
11 #include "DASPK-opts.h"
12 
13 #include "defun.h"
14 #include "pr-output.h"
15 
16 #include "ovl.h"
17 #include "utils.h"
18 #include "pager.h"
19 
21 
22 #define MAX_TOKENS 6
23 
25 {
26  const char *keyword;
27  const char *kw_tok[MAX_TOKENS + 1];
28  int min_len[MAX_TOKENS + 1];
30 };
31 
32 #define NUM_OPTIONS 13
33 
35 {
36  { "absolute tolerance",
37  { "absolute", "tolerance", 0, 0, 0, 0, 0, },
38  { 2, 0, 0, 0, 0, 0, 0, }, 1, },
39 
40  { "relative tolerance",
41  { "relative", "tolerance", 0, 0, 0, 0, 0, },
42  { 1, 0, 0, 0, 0, 0, 0, }, 1, },
43 
44  { "compute consistent initial condition",
45  { "compute", "consistent", "initial", "condition", 0, 0, 0, },
46  { 1, 0, 0, 0, 0, 0, 0, }, 1, },
47 
48  { "use initial condition heuristics",
49  { "use", "initial", "condition", "heuristics", 0, 0, 0, },
50  { 1, 0, 0, 0, 0, 0, 0, }, 1, },
51 
52  { "initial condition heuristics",
53  { "initial", "condition", "heuristics", 0, 0, 0, 0, },
54  { 3, 1, 0, 0, 0, 0, 0, }, 2, },
55 
56  { "print initial condition info",
57  { "print", "initial", "condition", "info", 0, 0, 0, },
58  { 1, 0, 0, 0, 0, 0, 0, }, 1, },
59 
60  { "exclude algebraic variables from error test",
61  { "exclude", "algebraic", "variables", "from", "error", "test", 0, },
62  { 2, 0, 0, 0, 0, 0, 0, }, 1, },
63 
64  { "algebraic variables",
65  { "algebraic", "variables", 0, 0, 0, 0, 0, },
66  { 2, 0, 0, 0, 0, 0, 0, }, 1, },
67 
68  { "enforce inequality constraints",
69  { "enforce", "inequality", "constraints", 0, 0, 0, 0, },
70  { 2, 0, 0, 0, 0, 0, 0, }, 1, },
71 
72  { "inequality constraint types",
73  { "inequality", "constraint", "types", 0, 0, 0, 0, },
74  { 3, 0, 0, 0, 0, 0, 0, }, 1, },
75 
76  { "initial step size",
77  { "initial", "step", "size", 0, 0, 0, 0, },
78  { 3, 1, 0, 0, 0, 0, 0, }, 2, },
79 
80  { "maximum order",
81  { "maximum", "order", 0, 0, 0, 0, 0, },
82  { 1, 1, 0, 0, 0, 0, 0, }, 2, },
83 
84  { "maximum step size",
85  { "maximum", "step", "size", 0, 0, 0, 0, },
86  { 1, 1, 0, 0, 0, 0, 0, }, 2, },
87 };
88 
89 static void
90 print_DASPK_options (std::ostream& os)
91 {
92  std::ostringstream buf;
93 
94  os << "\n"
95  << "Options for DASPK include:\n\n"
96  << " keyword value\n"
97  << " ------- -----\n";
98 
100 
101  {
102  os << " "
103  << std::setiosflags (std::ios::left) << std::setw (50)
104  << list[0].keyword
105  << std::resetiosflags (std::ios::left)
106  << " ";
107 
108  Array<double> val = daspk_opts.absolute_tolerance ();
109 
110  if (val.numel () == 1)
111  {
112  os << val(0) << "\n";
113  }
114  else
115  {
116  os << "\n\n";
117  Matrix tmp = Matrix (ColumnVector (val));
118  octave_print_internal (os, tmp, false, 2);
119  os << "\n\n";
120  }
121  }
122 
123  {
124  os << " "
125  << std::setiosflags (std::ios::left) << std::setw (50)
126  << list[1].keyword
127  << std::resetiosflags (std::ios::left)
128  << " ";
129 
130  Array<double> val = daspk_opts.relative_tolerance ();
131 
132  if (val.numel () == 1)
133  {
134  os << val(0) << "\n";
135  }
136  else
137  {
138  os << "\n\n";
139  Matrix tmp = Matrix (ColumnVector (val));
140  octave_print_internal (os, tmp, false, 2);
141  os << "\n\n";
142  }
143  }
144 
145  {
146  os << " "
147  << std::setiosflags (std::ios::left) << std::setw (50)
148  << list[2].keyword
149  << std::resetiosflags (std::ios::left)
150  << " ";
151 
152  int val = daspk_opts.compute_consistent_initial_condition ();
153 
154  os << val << "\n";
155  }
156 
157  {
158  os << " "
159  << std::setiosflags (std::ios::left) << std::setw (50)
160  << list[3].keyword
161  << std::resetiosflags (std::ios::left)
162  << " ";
163 
164  int val = daspk_opts.use_initial_condition_heuristics ();
165 
166  os << val << "\n";
167  }
168 
169  {
170  os << " "
171  << std::setiosflags (std::ios::left) << std::setw (50)
172  << list[4].keyword
173  << std::resetiosflags (std::ios::left)
174  << " ";
175 
177 
178  if (val.numel () == 1)
179  {
180  os << val(0) << "\n";
181  }
182  else
183  {
184  os << "\n\n";
185  Matrix tmp = Matrix (ColumnVector (val));
186  octave_print_internal (os, tmp, false, 2);
187  os << "\n\n";
188  }
189  }
190 
191  {
192  os << " "
193  << std::setiosflags (std::ios::left) << std::setw (50)
194  << list[5].keyword
195  << std::resetiosflags (std::ios::left)
196  << " ";
197 
198  int val = daspk_opts.print_initial_condition_info ();
199 
200  os << val << "\n";
201  }
202 
203  {
204  os << " "
205  << std::setiosflags (std::ios::left) << std::setw (50)
206  << list[6].keyword
207  << std::resetiosflags (std::ios::left)
208  << " ";
209 
211 
212  os << val << "\n";
213  }
214 
215  {
216  os << " "
217  << std::setiosflags (std::ios::left) << std::setw (50)
218  << list[7].keyword
219  << std::resetiosflags (std::ios::left)
220  << " ";
221 
223 
224  if (val.numel () == 1)
225  {
226  os << val(0) << "\n";
227  }
228  else
229  {
230  os << "\n\n";
231  octave_idx_type len = val.numel ();
232  Matrix tmp (len, 1);
233  for (octave_idx_type i = 0; i < len; i++)
234  tmp(i,0) = val(i);
235  octave_print_internal (os, tmp, false, 2);
236  os << "\n\n";
237  }
238  }
239 
240  {
241  os << " "
242  << std::setiosflags (std::ios::left) << std::setw (50)
243  << list[8].keyword
244  << std::resetiosflags (std::ios::left)
245  << " ";
246 
247  int val = daspk_opts.enforce_inequality_constraints ();
248 
249  os << val << "\n";
250  }
251 
252  {
253  os << " "
254  << std::setiosflags (std::ios::left) << std::setw (50)
255  << list[9].keyword
256  << std::resetiosflags (std::ios::left)
257  << " ";
258 
260 
261  if (val.numel () == 1)
262  {
263  os << val(0) << "\n";
264  }
265  else
266  {
267  os << "\n\n";
268  octave_idx_type len = val.numel ();
269  Matrix tmp (len, 1);
270  for (octave_idx_type i = 0; i < len; i++)
271  tmp(i,0) = val(i);
272  octave_print_internal (os, tmp, false, 2);
273  os << "\n\n";
274  }
275  }
276 
277  {
278  os << " "
279  << std::setiosflags (std::ios::left) << std::setw (50)
280  << list[10].keyword
281  << std::resetiosflags (std::ios::left)
282  << " ";
283 
284  double val = daspk_opts.initial_step_size ();
285 
286  os << val << "\n";
287  }
288 
289  {
290  os << " "
291  << std::setiosflags (std::ios::left) << std::setw (50)
292  << list[11].keyword
293  << std::resetiosflags (std::ios::left)
294  << " ";
295 
296  int val = daspk_opts.maximum_order ();
297 
298  os << val << "\n";
299  }
300 
301  {
302  os << " "
303  << std::setiosflags (std::ios::left) << std::setw (50)
304  << list[12].keyword
305  << std::resetiosflags (std::ios::left)
306  << " ";
307 
308  double val = daspk_opts.maximum_step_size ();
309 
310  os << val << "\n";
311  }
312 
313  os << "\n";
314 }
315 
316 static void
318 {
320 
321  if (keyword_almost_match (list[0].kw_tok, list[0].min_len,
322  keyword, list[0].min_toks_to_match, MAX_TOKENS))
323  {
324  Array<double> tmp = val.vector_value ();
325 
326  daspk_opts.set_absolute_tolerance (tmp);
327  }
328  else if (keyword_almost_match (list[1].kw_tok, list[1].min_len,
329  keyword, list[1].min_toks_to_match, MAX_TOKENS))
330  {
331  Array<double> tmp = val.vector_value ();
332 
333  daspk_opts.set_relative_tolerance (tmp);
334  }
335  else if (keyword_almost_match (list[2].kw_tok, list[2].min_len,
336  keyword, list[2].min_toks_to_match, MAX_TOKENS))
337  {
338  int tmp = val.int_value ();
339 
341  }
342  else if (keyword_almost_match (list[3].kw_tok, list[3].min_len,
343  keyword, list[3].min_toks_to_match, MAX_TOKENS))
344  {
345  int tmp = val.int_value ();
346 
347  daspk_opts.set_use_initial_condition_heuristics (tmp);
348  }
349  else if (keyword_almost_match (list[4].kw_tok, list[4].min_len,
350  keyword, list[4].min_toks_to_match, MAX_TOKENS))
351  {
352  Array<double> tmp = val.vector_value ();
353 
354  daspk_opts.set_initial_condition_heuristics (tmp);
355  }
356  else if (keyword_almost_match (list[5].kw_tok, list[5].min_len,
357  keyword, list[5].min_toks_to_match, MAX_TOKENS))
358  {
359  int tmp = val.int_value ();
360 
361  daspk_opts.set_print_initial_condition_info (tmp);
362  }
363  else if (keyword_almost_match (list[6].kw_tok, list[6].min_len,
364  keyword, list[6].min_toks_to_match, MAX_TOKENS))
365  {
366  int tmp = val.int_value ();
367 
369  }
370  else if (keyword_almost_match (list[7].kw_tok, list[7].min_len,
371  keyword, list[7].min_toks_to_match, MAX_TOKENS))
372  {
374 
375  daspk_opts.set_algebraic_variables (tmp);
376  }
377  else if (keyword_almost_match (list[8].kw_tok, list[8].min_len,
378  keyword, list[8].min_toks_to_match, MAX_TOKENS))
379  {
380  int tmp = val.int_value ();
381 
382  daspk_opts.set_enforce_inequality_constraints (tmp);
383  }
384  else if (keyword_almost_match (list[9].kw_tok, list[9].min_len,
385  keyword, list[9].min_toks_to_match, MAX_TOKENS))
386  {
388 
389  daspk_opts.set_inequality_constraint_types (tmp);
390  }
391  else if (keyword_almost_match (list[10].kw_tok, list[10].min_len,
392  keyword, list[10].min_toks_to_match, MAX_TOKENS))
393  {
394  double tmp = val.double_value ();
395 
396  daspk_opts.set_initial_step_size (tmp);
397  }
398  else if (keyword_almost_match (list[11].kw_tok, list[11].min_len,
399  keyword, list[11].min_toks_to_match, MAX_TOKENS))
400  {
401  int tmp = val.int_value ();
402 
403  daspk_opts.set_maximum_order (tmp);
404  }
405  else if (keyword_almost_match (list[12].kw_tok, list[12].min_len,
406  keyword, list[12].min_toks_to_match, MAX_TOKENS))
407  {
408  double tmp = val.double_value ();
409 
410  daspk_opts.set_maximum_step_size (tmp);
411  }
412  else
413  {
414  warning ("daspk_options: no match for `%s'", keyword.c_str ());
415  }
416 }
417 
418 static octave_value_list
420 {
422 
424 
425  if (keyword_almost_match (list[0].kw_tok, list[0].min_len,
426  keyword, list[0].min_toks_to_match, MAX_TOKENS))
427  {
428  Array<double> val = daspk_opts.absolute_tolerance ();
429 
430  if (val.numel () == 1)
431  {
432  retval = val(0);
433  }
434  else
435  {
436  retval = ColumnVector (val);
437  }
438  }
439  else if (keyword_almost_match (list[1].kw_tok, list[1].min_len,
440  keyword, list[1].min_toks_to_match, MAX_TOKENS))
441  {
442  Array<double> val = daspk_opts.relative_tolerance ();
443 
444  if (val.numel () == 1)
445  {
446  retval = val(0);
447  }
448  else
449  {
450  retval = ColumnVector (val);
451  }
452  }
453  else if (keyword_almost_match (list[2].kw_tok, list[2].min_len,
454  keyword, list[2].min_toks_to_match, MAX_TOKENS))
455  {
456  int val = daspk_opts.compute_consistent_initial_condition ();
457 
458  retval = static_cast<double> (val);
459  }
460  else if (keyword_almost_match (list[3].kw_tok, list[3].min_len,
461  keyword, list[3].min_toks_to_match, MAX_TOKENS))
462  {
463  int val = daspk_opts.use_initial_condition_heuristics ();
464 
465  retval = static_cast<double> (val);
466  }
467  else if (keyword_almost_match (list[4].kw_tok, list[4].min_len,
468  keyword, list[4].min_toks_to_match, MAX_TOKENS))
469  {
471 
472  if (val.numel () == 1)
473  {
474  retval = val(0);
475  }
476  else
477  {
478  retval = ColumnVector (val);
479  }
480  }
481  else if (keyword_almost_match (list[5].kw_tok, list[5].min_len,
482  keyword, list[5].min_toks_to_match, MAX_TOKENS))
483  {
484  int val = daspk_opts.print_initial_condition_info ();
485 
486  retval = static_cast<double> (val);
487  }
488  else if (keyword_almost_match (list[6].kw_tok, list[6].min_len,
489  keyword, list[6].min_toks_to_match, MAX_TOKENS))
490  {
492 
493  retval = static_cast<double> (val);
494  }
495  else if (keyword_almost_match (list[7].kw_tok, list[7].min_len,
496  keyword, list[7].min_toks_to_match, MAX_TOKENS))
497  {
499 
500  if (val.numel () == 1)
501  {
502  retval = static_cast<double> (val(0));
503  }
504  else
505  {
506  octave_idx_type len = val.numel ();
507  ColumnVector tmp (len);
508  for (octave_idx_type i = 0; i < len; i++)
509  tmp(i) = val(i);
510  retval = tmp;
511  }
512  }
513  else if (keyword_almost_match (list[8].kw_tok, list[8].min_len,
514  keyword, list[8].min_toks_to_match, MAX_TOKENS))
515  {
516  int val = daspk_opts.enforce_inequality_constraints ();
517 
518  retval = static_cast<double> (val);
519  }
520  else if (keyword_almost_match (list[9].kw_tok, list[9].min_len,
521  keyword, list[9].min_toks_to_match, MAX_TOKENS))
522  {
524 
525  if (val.numel () == 1)
526  {
527  retval = static_cast<double> (val(0));
528  }
529  else
530  {
531  octave_idx_type len = val.numel ();
532  ColumnVector tmp (len);
533  for (octave_idx_type i = 0; i < len; i++)
534  tmp(i) = val(i);
535  retval = tmp;
536  }
537  }
538  else if (keyword_almost_match (list[10].kw_tok, list[10].min_len,
539  keyword, list[10].min_toks_to_match, MAX_TOKENS))
540  {
541  double val = daspk_opts.initial_step_size ();
542 
543  retval = val;
544  }
545  else if (keyword_almost_match (list[11].kw_tok, list[11].min_len,
546  keyword, list[11].min_toks_to_match, MAX_TOKENS))
547  {
548  int val = daspk_opts.maximum_order ();
549 
550  retval = static_cast<double> (val);
551  }
552  else if (keyword_almost_match (list[12].kw_tok, list[12].min_len,
553  keyword, list[12].min_toks_to_match, MAX_TOKENS))
554  {
555  double val = daspk_opts.maximum_step_size ();
556 
557  retval = val;
558  }
559  else
560  {
561  warning ("daspk_options: no match for `%s'", keyword.c_str ());
562  }
563 
564  return retval;
565 }
566 
567 DEFUN (daspk_options, args, ,
568  doc: /* -*- texinfo -*-
569 @deftypefn {} {} daspk_options ()
570 @deftypefnx {} {val =} daspk_options (@var{opt})
571 @deftypefnx {} {} daspk_options (@var{opt}, @var{val})
572 Query or set options for the function @code{daspk}.
573 
574 When called with no arguments, the names of all available options and
575 their current values are displayed.
576 
577 Given one argument, return the value of the option @var{opt}.
578 
579 When called with two arguments, @code{daspk_options} sets the option
580 @var{opt} to value @var{val}.
581 
582 Options include
583 
584 @table @asis
585 @item @qcode{"absolute tolerance"}
586 Absolute tolerance. May be either vector or scalar. If a vector, it
587 must match the dimension of the state vector, and the relative
588 tolerance must also be a vector of the same length.
589 
590 @item @qcode{"relative tolerance"}
591 Relative tolerance. May be either vector or scalar. If a vector, it
592 must match the dimension of the state vector, and the absolute
593 tolerance must also be a vector of the same length.
594 
595 The local error test applied at each integration step is
596 
597 @example
598 @group
599  abs (local error in x(i))
600  <= rtol(i) * abs (Y(i)) + atol(i)
601 @end group
602 @end example
603 
604 @item @qcode{"compute consistent initial condition"}
605 Denoting the differential variables in the state vector by @samp{Y_d}
606 and the algebraic variables by @samp{Y_a}, @code{ddaspk} can solve
607 one of two initialization problems:
608 
609 @enumerate
610 @item Given Y_d, calculate Y_a and Y'_d
611 
612 @item Given Y', calculate Y.
613 @end enumerate
614 
615 In either case, initial values for the given components are input, and
616 initial guesses for the unknown components must also be provided as
617 input. Set this option to 1 to solve the first problem, or 2 to solve
618 the second (the default is 0, so you must provide a set of
619 initial conditions that are consistent).
620 
621 If this option is set to a nonzero value, you must also set the
622 @qcode{"algebraic variables"} option to declare which variables in the
623 problem are algebraic.
624 
625 @item @qcode{"use initial condition heuristics"}
626 Set to a nonzero value to use the initial condition heuristics options
627 described below.
628 
629 @item @qcode{"initial condition heuristics"}
630 A vector of the following parameters that can be used to control the
631 initial condition calculation.
632 
633 @table @code
634 @item MXNIT
635 Maximum number of Newton iterations (default is 5).
636 
637 @item MXNJ
638 Maximum number of Jacobian evaluations (default is 6).
639 
640 @item MXNH
641 Maximum number of values of the artificial stepsize parameter to be
642 tried if the @qcode{"compute consistent initial condition"} option has
643 been set to 1 (default is 5).
644 
645 Note that the maximum total number of Newton iterations allowed is
646 @code{MXNIT*MXNJ*MXNH} if the @qcode{"compute consistent initial
647 condition"} option has been set to 1 and @code{MXNIT*MXNJ} if it is
648 set to 2.
649 
650 @item LSOFF
651 Set to a nonzero value to disable the linesearch algorithm (default is
652 0).
653 
654 @item STPTOL
655 Minimum scaled step in linesearch algorithm (default is eps^(2/3)).
656 
657 @item EPINIT
658 Swing factor in the Newton iteration convergence test. The test is
659 applied to the residual vector, premultiplied by the approximate
660 Jacobian. For convergence, the weighted RMS norm of this vector
661 (scaled by the error weights) must be less than @code{EPINIT*EPCON},
662 where @code{EPCON} = 0.33 is the analogous test constant used in the
663 time steps. The default is @code{EPINIT} = 0.01.
664 @end table
665 
666 @item @qcode{"print initial condition info"}
667 Set this option to a nonzero value to display detailed information
668 about the initial condition calculation (default is 0).
669 
670 @item @qcode{"exclude algebraic variables from error test"}
671 Set to a nonzero value to exclude algebraic variables from the error
672 test. You must also set the @qcode{"algebraic variables"} option to
673 declare which variables in the problem are algebraic (default is 0).
674 
675 @item @qcode{"algebraic variables"}
676 A vector of the same length as the state vector. A nonzero element
677 indicates that the corresponding element of the state vector is an
678 algebraic variable (i.e., its derivative does not appear explicitly
679 in the equation set).
680 
681 This option is required by the
682 @qcode{"compute consistent initial condition"} and
683 @qcode{"exclude algebraic variables from error test"} options.
684 
685 @item @qcode{"enforce inequality constraints"}
686 Set to one of the following values to enforce the inequality
687 constraints specified by the @qcode{"inequality constraint types"}
688 option (default is 0).
689 
690 @enumerate
691 @item To have constraint checking only in the initial condition calculation.
692 
693 @item To enforce constraint checking during the integration.
694 
695 @item To enforce both options 1 and 2.
696 @end enumerate
697 
698 @item @qcode{"inequality constraint types"}
699 A vector of the same length as the state specifying the type of
700 inequality constraint. Each element of the vector corresponds to an
701 element of the state and should be assigned one of the following
702 codes
703 
704 @table @asis
705 @item -2
706 Less than zero.
707 
708 @item -1
709 Less than or equal to zero.
710 
711 @item 0
712 Not constrained.
713 
714 @item 1
715 Greater than or equal to zero.
716 
717 @item 2
718 Greater than zero.
719 @end table
720 
721 This option only has an effect if the
722 @qcode{"enforce inequality constraints"} option is nonzero.
723 
724 @item @qcode{"initial step size"}
725 Differential-algebraic problems may occasionally suffer from severe
726 scaling difficulties on the first step. If you know a great deal
727 about the scaling of your problem, you can help to alleviate this
728 problem by specifying an initial stepsize (default is computed
729 automatically).
730 
731 @item @qcode{"maximum order"}
732 Restrict the maximum order of the solution method. This option must
733 be between 1 and 5, inclusive (default is 5).
734 
735 @item @qcode{"maximum step size"}
736 Setting the maximum stepsize will avoid passing over very large
737 regions (default is not specified).
738 @end table
739 @end deftypefn */)
740 {
742 
743  int nargin = args.length ();
744 
745  if (nargin > 2)
746  print_usage ();
747 
748  if (nargin == 0)
749  {
751  }
752  else
753  {
754  std::string keyword = args(0).xstring_value ("daspk_options: expecting keyword as first argument");
755 
756  if (nargin == 1)
757  retval = show_DASPK_options (keyword);
758  else
759  set_DASPK_options (keyword, args(1));
760  }
761 
762  return retval;
763 }
Array< double > absolute_tolerance(void) const
Definition: DASPK-opts.h:188
static int left
Definition: randmtzig.cc:185
The value of lines which begin with a space character are not saved in the history list A value of all commands are saved on the history list
Definition: oct-hist.cc:728
OCTINTERP_API void print_usage(void)
Definition: defun.cc:52
octave_idx_type numel(void) const
Number of elements in the array.
Definition: Array.h:363
void set_inequality_constraint_types(octave_idx_type val)
Definition: DASPK-opts.h:170
identity matrix If supplied two scalar respectively For allows like xample val
Definition: data.cc:5068
int int_value(bool req_int=false, bool frc_str_conv=false) const
Definition: ov.h:746
#define DEFUN(name, args_name, nargout_name, doc)
Definition: defun.h:46
void set_print_initial_condition_info(octave_idx_type val)
Definition: DASPK-opts.h:151
octave_idx_type print_initial_condition_info(void) const
Definition: DASPK-opts.h:203
octave_idx_type use_initial_condition_heuristics(void) const
Definition: DASPK-opts.h:197
void set_algebraic_variables(int val)
Definition: DASPK-opts.h:157
static void set_DASPK_options(const std::string &keyword, const octave_value &val)
Definition: DASPK-opts.cc:317
const char * keyword
Definition: DASPK-opts.cc:26
double maximum_step_size(void) const
Definition: DASPK-opts.h:224
JNIEnv void * args
Definition: ov-java.cc:67
void set_initial_step_size(double val)
Definition: DASPK-opts.h:180
void set_maximum_step_size(double val)
Definition: DASPK-opts.h:186
void set_absolute_tolerance(double val)
Definition: DASPK-opts.h:122
double initial_step_size(void) const
Definition: DASPK-opts.h:218
int nargin
Definition: graphics.cc:10115
octave_idx_type maximum_order(void) const
Definition: DASPK-opts.h:221
void set_use_initial_condition_heuristics(octave_idx_type val)
Definition: DASPK-opts.h:145
double tmp
Definition: data.cc:6300
octave_value retval
Definition: data.cc:6294
Array< octave_idx_type > algebraic_variables(void) const
Definition: DASPK-opts.h:209
octave_idx_type compute_consistent_initial_condition(void) const
Definition: DASPK-opts.h:194
octave_idx_type enforce_inequality_constraints(void) const
Definition: DASPK-opts.h:212
Definition: dMatrix.h:37
int keyword_almost_match(const char *const *std, int *min_len, const std::string &s, int min_toks_to_match, int max_toks)
Definition: utils.cc:152
octave_idx_type exclude_algebraic_variables_from_error_test(void) const
Definition: DASPK-opts.h:206
Array< octave_idx_type > inequality_constraint_types(void) const
Definition: DASPK-opts.h:215
const char * kw_tok[6+1]
Definition: DASPK-opts.cc:27
static DASPK_options_struct DASPK_options_table[]
Definition: DASPK-opts.cc:34
static octave_value_list show_DASPK_options(const std::string &keyword)
Definition: DASPK-opts.cc:419
void warning(const char *fmt,...)
Definition: error.cc:788
void set_maximum_order(octave_idx_type val)
Definition: DASPK-opts.h:183
#define octave_stdout
Definition: pager.h:146
=val(i)}if ode{val(i)}occurs in table i
Definition: lookup.cc:239
void set_enforce_inequality_constraints(octave_idx_type val)
Definition: DASPK-opts.h:167
Array< double > relative_tolerance(void) const
Definition: DASPK-opts.h:191
void octave_print_internal(std::ostream &, char, bool)
Definition: pr-output.cc:1722
static void print_DASPK_options(std::ostream &os)
Definition: DASPK-opts.cc:90
Array< double > vector_value(bool frc_str_conv=false, bool frc_vec_conv=false) const
Definition: ov.cc:1798
void set_relative_tolerance(double val)
Definition: DASPK-opts.h:132
Array< int > int_vector_value(bool req_int=false, bool frc_str_conv=false, bool frc_vec_conv=false) const
Definition: ov.cc:1822
#define MAX_TOKENS
Definition: DASPK-opts.cc:22
double double_value(bool frc_str_conv=false) const
Definition: ov.h:775
static DASPK_options daspk_opts
Definition: DASPK-opts.cc:20
void set_exclude_algebraic_variables_from_error_test(octave_idx_type val)
Definition: DASPK-opts.h:154
void set_initial_condition_heuristics(const Array< double > &val)
Definition: DASPK-opts.h:148
If this string is the system will ring the terminal sometimes it is useful to be able to print the original representation of the string
Definition: utils.cc:854
void set_compute_consistent_initial_condition(octave_idx_type val)
Definition: DASPK-opts.h:142
Array< double > initial_condition_heuristics(void) const
Definition: DASPK-opts.h:200