# HG changeset patch # User Jaroslav Hajek # Date 1277455634 -7200 # Node ID 6ba7937a6fa4231fdd03f5eb7236673175b81a90 # Parent 92eb5fb58ebc1701ea7dcaac38298d285206b432 more array-like methods in octave_map diff --git a/src/oct-map.cc b/src/oct-map.cc --- a/src/oct-map.cc +++ b/src/oct-map.cc @@ -811,6 +811,22 @@ return retval; } +// Perhaps one day these will be optimized. Right now, they just call index. +octave_map +octave_map::column (octave_idx_type k) const +{ + return index (idx_vector::colon, k); +} + +octave_map +octave_map::page (octave_idx_type k) const +{ + static Array ia (3, 1, idx_vector::colon); + + ia(2) = k; + return index (ia); +} + void octave_map::assign (const idx_vector& i, const octave_map& rhs) { diff --git a/src/oct-map.h b/src/oct-map.h --- a/src/oct-map.h +++ b/src/oct-map.h @@ -363,6 +363,15 @@ octave_scalar_map checkelem (const Array& ra_idx) const; + octave_scalar_map operator () (octave_idx_type n) const + { return checkelem (n); } + octave_scalar_map operator () (octave_idx_type i, octave_idx_type j) const + { return checkelem (i, j); } + + octave_scalar_map + operator () (const Array& ra_idx) const + { return checkelem (ra_idx); } + octave_map squeeze (void) const; octave_map permute (const Array& vec, bool inv = false) const; @@ -393,6 +402,9 @@ octave_map index (const octave_value_list&, bool resize_ok = false) const; + octave_map column (octave_idx_type k) const; + octave_map page (octave_idx_type k) const; + void assign (const idx_vector& i, const octave_map& rhs); void assign (const idx_vector& i, const idx_vector& j, const octave_map& rhs);