Mercurial > hg > octave-jordi
changeset 9344:0c4e6a3d6e3e
support char arrays in lookup
author | Jaroslav Hajek <highegg@gmail.com> |
---|---|
date | Sun, 14 Jun 2009 11:32:25 +0200 |
parents | 70e0d3b1f26f |
children | dbc61d4e428d |
files | src/ChangeLog src/DLD-FUNCTIONS/lookup.cc |
diffstat | 2 files changed, 11 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,7 @@ +2009-06-14 Jaroslav Hajek <highegg@gmail.com> + + * DLD-FUNCTIONS/lookup.cc (Flookup): Support character array lookup. + 2009-06-12 John W. Eaton <jwe@octave.org> * ov-fcn-handle.cc (make_fcn_handle): Accept operators which have
--- a/src/DLD-FUNCTIONS/lookup.cc +++ b/src/DLD-FUNCTIONS/lookup.cc @@ -186,7 +186,8 @@ if (table.ndims () > 2 || (table.columns () > 1 && table.rows () > 1)) warning ("lookup: table is not a vector"); - bool num_case = table.is_numeric_type () && y.is_numeric_type (); + bool num_case = ((table.is_numeric_type () && y.is_numeric_type ()) + || (table.is_char_matrix () && y.is_char_matrix ())); bool str_case = table.is_cellstr () && (y.is_string () || y.is_cellstr ()); bool left_inf = false; bool right_inf = false; @@ -239,6 +240,11 @@ else if INT_ARRAY_LOOKUP (uint16) else if INT_ARRAY_LOOKUP (uint32) else if INT_ARRAY_LOOKUP (uint64) + else if (table.is_char_matrix () && y.is_char_matrix ()) + retval = do_numeric_lookup (table.char_array_value (), + y.char_array_value (), + left_inf, right_inf, + match_idx, match_bool); else if (table.is_single_type () || y.is_single_type ()) retval = do_numeric_lookup (table.float_array_value (), y.float_array_value (),