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 {