Mercurial > octave
diff src/qpsol.cc @ 1329:13b630c0aad3
[project @ 1995-08-24 00:58:44 by jwe]
author | jwe |
---|---|
date | Thu, 24 Aug 1995 00:58:44 +0000 |
parents | 611d403c7f3d |
children | 19c10b8657d5 |
line wrap: on
line diff
--- a/src/qpsol.cc Tue Aug 22 22:33:13 1995 +0000 +++ b/src/qpsol.cc Thu Aug 24 00:58:44 1995 +0000 @@ -327,7 +327,7 @@ } static void -do_qpsol_option (char *keyword, double val) +set_qpsol_option (char *keyword, double val) { QPSOL_OPTIONS *list = qpsol_option_table; @@ -356,6 +356,31 @@ warning ("qpsol_options: no match for `%s'", keyword); } +static Octave_object +show_qpsol_option (char *keyword) +{ + Octave_object retval; + + QPSOL_OPTIONS *list = qpsol_option_table; + + while (list->keyword != 0) + { + if (keyword_almost_match (list->kw_tok, list->min_len, keyword, + list->min_toks_to_match, MAX_TOKENS)) + { + if (list->d_get_fcn) + return (qpsol_opts.*list->d_get_fcn) (); + else + return (double) (qpsol_opts.*list->i_get_fcn) (); + } + list++; + } + + warning ("qpsol_options: no match for `%s'", keyword); + + return retval; +} + #endif #if defined (QPSOL_MISSING) @@ -386,18 +411,23 @@ print_qpsol_option_list (); return retval; } - else if (nargin == 2) + else if (nargin == 1 || nargin == 2) { char *keyword = args(0).string_value (); if (! error_state) { - double val = args(1).double_value (); + if (nargin == 1) + return show_qpsol_option (keyword); + else + { + double val = args(1).double_value (); - if (! error_state) - { - do_qpsol_option (keyword, val); - return retval; + if (! error_state) + { + set_qpsol_option (keyword, val); + return retval; + } } } }