Mercurial > hg > octave-lyh
comparison liboctave/idx-vector.cc @ 10516:f0266ee4aabe
optimize some special indexing & assignment cases
author | Jaroslav Hajek <highegg@gmail.com> |
---|---|
date | Tue, 13 Apr 2010 14:59:01 +0200 |
parents | aac9f4265048 |
children | 6fb954475e21 |
comparison
equal
deleted
inserted
replaced
10515:189274f6c7c4 | 10516:f0266ee4aabe |
---|---|
1176 const octave_idx_type *ri = r->get_data (); | 1176 const octave_idx_type *ri = r->get_data (); |
1177 Array<octave_idx_type> idx (orig_dimensions ()); | 1177 Array<octave_idx_type> idx (orig_dimensions ()); |
1178 for (octave_idx_type i = 0; i < n; i++) | 1178 for (octave_idx_type i = 0; i < n; i++) |
1179 idx.xelem(ri[i]) = i; | 1179 idx.xelem(ri[i]) = i; |
1180 retval = new idx_vector_rep (idx, r->extent (0), DIRECT); | 1180 retval = new idx_vector_rep (idx, r->extent (0), DIRECT); |
1181 break; | |
1181 } | 1182 } |
1182 default: | 1183 default: |
1183 retval = *this; | 1184 retval = *this; |
1184 break; | 1185 break; |
1185 } | 1186 } |
1256 | 1257 |
1257 Array<octave_idx_type> | 1258 Array<octave_idx_type> |
1258 idx_vector::as_array (void) const | 1259 idx_vector::as_array (void) const |
1259 { | 1260 { |
1260 return rep->as_array (); | 1261 return rep->as_array (); |
1262 } | |
1263 | |
1264 bool | |
1265 idx_vector::is_vector (void) const | |
1266 { | |
1267 return idx_class () != class_vector || orig_dimensions ().is_vector (); | |
1261 } | 1268 } |
1262 | 1269 |
1263 octave_idx_type | 1270 octave_idx_type |
1264 idx_vector::freeze (octave_idx_type z_len, const char *, bool resize_ok) | 1271 idx_vector::freeze (octave_idx_type z_len, const char *, bool resize_ok) |
1265 { | 1272 { |