comparison src/oct-map.cc @ 14616:13cc11418393

improve handling of default resize fill value for arrays * Array.cc (Array<T>::resize_fill_value): Return T, not const T&. * Array.h (Array<T>::resize_fill_value): Now virtual member function instead of static. (Array<T>::resize1 (octave_idx_type)): New function. (Array<T>::resize1 (octave_idx_type, const T&)): Eliminate default value for second arg. (Array<T>::resize (octave_idx_type, octave_idx_type)): New function. (Array<T>::resize (octave_idx_type, octave_idx_type, const T&)): Eliminate default value for third arg. (Array<T>::resize (const dim_vector&)): New function. (Array<T>::resize (const dim_vector&, const T&)): New function. (Array<T>::resize2 (octave_idx_type, octave_idx_type)): New function. (Array<T>::resize2 (octave_idx_type, octave_idx_type, const T&)): Eliminate default value for third arg. (Array<T>::index (const idx_vector&, bool) const): New function. (Array<T>::index (const idx_vector&, bool, const T&) const): Eliminate default value for third arg. (Array<T>::index (const idx_vector&, const idx_vector&, bool) const): New function. (Array<T>::index (const idx_vector&, const idx_vector&, bool, const T&) const): Eliminate default value for third arg. (Array<T>::index (const Array<idx_vector>&, bool) const): New function. (Array<T>::index (const Array<idx_vector>&, const T&) const): Eliminate default value for third arg. (Array<T>::assign (const idx_vector&, const Array<T>&)): New function. (Array<T>::assign (const idx_vector&, const Array<T>&, const T&)): Eliminate default value for third arg. (Array<T>::assign (const idx_vector&, const idx_vector&, const Array<T>&)): New function. (Array<T>::assign (const idx_vector&, const idx_vector&, const Array<T>&, const T&)): Eliminate default value for third arg. (Array<T>::assign (const Array<idx_vector>&, const Array<T>&)): New function. (Array<T>::assign (const Array<idx_vector>&, const Array<T>&, const T&)): Eliminate default value for third arg. * DiagArray2.h (DiagArray2<T>::resize (octave_idx_type, octave_idx_type)): New function. (DiagArray2<T>::resize (octave_idx_type, octave_idx_type, const T&)): Eliminate default value for third arg. * CColVector.h (ComplexColumnVector::resize): Use Complex (0) as default value instead of Array<Complex>::resize_fill_value (). * CMatrix.h (ComplexMatrix::resize): Use Complex (0) as default value instead of Array<Complex>::resize_fill_value (). (ComplexMatrix::resize_fill_value): Delete. * CNDArray.h (ComplexNDArray::resize_fill_value): Delete. * CRowVector.h (ComplexRowVector::resize): Use Complex (0) as default value instead of Array<Complex>::resize_fill_value (). * boolMatrix.h (boolMatrix::resize): Use false as default value instead of resize_fill_value (). (boolMatrix::resize_fill_value): Delete. * boolNDArray.h (boolNDArray::resize_fill_value): Delete. * chMatrix.h (charMatrix::resize): Use 0 as default value instead of resize_fill_value. (charMatrix::resize_fill_value): Delete. * chNDArray.h (charNDArray::resize_fill_value): Delete. * dColVector.h (ColumnVector::resize): Use 0 as default value instead of Array<double>::resize_fill_value (). * dMatrix.h (Matrix::resize): Use 0 as default value instead of resize_fill_value (). (Matrix::resize_fill_value): Delete. * dNDArray.h (NDArray::resize_fill_value): Delete. * dRowVector.h (RowVector::resize): Use 0 as default value instead of Array<double>::resize_fill_value (). * fCColVector.h (FloatComplexColumnVector::resize): Use FloatComplex (0) as default value instead of Array<FloatComplex>::resize_fill_value (). * fCMatrix.h (FloatComplexMatrix::resize): Use FloatComplex (0) as default value instead of resize_fill_value ()). FloatCmplexMatrix::resize_fill_value): Delete. * fCNDArray.h (FloatComplexNDArray::resize_fill_value): Delete. * fCRowVector.h (FloatComplexRowVector::resize): Use FloatComplex (0) as default value instead of Array<FloatComplex>::resize_fill_value (). * fColVector.h (FloatColumnVector::resize): Use 0 as default value instead of Array<float>::resize_fill_value (). * fMatrix.h (FloatMatrix::resize): Use 0 as default value instead of resize_fill_value (). * fMatrix.h (FloatMatrix::resize_fill_value): Delete. * fNDArray.h (FloatNDArray::resize_fill_value): Delete. * fRowVector.h (FloatRowVector::resize): Use 0 as default value instead of Array<float>::resize_fill_value (). * intNDArray.h (intNDArray<T>::resize_fill_value): Delete. * str-vec.h (string_vector::resize): Use std::string as default value instead of resize_fill_value (). * Cell.cc, Cell.h (Cell::Cell, Cell::assign, Cell::index): Use Matrix () as default value instead of resize_fill_value (). (Cell::resize_fill_value): No longer static. * oct-map.cc (octave_map::resize, octave_map::assign, Octave_map::resize, Octave_map::assign): Use Matrix () as default value instead of Cell::resize_fill_value. * oct-obj.h (octave_value_list::resize): Use octave_value () instead of Array<octave_value>::resize_fill_value (). * ov-complex.cc (octave_complex::resize): Use Complex (0) for fill value instead of ComplexNDArray::resize_fill_value (). * ov-float.cc (octave_float_scalar::resize): Use 0 for fill value instead of NDArray::resize_fill_value (). * ov-flt-complex.cc (octave_float_complex_scalar::resize): Use Complex (0) for fill value instead of ComplexNDArray::resize_fill_value (). * ov-range.cc (octave_range::resize): Use 0 for fill value instead of NDArray::resize_fill_value (). * ov-scalar.cc (octave_scalar::resize): Use 0 for fill value instead of NDArray::resize_fill_value (). * ov-str-mat.cc (octave_char_matrix_str::resize): Use 0 for fill value instead of charNDArray::resize_fill_value ().
author John W. Eaton <jwe@octave.org>
date Thu, 10 May 2012 16:31:02 -0400
parents 3a9a56999ce5
children 954e1a180375
comparison
equal deleted inserted replaced
14615:88e67d58b06b 14616:13cc11418393
555 if (nf > 0) 555 if (nf > 0)
556 { 556 {
557 for (octave_idx_type i = 0; i < nf; i++) 557 for (octave_idx_type i = 0; i < nf; i++)
558 { 558 {
559 if (fill) 559 if (fill)
560 xvals[i].resize (dv, Cell::resize_fill_value ()); 560 xvals[i].resize (dv, Matrix ());
561 else 561 else
562 xvals[i].resize (dv); 562 xvals[i].resize (dv);
563 } 563 }
564 } 564 }
565 else 565 else
1158 1158
1159 octave_idx_type nf = nfields (); 1159 octave_idx_type nf = nfields ();
1160 for (octave_idx_type i = 0; i < nf; i++) 1160 for (octave_idx_type i = 0; i < nf; i++)
1161 { 1161 {
1162 if (&xvals[i] != &ref) 1162 if (&xvals[i] != &ref)
1163 xvals[i].resize (dimensions, Cell::resize_fill_value ()); 1163 xvals[i].resize (dimensions, Matrix ());
1164 } 1164 }
1165 1165
1166 optimize_dimensions (); 1166 optimize_dimensions ();
1167 } 1167 }
1168 1168
1487 for (const_iterator p = begin (); p != end (); p++) 1487 for (const_iterator p = begin (); p != end (); p++)
1488 { 1488 {
1489 Cell tmp = contents(p); 1489 Cell tmp = contents(p);
1490 1490
1491 if (fill) 1491 if (fill)
1492 tmp.resize (dv, Cell::resize_fill_value ()); 1492 tmp.resize (dv, Matrix ());
1493 else 1493 else
1494 tmp.resize (dv); 1494 tmp.resize (dv);
1495 1495
1496 dimensions = dv; 1496 dimensions = dv;
1497 1497
1667 dim_vector tmp_dims = tmp.dims (); 1667 dim_vector tmp_dims = tmp.dims ();
1668 1668
1669 if (tmp_dims != dimensions) 1669 if (tmp_dims != dimensions)
1670 { 1670 {
1671 for (iterator p = begin (); p != end (); p++) 1671 for (iterator p = begin (); p != end (); p++)
1672 contents(p).resize (tmp_dims, Cell::resize_fill_value ()); 1672 contents(p).resize (tmp_dims, Matrix ());
1673 1673
1674 dimensions = tmp_dims; 1674 dimensions = tmp_dims;
1675 } 1675 }
1676 1676
1677 maybe_add_to_key_list (k); 1677 maybe_add_to_key_list (k);