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