Mercurial > octave
changeset 32598:2f3b54f81947
avoid dim_vector copies in more places where possible (bug #64962)
Where possible, use const reference to capture temporary dim_vector
objects instead of making copies.
Affected files: variable-editor-model.cc, besselj.cc, bitfcns.cc,
cellfun.cc, data.cc, ellipj.cc, filter.cc, find.cc, gl-render.cc,
graphics.cc, graphics.in.h, jsondecode.cc, jsonencode.cc, ls-mat5.cc,
matrix_type.cc, mex.cc, oct-map.cc, pr-output.cc, sub2ind.cc, tril.cc,
xpow.cc, ov-base-diag.cc, ov-base-int.cc, ov-base-mat.cc,
ov-base-sparse.cc, ov-bool-mat.cc, ov-bool-sparse.cc, ov-cell.cc,
ov-class.cc, ov-class.h, ov-classdef.cc, ov-cx-mat.cc,
ov-cx-sparse.cc, ov-flt-cx-mat.cc, ov-flt-re-mat.cc, ov-intx.h,
ov-java.cc, ov-perm.cc, ov-re-mat.cc, ov-re-sparse.cc, ov-str-mat.cc,
ov-struct.cc, ovl.cc, op-int.h, op-str-str.cc, op-struct.cc,
pt-eval.cc, pt-tm-const.cc, Array-base.cc, Array-util.cc, CNDArray.cc,
CSparse.cc, Sparse.cc, dNDArray.cc, dSparse.cc, fCNDArray.cc,
fNDArray.cc, bsxfun-defs.cc, lo-specfun.cc, mx-inlines.cc,
oct-binmap.h.
line wrap: on
line diff
--- a/libgui/src/variable-editor-model.cc Wed Dec 13 19:58:48 2023 +0100 +++ b/libgui/src/variable-editor-model.cc Wed Dec 13 15:48:06 2023 -0500 @@ -179,7 +179,7 @@ } else { - dim_vector dv = elt.dims (); + const dim_vector& dv = elt.dims (); str = "[" + dv.str () + " " + elt.class_name () + "]"; } @@ -294,7 +294,7 @@ if (! lbl_txt.isEmpty ()) lbl_txt += " "; - dim_vector dv = m_value.dims (); + const dim_vector& dv = m_value.dims (); lbl_txt += ("[" + QString::fromStdString (dv.str ())
--- a/libinterp/corefcn/besselj.cc Wed Dec 13 19:58:48 2023 +0100 +++ b/libinterp/corefcn/besselj.cc Wed Dec 13 15:48:06 2023 -0500 @@ -153,8 +153,8 @@ } else { - dim_vector dv0 = args(0).dims (); - dim_vector dv1 = args(1).dims (); + const dim_vector& dv0 = args(0).dims (); + const dim_vector& dv1 = args(1).dims (); bool args0_is_row_vector = (dv0(1) == dv0.numel ()); bool args1_is_col_vector = (dv1(0) == dv1.numel ()); @@ -244,8 +244,8 @@ } else { - dim_vector dv0 = args(0).dims (); - dim_vector dv1 = args(1).dims (); + const dim_vector& dv0 = args(0).dims (); + const dim_vector& dv1 = args(1).dims (); bool args0_is_row_vector = (dv0(1) == dv0.numel ()); bool args1_is_col_vector = (dv1(0) == dv1.numel ());
--- a/libinterp/corefcn/bitfcns.cc Wed Dec 13 19:58:48 2023 +0100 +++ b/libinterp/corefcn/bitfcns.cc Wed Dec 13 15:48:06 2023 -0500 @@ -89,8 +89,8 @@ bool is_scalar_op = (nelx == 1 || nely == 1); - dim_vector dvx = x.dims (); - dim_vector dvy = y.dims (); + const dim_vector& dvx = x.dims (); + const dim_vector& dvy = y.dims (); bool is_array_op = (dvx == dvy); @@ -475,8 +475,8 @@ \ bool is_scalar_op = (m_nel == 1 || n_nel == 1); \ \ - dim_vector m_dv = m.dims (); \ - dim_vector n_dv = n.dims (); \ + const dim_vector& m_dv = m.dims (); \ + const dim_vector& n_dv = n.dims (); \ \ bool is_array_op = (m_dv == n_dv); \ \
--- a/libinterp/corefcn/cellfun.cc Wed Dec 13 19:58:48 2023 +0100 +++ b/libinterp/corefcn/cellfun.cc Wed Dec 13 15:48:06 2023 -0500 @@ -197,7 +197,7 @@ for (octave_idx_type count = 0; count < k; count++) { - dim_vector dv = f_args.elem (count).dims (); + const dim_vector& dv = f_args.elem (count).dims (); if (d < dv.ndims ()) result(count) = static_cast<double> (dv(d)); else @@ -1789,7 +1789,7 @@ if (! dimv.isempty ()) error ("num2cell (A, dim) not implemented for class objects"); - dim_vector dv = get_object_dims (array); + const dim_vector& dv = get_object_dims (array); retval.resize (dv);
--- a/libinterp/corefcn/data.cc Wed Dec 13 19:58:48 2023 +0100 +++ b/libinterp/corefcn/data.cc Wed Dec 13 15:48:06 2023 -0500 @@ -2006,7 +2006,7 @@ // the right type. tmp = cat_op (tmp, args(j), ra_idx); - dim_vector dv_tmp = args(j).dims (); + const dim_vector& dv_tmp = args(j).dims (); if (dim >= dv_len) { @@ -2927,11 +2927,11 @@ if (nargin >= 1) { - dim_vector a_dims = args(0).dims (); + const dim_vector& a_dims = args(0).dims (); for (int i = 1; i < nargin; ++i) { - dim_vector b_dims = args(i).dims (); + const dim_vector& b_dims = args(i).dims (); if (a_dims != b_dims) return ovl (false); @@ -5673,9 +5673,9 @@ octave_value arg_1 = args(0); octave_value arg_2 = args(1); - dim_vector sz1 = arg_1.dims (); + const dim_vector& sz1 = arg_1.dims (); bool isvector1 = sz1.ndims () == 2 && (sz1(0) == 1 || sz1(1) == 1); - dim_vector sz2 = arg_2.dims (); + const dim_vector& sz2 = arg_2.dims (); bool isvector2 = sz2.ndims () == 2 && (sz2(0) == 1 || sz2(1) == 1); if (! isvector1 || ! isvector2) @@ -7877,7 +7877,7 @@ else if (idx.extent (n) > n) error ("accumdim: index out of range"); - dim_vector vals_dim = vals.dims (); + const dim_vector& vals_dim = vals.dims (); dim_vector rdv = vals_dim; if (dim < 0) @@ -7961,7 +7961,7 @@ const NDT& tval, const NDT& fval) { typedef typename NDT::element_type T; - dim_vector dv = mask.dims (); + const dim_vector& dv = mask.dims (); NDT retval (dv); bool tscl = tval.numel () == 1;
--- a/libinterp/corefcn/ellipj.cc Wed Dec 13 19:58:48 2023 +0100 +++ b/libinterp/corefcn/ellipj.cc Wed Dec 13 15:48:06 2023 -0500 @@ -117,7 +117,7 @@ // u is matrix, m is scalar ComplexNDArray u = u_arg.xcomplex_array_value ("ellipj: U must be a scalar or matrix"); - dim_vector sz_u = u.dims (); + const dim_vector& sz_u = u.dims (); ComplexNDArray sn (sz_u), cn (sz_u), dn (sz_u); NDArray err (sz_u); @@ -139,7 +139,7 @@ { NDArray m = args(1).xarray_value ("ellipj: M must be a scalar or matrix"); - dim_vector sz_m = m.dims (); + const dim_vector& sz_m = m.dims (); if (u_arg.is_scalar_type ()) { @@ -193,7 +193,7 @@ // u is real array, m is array NDArray u = u_arg.xarray_value ("ellipj: U must be a scalar or matrix"); - dim_vector sz_u = u.dims (); + const dim_vector& sz_u = u.dims (); if (sz_u.ndims () == 2 && sz_m.ndims () == 2 && sz_u(1) == 1 && sz_m(0) == 1) @@ -241,7 +241,7 @@ // u is complex array, m is array ComplexNDArray u = u_arg.xcomplex_array_value ("ellipj: U must be a scalar or matrix"); - dim_vector sz_u = u.dims (); + const dim_vector& sz_u = u.dims (); if (sz_u.ndims () == 2 && sz_m.ndims () == 2 && sz_u(1) == 1 && sz_m(0) == 1)
--- a/libinterp/corefcn/filter.cc Wed Dec 13 19:58:48 2023 +0100 +++ b/libinterp/corefcn/filter.cc Wed Dec 13 15:48:06 2023 -0500 @@ -68,7 +68,7 @@ if (norm == static_cast<T> (0.0)) error ("filter: the first element of A must be nonzero"); - dim_vector x_dims = x.dims (); + const dim_vector& x_dims = x.dims (); if (dim < 0 || dim > x_dims.ndims ()) error ("filter: DIM must be a valid dimension"); @@ -239,7 +239,7 @@ MArray<T> filter (MArray<T>& b, MArray<T>& a, MArray<T>& x, int dim = -1) { - dim_vector x_dims = x.dims (); + const dim_vector& x_dims = x.dims (); if (dim < 0) dim = x_dims.first_non_singleton (); @@ -369,7 +369,7 @@ print_usage (); int dim; - dim_vector x_dims = args(2).dims (); + const dim_vector& x_dims = args(2).dims (); if (nargin == 5) {
--- a/libinterp/corefcn/find.cc Wed Dec 13 19:58:48 2023 +0100 +++ b/libinterp/corefcn/find.cc Wed Dec 13 15:48:06 2023 -0500 @@ -451,7 +451,7 @@ octave_value result = arg.index_vector ().unmask (); - dim_vector dv = result.dims (); + const dim_vector& dv = result.dims (); retval(0) = (dv.all_zero () || dv.isvector () ? result : result.reshape (dv.as_column ()));
--- a/libinterp/corefcn/gl-render.cc Wed Dec 13 19:58:48 2023 +0100 +++ b/libinterp/corefcn/gl-render.cc Wed Dec 13 15:48:06 2023 -0500 @@ -2543,11 +2543,11 @@ NDArray c; const NDArray vn = props.get_vertexnormals ().array_value (); - dim_vector vn_dims = vn.dims (); + const dim_vector& vn_dims = vn.dims (); bool has_vertex_normals = (vn_dims(0) == zr && vn_dims(1) == zc && vn_dims(2) == 3); const NDArray fn = props.get_facenormals ().array_value (); - dim_vector fn_dims = fn.dims (); + const dim_vector& fn_dims = fn.dims (); bool has_face_normals = (fn_dims(0) == zr - 1 && fn_dims(1) == zc - 1 && fn_dims(2) == 3);
--- a/libinterp/corefcn/graphics.cc Wed Dec 13 19:58:48 2023 +0100 +++ b/libinterp/corefcn/graphics.cc Wed Dec 13 15:48:06 2023 -0500 @@ -1579,7 +1579,7 @@ if (xok && m_size_constraints.size () > 0) { - dim_vector vdims = v.dims (); + const dim_vector& vdims = v.dims (); int vlen = vdims.ndims (); xok = false;
--- a/libinterp/corefcn/graphics.in.h Wed Dec 13 19:58:48 2023 +0100 +++ b/libinterp/corefcn/graphics.in.h Wed Dec 13 15:48:06 2023 -0500 @@ -4899,7 +4899,7 @@ Matrix get_auto_xdata () { - dim_vector dv = get_cdata ().dims (); + const dim_vector& dv = get_cdata ().dims (); Matrix data; if (dv(1) > 0.) { @@ -4911,7 +4911,7 @@ Matrix get_auto_ydata () { - dim_vector dv = get_cdata ().dims (); + const dim_vector& dv = get_cdata ().dims (); Matrix data; if (dv(0) > 0.) {
--- a/libinterp/corefcn/jsondecode.cc Wed Dec 13 19:58:48 2023 +0100 +++ b/libinterp/corefcn/jsondecode.cc Wed Dec 13 15:48:06 2023 -0500 @@ -241,7 +241,7 @@ if (same_field_names) { octave_map struct_array; - dim_vector struct_array_dims = dim_vector (struct_cell.numel (), 1); + const dim_vector& struct_array_dims = dim_vector (struct_cell.numel (), 1); if (field_names.numel ()) { @@ -300,7 +300,7 @@ bool is_struct = cell(0).isstruct (); string_vector field_names = is_struct ? cell(0).map_value ().fieldnames () : string_vector (); - dim_vector sub_array_dims = cell(0).dims (); + const dim_vector& sub_array_dims = cell(0).dims (); octave_idx_type sub_array_ndims = cell(0).ndims (); octave_idx_type cell_numel = cell.numel (); for (octave_idx_type i = 0; i < cell_numel; ++i)
--- a/libinterp/corefcn/jsonencode.cc Wed Dec 13 19:58:48 2023 +0100 +++ b/libinterp/corefcn/jsonencode.cc Wed Dec 13 15:48:06 2023 -0500 @@ -317,7 +317,7 @@ { octave_idx_type idx; octave_idx_type ndims = array.ndims (); - dim_vector dims = array.dims (); + const dim_vector& dims = array.dims (); // In this case, we already have a vector. So, we transform it to 2-D // vector in order to be detected by "isvector" in the recursive call
--- a/libinterp/corefcn/ls-mat5.cc Wed Dec 13 19:58:48 2023 +0100 +++ b/libinterp/corefcn/ls-mat5.cc Wed Dec 13 15:48:06 2023 -0500 @@ -2114,7 +2114,7 @@ maybe_convert_to_u16 (const charNDArray& chm, std::size_t& n16_str) { uint16_t *u16_str; - dim_vector dv = chm.dims (); + const dim_vector& dv = chm.dims (); if (chm.ndims () == 2 && dv(0) == 1) { @@ -2328,7 +2328,7 @@ std::string cname = tc.class_name (); std::size_t max_namelen = 63; - dim_vector dv = tc.dims (); + const dim_vector& dv = tc.dims (); int nd = tc.ndims (); int dim_len = 4*nd;
--- a/libinterp/corefcn/matrix_type.cc Wed Dec 13 19:58:48 2023 +0100 +++ b/libinterp/corefcn/matrix_type.cc Wed Dec 13 15:48:06 2023 -0500 @@ -274,7 +274,7 @@ const ColumnVector perm = args(2).xvector_value ("matrix_type: Invalid permutation vector PERM"); octave_idx_type len = perm.numel (); - dim_vector dv = args(0).dims (); + const dim_vector& dv = args(0).dims (); if (len != dv(0)) error ("matrix_type: Invalid permutation vector PERM"); @@ -411,7 +411,7 @@ const ColumnVector perm = args(2).xvector_value ("matrix_type: Invalid permutation vector PERM"); octave_idx_type len = perm.numel (); - dim_vector dv = args(0).dims (); + const dim_vector& dv = args(0).dims (); if (len != dv(0)) error ("matrix_type: Invalid permutation vector PERM");
--- a/libinterp/corefcn/mex.cc Wed Dec 13 19:58:48 2023 +0100 +++ b/libinterp/corefcn/mex.cc Wed Dec 13 15:48:06 2023 -0500 @@ -577,7 +577,7 @@ m_dims = static_cast<mwSize *> (mxArray::malloc (m_ndims * sizeof (mwSize))); - dim_vector dv = m_val.dims (); + const dim_vector& dv = m_val.dims (); for (mwIndex i = 0; i < m_ndims; i++) m_dims[i] = dv(i); @@ -1870,7 +1870,7 @@ { octave_value retval; - dim_vector dv = dims_to_dim_vector (); + const dim_vector& dv = dims_to_dim_vector (); switch (get_class_id ()) { @@ -2189,7 +2189,7 @@ octave_value retval; - dim_vector dv = dims_to_dim_vector (); + const dim_vector& dv = dims_to_dim_vector (); switch (get_class_id ()) { @@ -2361,7 +2361,7 @@ { octave_value retval; - dim_vector dv = dims_to_dim_vector (); + const dim_vector& dv = dims_to_dim_vector (); switch (get_class_id ()) { @@ -2545,7 +2545,7 @@ octave_value retval; - dim_vector dv = dims_to_dim_vector (); + const dim_vector& dv = dims_to_dim_vector (); switch (get_class_id ()) { @@ -2822,7 +2822,7 @@ octave_value as_octave_value (void) const { - dim_vector dv = dims_to_dim_vector (); + const dim_vector& dv = dims_to_dim_vector (); string_vector keys (m_fields, m_nfields); @@ -2925,7 +2925,7 @@ octave_value as_octave_value (void) const { - dim_vector dv = dims_to_dim_vector (); + const dim_vector& dv = dims_to_dim_vector (); Cell c (dv);
--- a/libinterp/corefcn/oct-map.cc Wed Dec 13 19:58:48 2023 +0100 +++ b/libinterp/corefcn/oct-map.cc Wed Dec 13 15:48:06 2023 -0500 @@ -1334,7 +1334,7 @@ } else { - dim_vector dv = dims (); + const dim_vector& dv = dims (); if (dv.all_zero ()) *this = rb;
--- a/libinterp/corefcn/pr-output.cc Wed Dec 13 19:58:48 2023 +0100 +++ b/libinterp/corefcn/pr-output.cc Wed Dec 13 15:48:06 2023 -0500 @@ -2124,7 +2124,7 @@ int ndims = nda.ndims (); - dim_vector dims = nda.dims (); + const dim_vector& dims = nda.dims (); Array<octave_idx_type> ra_idx (dim_vector (ndims, 1), 0); @@ -2712,7 +2712,7 @@ { int ndims = nda.ndims (); - dim_vector dims = nda.dims (); + const dim_vector& dims = nda.dims (); Array<octave_idx_type> ra_idx (dim_vector (ndims, 1), 0); @@ -2954,7 +2954,7 @@ Array<octave_idx_type> ra_idx (dim_vector (ndims, 1), 0); - dim_vector dims = nda.dims (); + const dim_vector& dims = nda.dims (); octave_idx_type m = 1; @@ -3023,7 +3023,7 @@ { int ndims = nda.ndims (); - dim_vector dims = nda.dims (); + const dim_vector& dims = nda.dims (); Array<octave_idx_type> ra_idx (dim_vector (ndims, 1), 0);
--- a/libinterp/corefcn/sub2ind.cc Wed Dec 13 19:58:48 2023 +0100 +++ b/libinterp/corefcn/sub2ind.cc Wed Dec 13 15:48:06 2023 -0500 @@ -117,7 +117,7 @@ if (nargin < 2) print_usage (); - dim_vector dv = get_dim_vector (args(0), "sub2ind"); + const dim_vector& dv = get_dim_vector (args(0), "sub2ind"); Array<idx_vector> idxa (dim_vector (nargin-1, 1));
--- a/libinterp/corefcn/tril.cc Wed Dec 13 19:58:48 2023 +0100 +++ b/libinterp/corefcn/tril.cc Wed Dec 13 15:48:06 2023 -0500 @@ -208,7 +208,7 @@ octave_value arg = args(0); - dim_vector dims = arg.dims (); + const dim_vector& dims = arg.dims (); if (dims.ndims () != 2) error ("%s: need a 2-D matrix", name.c_str ()); else if (k < -dims(0))
--- a/libinterp/corefcn/xpow.cc Wed Dec 13 19:58:48 2023 +0100 +++ b/libinterp/corefcn/xpow.cc Wed Dec 13 15:48:06 2023 -0500 @@ -1259,8 +1259,8 @@ { octave_value retval; - dim_vector a_dims = a.dims (); - dim_vector b_dims = b.dims (); + const dim_vector& a_dims = a.dims (); + const dim_vector& b_dims = b.dims (); if (a_dims != b_dims) { @@ -1342,8 +1342,8 @@ octave_value elem_xpow (const NDArray& a, const ComplexNDArray& b) { - dim_vector a_dims = a.dims (); - dim_vector b_dims = b.dims (); + const dim_vector& a_dims = a.dims (); + const dim_vector& b_dims = b.dims (); if (a_dims != b_dims) { @@ -1437,8 +1437,8 @@ octave_value elem_xpow (const ComplexNDArray& a, const NDArray& b) { - dim_vector a_dims = a.dims (); - dim_vector b_dims = b.dims (); + const dim_vector& a_dims = a.dims (); + const dim_vector& b_dims = b.dims (); if (a_dims != b_dims) { @@ -1482,8 +1482,8 @@ octave_value elem_xpow (const ComplexNDArray& a, const ComplexNDArray& b) { - dim_vector a_dims = a.dims (); - dim_vector b_dims = b.dims (); + const dim_vector& a_dims = a.dims (); + const dim_vector& b_dims = b.dims (); if (a_dims != b_dims) { @@ -2579,8 +2579,8 @@ { octave_value retval; - dim_vector a_dims = a.dims (); - dim_vector b_dims = b.dims (); + const dim_vector& a_dims = a.dims (); + const dim_vector& b_dims = b.dims (); if (a_dims != b_dims) { @@ -2662,8 +2662,8 @@ octave_value elem_xpow (const FloatNDArray& a, const FloatComplexNDArray& b) { - dim_vector a_dims = a.dims (); - dim_vector b_dims = b.dims (); + const dim_vector& a_dims = a.dims (); + const dim_vector& b_dims = b.dims (); if (a_dims != b_dims) { @@ -2757,8 +2757,8 @@ octave_value elem_xpow (const FloatComplexNDArray& a, const FloatNDArray& b) { - dim_vector a_dims = a.dims (); - dim_vector b_dims = b.dims (); + const dim_vector& a_dims = a.dims (); + const dim_vector& b_dims = b.dims (); if (a_dims != b_dims) { @@ -2802,8 +2802,8 @@ octave_value elem_xpow (const FloatComplexNDArray& a, const FloatComplexNDArray& b) { - dim_vector a_dims = a.dims (); - dim_vector b_dims = b.dims (); + const dim_vector& a_dims = a.dims (); + const dim_vector& b_dims = b.dims (); if (a_dims != b_dims) {
--- a/libinterp/octave-value/ov-base-diag.cc Wed Dec 13 19:58:48 2023 +0100 +++ b/libinterp/octave-value/ov-base-diag.cc Wed Dec 13 15:48:06 2023 -0500 @@ -553,7 +553,7 @@ bool octave_base_diag<DMT, MT>::print_as_scalar () const { - dim_vector dv = dims (); + const dim_vector& dv = dims (); return (dv.all_ones () || dv.any_zero ()); }
--- a/libinterp/octave-value/ov-base-int.cc Wed Dec 13 19:58:48 2023 +0100 +++ b/libinterp/octave-value/ov-base-int.cc Wed Dec 13 15:48:06 2023 -0500 @@ -160,7 +160,7 @@ octave_base_int_matrix<T>::convert_to_str_internal (bool, bool, char type) const { octave_value retval; - dim_vector dv = this->dims (); + const dim_vector& dv = this->dims (); octave_idx_type nel = dv.numel (); charNDArray chm (dv); @@ -288,7 +288,7 @@ bool octave_base_int_matrix<T>::save_ascii (std::ostream& os) { - dim_vector dv = this->dims (); + const dim_vector& dv = this->dims (); os << "# ndims: " << dv.ndims () << "\n"; @@ -334,7 +334,7 @@ bool octave_base_int_matrix<T>::save_binary (std::ostream& os, bool) { - dim_vector dv = this->dims (); + const dim_vector& dv = this->dims (); if (dv.ndims () < 1) return false; @@ -434,7 +434,7 @@ #if defined (HAVE_HDF5) hid_t save_type_hid = save_type; - dim_vector dv = this->dims (); + const dim_vector& dv = this->dims (); int empty = save_hdf5_empty (loc_id, name, dv); if (empty) return (empty > 0);
--- a/libinterp/octave-value/ov-base-mat.cc Wed Dec 13 19:58:48 2023 +0100 +++ b/libinterp/octave-value/ov-base-mat.cc Wed Dec 13 15:48:06 2023 -0500 @@ -454,7 +454,7 @@ octave_base_matrix<MT>::is_true () const { bool retval = false; - dim_vector dv = m_matrix.dims (); + const dim_vector& dv = m_matrix.dims (); int nel = dv.numel (); if (nel > 0) @@ -479,7 +479,7 @@ bool octave_base_matrix<MT>::print_as_scalar () const { - dim_vector dv = dims (); + const dim_vector& dv = dims (); return (dv.all_ones () || dv.any_zero ()); }
--- a/libinterp/octave-value/ov-base-sparse.cc Wed Dec 13 19:58:48 2023 +0100 +++ b/libinterp/octave-value/ov-base-sparse.cc Wed Dec 13 15:48:06 2023 -0500 @@ -245,7 +245,7 @@ octave_base_sparse<T>::is_true () const { bool retval = false; - dim_vector dv = matrix.dims (); + const dim_vector& dv = matrix.dims (); octave_idx_type nel = dv.numel (); octave_idx_type nz = nnz (); @@ -274,7 +274,7 @@ bool octave_base_sparse<T>::print_as_scalar () const { - dim_vector dv = dims (); + const dim_vector& dv = dims (); return (dv.all_ones () || dv.any_zero ()); } @@ -400,7 +400,7 @@ bool octave_base_sparse<T>::save_ascii (std::ostream& os) { - dim_vector dv = this->dims (); + const dim_vector& dv = this->dims (); // Ensure that additional memory is deallocated matrix.maybe_compress ();
--- a/libinterp/octave-value/ov-bool-mat.cc Wed Dec 13 19:58:48 2023 +0100 +++ b/libinterp/octave-value/ov-bool-mat.cc Wed Dec 13 15:48:06 2023 -0500 @@ -237,7 +237,7 @@ bool octave_bool_matrix::save_ascii (std::ostream& os) { - dim_vector dv = dims (); + const dim_vector& dv = dims (); if (dv.ndims () > 2) { NDArray tmp = array_value (); @@ -348,7 +348,7 @@ octave_bool_matrix::save_binary (std::ostream& os, bool /* save_as_floats */) { - dim_vector dv = dims (); + const dim_vector& dv = dims (); if (dv.ndims () < 1) return false; @@ -430,7 +430,7 @@ #if defined (HAVE_HDF5) - dim_vector dv = dims (); + const dim_vector& dv = dims (); int empty = save_hdf5_empty (loc_id, name, dv); if (empty) return (empty > 0);
--- a/libinterp/octave-value/ov-bool-sparse.cc Wed Dec 13 19:58:48 2023 +0100 +++ b/libinterp/octave-value/ov-bool-sparse.cc Wed Dec 13 15:48:06 2023 -0500 @@ -180,7 +180,7 @@ bool octave_sparse_bool_matrix::save_binary (std::ostream& os, bool) { - dim_vector dv = this->dims (); + const dim_vector& dv = this->dims (); if (dv.ndims () < 1) return false; @@ -321,7 +321,7 @@ #if defined (HAVE_HDF5) - dim_vector dv = dims (); + const dim_vector& dv = dims (); int empty = save_hdf5_empty (loc_id, name, dv); if (empty) return (empty > 0);
--- a/libinterp/octave-value/ov-cell.cc Wed Dec 13 19:58:48 2023 +0100 +++ b/libinterp/octave-value/ov-cell.cc Wed Dec 13 15:48:06 2023 -0500 @@ -111,7 +111,7 @@ octave_value val = m_matrix(i, j); std::string tname = val.type_name (); - dim_vector dv = val.dims (); + const dim_vector& dv = val.dims (); std::string dimstr = dv.str (); return "[" + dimstr + " " + tname + "]"; } @@ -752,7 +752,7 @@ else { indent (os); - dim_vector dv = m_matrix.dims (); + const dim_vector& dv = m_matrix.dims (); os << '{' << dv.str () << " Cell Array}"; newline (os); } @@ -788,7 +788,7 @@ bool octave_cell::save_ascii (std::ostream& os) { - dim_vector dv = dims (); + const dim_vector& dv = dims (); if (dv.ndims () > 2) { os << "# ndims: " << dv.ndims () << "\n"; @@ -941,7 +941,7 @@ bool octave_cell::save_binary (std::ostream& os, bool save_as_floats) { - dim_vector dv = dims (); + const dim_vector& dv = dims (); if (dv.ndims () < 1) return false; @@ -1052,7 +1052,7 @@ { #if defined (HAVE_HDF5) - dim_vector dv = dims (); + const dim_vector& dv = dims (); int empty = save_hdf5_empty (loc_id, name, dv); if (empty) return (empty > 0);
--- a/libinterp/octave-value/ov-class.cc Wed Dec 13 19:58:48 2023 +0100 +++ b/libinterp/octave-value/ov-class.cc Wed Dec 13 15:48:06 2023 -0500 @@ -134,7 +134,7 @@ // distribute the elements of the parent object to // the elements of MAP. - dim_vector parent_dims = parent.dims (); + const dim_vector& parent_dims = parent.dims (); m_map.resize (parent_dims); @@ -331,7 +331,7 @@ } else { - dim_vector dv = dims (); + const dim_vector& dv = dims (); int nd = dv.ndims ();
--- a/libinterp/octave-value/ov-class.h Wed Dec 13 19:58:48 2023 +0100 +++ b/libinterp/octave-value/ov-class.h Wed Dec 13 15:48:06 2023 -0500 @@ -139,7 +139,7 @@ // of elements is numel () * nfields (). octave_idx_type numel () const { - dim_vector dv = dims (); + const dim_vector& dv = dims (); return dv.numel (); }
--- a/libinterp/octave-value/ov-classdef.cc Wed Dec 13 19:58:48 2023 +0100 +++ b/libinterp/octave-value/ov-classdef.cc Wed Dec 13 15:48:06 2023 -0500 @@ -396,7 +396,7 @@ else { octave_value val = prop.get_value (m_object, false); - dim_vector dims = val.dims (); + const dim_vector& dims = val.dims (); os << std::setw (max_len+2) << nm << ": "; if (val.is_string ())
--- a/libinterp/octave-value/ov-cx-mat.cc Wed Dec 13 19:58:48 2023 +0100 +++ b/libinterp/octave-value/ov-cx-mat.cc Wed Dec 13 15:48:06 2023 -0500 @@ -320,7 +320,7 @@ bool octave_complex_matrix::save_ascii (std::ostream& os) { - dim_vector dv = dims (); + const dim_vector& dv = dims (); if (dv.ndims () > 2) { ComplexNDArray tmp = complex_array_value (); @@ -424,7 +424,7 @@ bool octave_complex_matrix::save_binary (std::ostream& os, bool save_as_floats) { - dim_vector dv = dims (); + const dim_vector& dv = dims (); if (dv.ndims () < 1) return false; @@ -544,7 +544,7 @@ { #if defined (HAVE_HDF5) - dim_vector dv = dims (); + const dim_vector& dv = dims (); int empty = save_hdf5_empty (loc_id, name, dv); if (empty) return (empty > 0);
--- a/libinterp/octave-value/ov-cx-sparse.cc Wed Dec 13 19:58:48 2023 +0100 +++ b/libinterp/octave-value/ov-cx-sparse.cc Wed Dec 13 15:48:06 2023 -0500 @@ -182,7 +182,7 @@ octave_sparse_complex_matrix::save_binary (std::ostream& os, bool save_as_floats) { - dim_vector dv = this->dims (); + const dim_vector& dv = this->dims (); if (dv.ndims () < 1) return false; @@ -327,7 +327,7 @@ #if defined (HAVE_HDF5) - dim_vector dv = dims (); + const dim_vector& dv = dims (); int empty = save_hdf5_empty (loc_id, name, dv); if (empty) return (empty > 0);
--- a/libinterp/octave-value/ov-flt-cx-mat.cc Wed Dec 13 19:58:48 2023 +0100 +++ b/libinterp/octave-value/ov-flt-cx-mat.cc Wed Dec 13 15:48:06 2023 -0500 @@ -294,7 +294,7 @@ bool octave_float_complex_matrix::save_ascii (std::ostream& os) { - dim_vector dv = dims (); + const dim_vector& dv = dims (); if (dv.ndims () > 2) { @@ -399,7 +399,7 @@ bool octave_float_complex_matrix::save_binary (std::ostream& os, bool) { - dim_vector dv = dims (); + const dim_vector& dv = dims (); if (dv.ndims () < 1) return false; @@ -511,7 +511,7 @@ #if defined (HAVE_HDF5) - dim_vector dv = dims (); + const dim_vector& dv = dims (); int empty = save_hdf5_empty (loc_id, name, dv); if (empty) return (empty > 0);
--- a/libinterp/octave-value/ov-flt-re-mat.cc Wed Dec 13 19:58:48 2023 +0100 +++ b/libinterp/octave-value/ov-flt-re-mat.cc Wed Dec 13 15:48:06 2023 -0500 @@ -328,7 +328,7 @@ octave_float_matrix::convert_to_str_internal (bool, bool, char type) const { octave_value retval; - dim_vector dv = dims (); + const dim_vector& dv = dims (); octave_idx_type nel = dv.numel (); charNDArray chm (dv); @@ -370,7 +370,7 @@ bool octave_float_matrix::save_ascii (std::ostream& os) { - dim_vector dv = dims (); + const dim_vector& dv = dims (); if (dv.ndims () > 2) { @@ -475,7 +475,7 @@ bool octave_float_matrix::save_binary (std::ostream& os, bool) { - dim_vector dv = dims (); + const dim_vector& dv = dims (); if (dv.ndims () < 1) return false; @@ -584,7 +584,7 @@ #if defined (HAVE_HDF5) - dim_vector dv = dims (); + const dim_vector& dv = dims (); int empty = save_hdf5_empty (loc_id, name, dv); if (empty) return (empty > 0);
--- a/libinterp/octave-value/ov-intx.h Wed Dec 13 19:58:48 2023 +0100 +++ b/libinterp/octave-value/ov-intx.h Wed Dec 13 15:48:06 2023 -0500 @@ -146,7 +146,7 @@ matrix_value (bool = false) const { Matrix retval; - dim_vector dv = dims (); + const dim_vector& dv = dims (); if (dv.ndims () > 2) error ("invalid conversion of %s to Matrix", type_name ().c_str ()); @@ -163,7 +163,7 @@ float_matrix_value (bool = false) const { FloatMatrix retval; - dim_vector dv = dims (); + const dim_vector& dv = dims (); if (dv.ndims () > 2) error ("invalid conversion of %s to FloatMatrix", type_name ().c_str ()); @@ -180,7 +180,7 @@ complex_matrix_value (bool = false) const { ComplexMatrix retval; - dim_vector dv = dims (); + const dim_vector& dv = dims (); if (dv.ndims () > 2) error ("invalid conversion of %s to Matrix", type_name ().c_str ()); @@ -197,7 +197,7 @@ float_complex_matrix_value (bool = false) const { FloatComplexMatrix retval; - dim_vector dv = dims (); + const dim_vector& dv = dims (); if (dv.ndims () > 2) error ("invalid conversion of %s to FloatMatrix", type_name ().c_str ());
--- a/libinterp/octave-value/ov-java.cc Wed Dec 13 19:58:48 2023 +0100 +++ b/libinterp/octave-value/ov-java.cc Wed Dec 13 15:48:06 2023 -0500 @@ -1835,7 +1835,7 @@ { jclass_ref mcls (jni_env, find_octave_class (jni_env, "org/octave/Matrix")); - dim_vector dims = val.dims (); + const dim_vector& dims = val.dims (); jintArray_ref iv (jni_env, jni_env->NewIntArray (dims.ndims ())); jint *iv_data = jni_env->GetIntArrayElements (jintArray (iv), nullptr);
--- a/libinterp/octave-value/ov-perm.cc Wed Dec 13 19:58:48 2023 +0100 +++ b/libinterp/octave-value/ov-perm.cc Wed Dec 13 15:48:06 2023 -0500 @@ -442,7 +442,7 @@ bool octave_perm_matrix::print_as_scalar () const { - dim_vector dv = dims (); + const dim_vector& dv = dims (); return (dv.all_ones () || dv.any_zero ()); }
--- a/libinterp/octave-value/ov-re-mat.cc Wed Dec 13 19:58:48 2023 +0100 +++ b/libinterp/octave-value/ov-re-mat.cc Wed Dec 13 15:48:06 2023 -0500 @@ -431,7 +431,7 @@ octave_matrix::convert_to_str_internal (bool, bool, char type) const { octave_value retval; - dim_vector dv = dims (); + const dim_vector& dv = dims (); octave_idx_type nel = dv.numel (); charNDArray chm (dv); @@ -473,7 +473,7 @@ bool octave_matrix::save_ascii (std::ostream& os) { - dim_vector dv = dims (); + const dim_vector& dv = dims (); if (dv.ndims () > 2) { @@ -579,7 +579,7 @@ octave_matrix::save_binary (std::ostream& os, bool save_as_floats) { - dim_vector dv = dims (); + const dim_vector& dv = dims (); if (dv.ndims () < 1) return false; @@ -699,7 +699,7 @@ #if defined (HAVE_HDF5) - dim_vector dv = dims (); + const dim_vector& dv = dims (); int empty = save_hdf5_empty (loc_id, name, dv); if (empty) return (empty > 0);
--- a/libinterp/octave-value/ov-re-sparse.cc Wed Dec 13 19:58:48 2023 +0100 +++ b/libinterp/octave-value/ov-re-sparse.cc Wed Dec 13 15:48:06 2023 -0500 @@ -162,7 +162,7 @@ octave_sparse_matrix::convert_to_str_internal (bool, bool, char type) const { octave_value retval; - dim_vector dv = dims (); + const dim_vector& dv = dims (); octave_idx_type nel = dv.numel (); if (nel == 0) @@ -222,7 +222,7 @@ bool octave_sparse_matrix::save_binary (std::ostream& os, bool save_as_floats) { - dim_vector dv = this->dims (); + const dim_vector& dv = this->dims (); if (dv.ndims () < 1) return false; @@ -364,7 +364,7 @@ #if defined (HAVE_HDF5) - dim_vector dv = dims (); + const dim_vector& dv = dims (); int empty = save_hdf5_empty (loc_id, name, dv); if (empty) return (empty > 0);
--- a/libinterp/octave-value/ov-str-mat.cc Wed Dec 13 19:58:48 2023 +0100 +++ b/libinterp/octave-value/ov-str-mat.cc Wed Dec 13 15:48:06 2023 -0500 @@ -312,7 +312,7 @@ } std::string tname = type_name (); - dim_vector dv = m_matrix.dims (); + const dim_vector& dv = m_matrix.dims (); std::string dimstr = dv.str (); return "[" + dimstr + " " + tname + "]"; } @@ -320,7 +320,7 @@ bool octave_char_matrix_str::save_ascii (std::ostream& os) { - dim_vector dv = dims (); + const dim_vector& dv = dims (); if (dv.ndims () > 2) { charNDArray tmp = char_array_value (); @@ -472,7 +472,7 @@ octave_char_matrix_str::save_binary (std::ostream& os, bool /* save_as_floats */) { - dim_vector dv = dims (); + const dim_vector& dv = dims (); if (dv.ndims () < 1) return false; @@ -572,7 +572,7 @@ #if defined (HAVE_HDF5) - dim_vector dv = dims (); + const dim_vector& dv = dims (); int empty = save_hdf5_empty (loc_id, name, dv); if (empty) return (empty > 0);
--- a/libinterp/octave-value/ov-struct.cc Wed Dec 13 19:58:48 2023 +0100 +++ b/libinterp/octave-value/ov-struct.cc Wed Dec 13 15:48:06 2023 -0500 @@ -634,7 +634,7 @@ increment_indent_level (); indent (os); - dim_vector dv = dims (); + const dim_vector& dv = dims (); os << dv.str () << " struct array containing the fields:"; newline (os); @@ -727,7 +727,7 @@ } std::string tname = val.type_name (); - dim_vector dv = val.dims (); + const dim_vector& dv = val.dims (); std::string dimstr = dv.str (); return "[" + dimstr + " " + tname + "]"; } @@ -845,7 +845,7 @@ octave_idx_type nf = m.nfields (); - dim_vector dv = dims (); + const dim_vector& dv = dims (); if (dv.ndims () < 1) return false; @@ -1382,7 +1382,7 @@ { indent (os); os << key; - dim_vector dv = val.dims (); + const dim_vector& dv = val.dims (); os << ": " << dv.str () << ' ' << val.type_name (); newline (os); } @@ -1443,7 +1443,7 @@ octave_value val = m_map.contents (r); std::string tname = val.type_name (); - dim_vector dv = val.dims (); + const dim_vector& dv = val.dims (); std::string dimstr = dv.str (); return "[" + dimstr + " " + tname + "]"; }
--- a/libinterp/octave-value/ovl.cc Wed Dec 13 19:58:48 2023 +0100 +++ b/libinterp/octave-value/ovl.cc Wed Dec 13 15:48:06 2023 -0500 @@ -191,7 +191,7 @@ for (octave_idx_type i = 0; i < n; i++) { - dim_vector dv = elem(i).dims (); + const dim_vector& dv = elem(i).dims (); if (! dv.all_ones ()) return false; }
--- a/libinterp/operators/op-int.h Wed Dec 13 19:58:48 2023 +0100 +++ b/libinterp/operators/op-int.h Wed Dec 13 15:48:06 2023 -0500 @@ -702,8 +702,8 @@ static octave_value \ elem_xpow (const T1 ## NDArray& a, const T2 ## NDArray& b) \ { \ - dim_vector a_dims = a.dims (); \ - dim_vector b_dims = b.dims (); \ + const dim_vector& a_dims = a.dims (); \ + const dim_vector& b_dims = b.dims (); \ if (a_dims != b_dims) \ { \ if (! is_valid_bsxfun ("operator .^", a_dims, b_dims)) \ @@ -723,8 +723,8 @@ static octave_value \ elem_xpow (const T1 ## NDArray& a, const NDArray& b) \ { \ - dim_vector a_dims = a.dims (); \ - dim_vector b_dims = b.dims (); \ + const dim_vector& a_dims = a.dims (); \ + const dim_vector& b_dims = b.dims (); \ if (a_dims != b_dims) \ { \ if (! is_valid_bsxfun ("operator .^", a_dims, b_dims)) \ @@ -744,8 +744,8 @@ static octave_value \ elem_xpow (const NDArray& a, const T2 ## NDArray& b) \ { \ - dim_vector a_dims = a.dims (); \ - dim_vector b_dims = b.dims (); \ + const dim_vector& a_dims = a.dims (); \ + const dim_vector& b_dims = b.dims (); \ if (a_dims != b_dims) \ { \ if (! is_valid_bsxfun ("operator .^", a_dims, b_dims)) \ @@ -765,8 +765,8 @@ static octave_value \ elem_xpow (const T1 ## NDArray& a, const FloatNDArray& b) \ { \ - dim_vector a_dims = a.dims (); \ - dim_vector b_dims = b.dims (); \ + const dim_vector& a_dims = a.dims (); \ + const dim_vector& b_dims = b.dims (); \ if (a_dims != b_dims) \ { \ if (! is_valid_bsxfun ("operator .^", a_dims, b_dims)) \ @@ -786,8 +786,8 @@ static octave_value \ elem_xpow (const FloatNDArray& a, const T2 ## NDArray& b) \ { \ - dim_vector a_dims = a.dims (); \ - dim_vector b_dims = b.dims (); \ + const dim_vector& a_dims = a.dims (); \ + const dim_vector& b_dims = b.dims (); \ if (a_dims != b_dims) \ { \ if (! is_valid_bsxfun ("operator .^", a_dims, b_dims)) \
--- a/libinterp/operators/op-str-str.cc Wed Dec 13 19:58:48 2023 +0100 +++ b/libinterp/operators/op-str-str.cc Wed Dec 13 15:48:06 2023 -0500 @@ -57,8 +57,8 @@ CONCAT2(oct_binop_, name) (const octave_base_value& a1, \ const octave_base_value& a2) \ { \ - dim_vector a1_dims = a1.dims (); \ - dim_vector a2_dims = a2.dims (); \ + const dim_vector& a1_dims = a1.dims (); \ + const dim_vector& a2_dims = a2.dims (); \ \ bool a1_is_scalar = a1_dims.all_ones (); \ bool a2_is_scalar = a2_dims.all_ones (); \
--- a/libinterp/operators/op-struct.cc Wed Dec 13 19:58:48 2023 +0100 +++ b/libinterp/operators/op-struct.cc Wed Dec 13 15:48:06 2023 -0500 @@ -70,7 +70,7 @@ OCTAVE_CAST_BASE_VALUE (const octave_matrix&, v2, a2); NDArray tmp = v2.array_value (); - dim_vector dv = tmp.dims (); + const dim_vector& dv = tmp.dims (); if (! dv.all_zero ()) error ("invalid concatenation of structure with matrix"); @@ -87,7 +87,7 @@ OCTAVE_CAST_BASE_VALUE (const octave_struct&, v2, a2); NDArray tmp = v1.array_value (); - dim_vector dv = tmp.dims (); + const dim_vector& dv = tmp.dims (); if (! dv.all_zero ()) error ("invalid concatenation of structure with matrix");
--- a/libinterp/parse-tree/pt-eval.cc Wed Dec 13 19:58:48 2023 +0100 +++ b/libinterp/parse-tree/pt-eval.cc Wed Dec 13 15:48:06 2023 -0500 @@ -3190,7 +3190,7 @@ // A matrix or cell is reshaped to 2 dimensions and iterated by // columns. - dim_vector dv = rhs.dims ().redim (2); + const dim_vector& dv = rhs.dims ().redim (2); octave_idx_type nrows = dv(0); octave_idx_type steps = dv(1);
--- a/libinterp/parse-tree/pt-tm-const.cc Wed Dec 13 19:58:48 2023 +0100 +++ b/libinterp/parse-tree/pt-tm-const.cc Wed Dec 13 15:48:06 2023 -0500 @@ -88,7 +88,7 @@ { octave_quit (); - dim_vector this_elt_dv = val.dims (); + const dim_vector& this_elt_dv = val.dims (); if (! this_elt_dv.zero_by_zero ()) { @@ -111,7 +111,7 @@ m_class_name = get_concat_class (m_class_name, this_elt_class_name); - dim_vector this_elt_dv = val.dims (); + const dim_vector& this_elt_dv = val.dims (); if (! this_elt_dv.zero_by_zero ()) { @@ -207,7 +207,7 @@ { octave_quit (); - dim_vector this_elt_dv = val.dims (); + const dim_vector& this_elt_dv = val.dims (); if (! this_elt_dv.zero_by_zero ()) { @@ -399,7 +399,7 @@ std::string this_elt_class_name = elt.class_name (); m_class_name = get_concat_class (m_class_name, this_elt_class_name); - dim_vector this_elt_dv = elt.dims (); + const dim_vector& this_elt_dv = elt.dims (); m_all_empty = false;
--- a/liboctave/array/Array-base.cc Wed Dec 13 19:58:48 2023 +0100 +++ b/liboctave/array/Array-base.cc Wed Dec 13 15:48:06 2023 -0500 @@ -749,7 +749,7 @@ // Indexed object and index are both vectors. Set result size // and orientation as above. - dim_vector dv = dims (); + const dim_vector& dv = dims (); result_dims = dv.make_nd_vector (idx_len); } @@ -777,7 +777,7 @@ Array<T, Alloc>::index (const octave::idx_vector& i, const octave::idx_vector& j) const { // Get dimensions, allowing Fortran indexing in the 2nd dim. - dim_vector dv = m_dimensions.redim (2); + const dim_vector& dv = m_dimensions.redim (2); octave_idx_type r = dv(0); octave_idx_type c = dv(1); Array<T, Alloc> retval; @@ -1072,7 +1072,7 @@ Array<T, Alloc> tmp = *this; if (resize_ok) { - dim_vector dv = m_dimensions.redim (2); + const dim_vector& dv = m_dimensions.redim (2); octave_idx_type r = dv(0); octave_idx_type c = dv(1); octave_idx_type rx = i.extent (r); @@ -1101,7 +1101,7 @@ if (resize_ok) { int ial = ia.numel (); - dim_vector dv = m_dimensions.redim (ial); + const dim_vector& dv = m_dimensions.redim (ial); dim_vector dvx = dim_vector::alloc (ial); for (int i = 0; i < ial; i++) dvx(i) = ia(i).extent (dv(i)); @@ -1898,7 +1898,7 @@ Array<T, Alloc> m (dims ()); - dim_vector dv = m.dims (); + const dim_vector& dv = m.dims (); if (m.numel () < 1) { @@ -2540,7 +2540,7 @@ Array<T, Alloc> Array<T, Alloc>::diag (octave_idx_type k) const { - dim_vector dv = dims (); + const dim_vector& dv = dims (); octave_idx_type nd = dv.ndims (); Array<T, Alloc> d; @@ -2685,7 +2685,7 @@ { for (octave_idx_type i = 0; i < n; i++) { - dim_vector dv = array_list[i].dims (); + const dim_vector& dv = array_list[i].dims (); if (dv.zero_by_zero ()) istart++; @@ -2791,7 +2791,7 @@ std::ostream& operator << (std::ostream& os, const Array<T, Alloc>& a) { - dim_vector a_dims = a.dims (); + const dim_vector& a_dims = a.dims (); int n_dims = a_dims.ndims ();
--- a/liboctave/array/Array-util.cc Wed Dec 13 19:58:48 2023 +0100 +++ b/liboctave/array/Array-util.cc Wed Dec 13 15:48:06 2023 -0500 @@ -617,7 +617,7 @@ { OCTAVE_LOCAL_BUFFER (Array<octave_idx_type>, rdata, n); - dim_vector odv = idx.orig_dimensions (); + const dim_vector& odv = idx.orig_dimensions (); for (octave_idx_type j = 0; j < n; j++) rdata[j] = Array<octave_idx_type> (odv);
--- a/liboctave/array/CNDArray.cc Wed Dec 13 19:58:48 2023 +0100 +++ b/liboctave/array/CNDArray.cc Wed Dec 13 15:48:06 2023 -0500 @@ -57,7 +57,7 @@ ComplexNDArray ComplexNDArray::fourier (int dim) const { - dim_vector dv = dims (); + const dim_vector& dv = dims (); if (dim > dv.ndims () || dim < 0) return ComplexNDArray (); @@ -88,7 +88,7 @@ ComplexNDArray ComplexNDArray::ifourier (int dim) const { - dim_vector dv = dims (); + const dim_vector& dv = dims (); if (dim > dv.ndims () || dim < 0) return ComplexNDArray (); @@ -119,7 +119,7 @@ ComplexNDArray ComplexNDArray::fourier2d () const { - dim_vector dv = dims (); + const dim_vector& dv = dims (); if (dv.ndims () < 2) return ComplexNDArray (); @@ -139,7 +139,7 @@ ComplexNDArray ComplexNDArray::ifourier2d () const { - dim_vector dv = dims (); + const dim_vector& dv = dims (); if (dv.ndims () < 2) return ComplexNDArray (); @@ -159,7 +159,7 @@ ComplexNDArray ComplexNDArray::fourierNd () const { - dim_vector dv = dims (); + const dim_vector& dv = dims (); int rank = dv.ndims (); const Complex *in (data ()); @@ -174,7 +174,7 @@ ComplexNDArray ComplexNDArray::ifourierNd () const { - dim_vector dv = dims (); + const dim_vector& dv = dims (); int rank = dv.ndims (); const Complex *in (data ()); @@ -507,8 +507,8 @@ ComplexNDArray& ComplexNDArray::insert (const NDArray& a, octave_idx_type r, octave_idx_type c) { - dim_vector a_dv = a.dims (); - dim_vector dv = dims (); + const dim_vector& a_dv = a.dims (); + const dim_vector& dv = dims (); int n = a_dv.ndims ();
--- a/liboctave/array/CSparse.cc Wed Dec 13 19:58:48 2023 +0100 +++ b/liboctave/array/CSparse.cc Wed Dec 13 15:48:06 2023 -0500 @@ -193,7 +193,7 @@ SparseComplexMatrix::max (Array<octave_idx_type>& idx_arg, int dim) const { SparseComplexMatrix result; - dim_vector dv = dims (); + const dim_vector& dv = dims (); octave_idx_type nr = dv(0); octave_idx_type nc = dv(1); @@ -350,7 +350,7 @@ SparseComplexMatrix::min (Array<octave_idx_type>& idx_arg, int dim) const { SparseComplexMatrix result; - dim_vector dv = dims (); + const dim_vector& dv = dims (); octave_idx_type nr = dv(0); octave_idx_type nc = dv(1);
--- a/liboctave/array/Sparse.cc Wed Dec 13 19:58:48 2023 +0100 +++ b/liboctave/array/Sparse.cc Wed Dec 13 15:48:06 2023 -0500 @@ -271,7 +271,7 @@ (*current_liboctave_error_handler) ("Sparse::Sparse (const Sparse&, const dim_vector&): dimension mismatch"); - dim_vector old_dims = a.dims (); + const dim_vector& old_dims = a.dims (); octave_idx_type new_nzmax = a.nnz (); octave_idx_type new_nr = dv(0); octave_idx_type new_nc = dv(1);
--- a/liboctave/array/dNDArray.cc Wed Dec 13 19:58:48 2023 +0100 +++ b/liboctave/array/dNDArray.cc Wed Dec 13 15:48:06 2023 -0500 @@ -99,7 +99,7 @@ ComplexNDArray NDArray::fourier (int dim) const { - dim_vector dv = dims (); + const dim_vector& dv = dims (); if (dim > dv.ndims () || dim < 0) return ComplexNDArray (); @@ -130,7 +130,7 @@ ComplexNDArray NDArray::ifourier (int dim) const { - dim_vector dv = dims (); + const dim_vector& dv = dims (); if (dim > dv.ndims () || dim < 0) return ComplexNDArray (); @@ -160,7 +160,7 @@ ComplexNDArray NDArray::fourier2d () const { - dim_vector dv = dims (); + const dim_vector& dv = dims (); if (dv.ndims () < 2) return ComplexNDArray (); @@ -180,7 +180,7 @@ ComplexNDArray NDArray::ifourier2d () const { - dim_vector dv = dims (); + const dim_vector& dv = dims (); if (dv.ndims () < 2) return ComplexNDArray (); @@ -199,7 +199,7 @@ ComplexNDArray NDArray::fourierNd () const { - dim_vector dv = dims (); + const dim_vector& dv = dims (); int rank = dv.ndims (); const double *in (data ()); @@ -214,7 +214,7 @@ ComplexNDArray NDArray::ifourierNd () const { - dim_vector dv = dims (); + const dim_vector& dv = dims (); int rank = dv.ndims (); ComplexNDArray tmp (*this);
--- a/liboctave/array/dSparse.cc Wed Dec 13 19:58:48 2023 +0100 +++ b/liboctave/array/dSparse.cc Wed Dec 13 15:48:06 2023 -0500 @@ -193,7 +193,7 @@ SparseMatrix::max (Array<octave_idx_type>& idx_arg, int dim) const { SparseMatrix result; - dim_vector dv = dims (); + const dim_vector& dv = dims (); octave_idx_type nr = dv(0); octave_idx_type nc = dv(1); @@ -344,7 +344,7 @@ SparseMatrix::min (Array<octave_idx_type>& idx_arg, int dim) const { SparseMatrix result; - dim_vector dv = dims (); + const dim_vector& dv = dims (); octave_idx_type nr = dv(0); octave_idx_type nc = dv(1);
--- a/liboctave/array/fCNDArray.cc Wed Dec 13 19:58:48 2023 +0100 +++ b/liboctave/array/fCNDArray.cc Wed Dec 13 15:48:06 2023 -0500 @@ -57,7 +57,7 @@ FloatComplexNDArray FloatComplexNDArray::fourier (int dim) const { - dim_vector dv = dims (); + const dim_vector& dv = dims (); if (dim > dv.ndims () || dim < 0) return FloatComplexNDArray (); @@ -88,7 +88,7 @@ FloatComplexNDArray FloatComplexNDArray::ifourier (int dim) const { - dim_vector dv = dims (); + const dim_vector& dv = dims (); if (dim > dv.ndims () || dim < 0) return FloatComplexNDArray (); @@ -119,7 +119,7 @@ FloatComplexNDArray FloatComplexNDArray::fourier2d () const { - dim_vector dv = dims (); + const dim_vector& dv = dims (); if (dv.ndims () < 2) return FloatComplexNDArray (); @@ -139,7 +139,7 @@ FloatComplexNDArray FloatComplexNDArray::ifourier2d () const { - dim_vector dv = dims (); + const dim_vector& dv = dims (); if (dv.ndims () < 2) return FloatComplexNDArray (); @@ -159,7 +159,7 @@ FloatComplexNDArray FloatComplexNDArray::fourierNd () const { - dim_vector dv = dims (); + const dim_vector& dv = dims (); int rank = dv.ndims (); const FloatComplex *in (data ()); @@ -174,7 +174,7 @@ FloatComplexNDArray FloatComplexNDArray::ifourierNd () const { - dim_vector dv = dims (); + const dim_vector& dv = dims (); int rank = dv.ndims (); const FloatComplex *in (data ()); @@ -520,8 +520,8 @@ FloatComplexNDArray::insert (const NDArray& a, octave_idx_type r, octave_idx_type c) { - dim_vector a_dv = a.dims (); - dim_vector dv = dims (); + const dim_vector& a_dv = a.dims (); + const dim_vector& dv = dims (); int n = a_dv.ndims ();
--- a/liboctave/array/fNDArray.cc Wed Dec 13 19:58:48 2023 +0100 +++ b/liboctave/array/fNDArray.cc Wed Dec 13 15:48:06 2023 -0500 @@ -57,7 +57,7 @@ FloatComplexNDArray FloatNDArray::fourier (int dim) const { - dim_vector dv = dims (); + const dim_vector& dv = dims (); if (dim > dv.ndims () || dim < 0) return FloatComplexNDArray (); @@ -88,7 +88,7 @@ FloatComplexNDArray FloatNDArray::ifourier (int dim) const { - dim_vector dv = dims (); + const dim_vector& dv = dims (); if (dim > dv.ndims () || dim < 0) return FloatComplexNDArray (); @@ -118,7 +118,7 @@ FloatComplexNDArray FloatNDArray::fourier2d () const { - dim_vector dv = dims (); + const dim_vector& dv = dims (); if (dv.ndims () < 2) return FloatComplexNDArray (); @@ -138,7 +138,7 @@ FloatComplexNDArray FloatNDArray::ifourier2d () const { - dim_vector dv = dims (); + const dim_vector& dv = dims (); if (dv.ndims () < 2) return FloatComplexNDArray (); @@ -157,7 +157,7 @@ FloatComplexNDArray FloatNDArray::fourierNd () const { - dim_vector dv = dims (); + const dim_vector& dv = dims (); int rank = dv.ndims (); const float *in (data ()); @@ -172,7 +172,7 @@ FloatComplexNDArray FloatNDArray::ifourierNd () const { - dim_vector dv = dims (); + const dim_vector& dv = dims (); int rank = dv.ndims (); FloatComplexNDArray tmp (*this);
--- a/liboctave/numeric/bsxfun-defs.cc Wed Dec 13 19:58:48 2023 +0100 +++ b/liboctave/numeric/bsxfun-defs.cc Wed Dec 13 15:48:06 2023 -0500 @@ -44,8 +44,8 @@ void (*op_vs) (std::size_t, R *, const X *, Y)) { int nd = std::max (x.ndims (), y.ndims ()); - dim_vector dvx = x.dims ().redim (nd); - dim_vector dvy = y.dims ().redim (nd); + const dim_vector& dvx = x.dims ().redim (nd); + const dim_vector& dvy = y.dims ().redim (nd); // Construct the result dimensions. dim_vector dvr; @@ -143,7 +143,7 @@ void (*op_vv) (std::size_t, R *, const X *), void (*op_vs) (std::size_t, R *, X)) { - dim_vector dvr = r.dims (); + const dim_vector& dvr = r.dims (); dim_vector dvx = x.dims (); octave_idx_type nd = r.ndims (); dvx = dvx.redim (nd);
--- a/liboctave/numeric/lo-specfun.cc Wed Dec 13 19:58:48 2023 +0100 +++ b/liboctave/numeric/lo-specfun.cc Wed Dec 13 15:48:06 2023 -0500 @@ -170,7 +170,7 @@ airy (const ComplexNDArray& z, bool deriv, bool scaled, Array<octave_idx_type>& ierr) { - dim_vector dv = z.dims (); + const dim_vector& dv = z.dims (); octave_idx_type nel = dv.numel (); ComplexNDArray retval (dv); @@ -228,7 +228,7 @@ airy (const FloatComplexNDArray& z, bool deriv, bool scaled, Array<octave_idx_type>& ierr) { - dim_vector dv = z.dims (); + const dim_vector& dv = z.dims (); octave_idx_type nel = dv.numel (); FloatComplexNDArray retval (dv); @@ -643,7 +643,7 @@ do_bessel (dptr f, const char *, double alpha, const ComplexNDArray& x, bool scaled, Array<octave_idx_type>& ierr) { - dim_vector dv = x.dims (); + const dim_vector& dv = x.dims (); octave_idx_type nel = dv.numel (); ComplexNDArray retval (dv); @@ -659,7 +659,7 @@ do_bessel (dptr f, const char *, const NDArray& alpha, const Complex& x, bool scaled, Array<octave_idx_type>& ierr) { - dim_vector dv = alpha.dims (); + const dim_vector& dv = alpha.dims (); octave_idx_type nel = dv.numel (); ComplexNDArray retval (dv); @@ -675,7 +675,7 @@ do_bessel (dptr f, const char *fn, const NDArray& alpha, const ComplexNDArray& x, bool scaled, Array<octave_idx_type>& ierr) { - dim_vector dv = x.dims (); + const dim_vector& dv = x.dims (); ComplexNDArray retval; if (dv != alpha.dims ()) @@ -1185,7 +1185,7 @@ do_bessel (fptr f, const char *, float alpha, const FloatComplexNDArray& x, bool scaled, Array<octave_idx_type>& ierr) { - dim_vector dv = x.dims (); + const dim_vector& dv = x.dims (); octave_idx_type nel = dv.numel (); FloatComplexNDArray retval (dv); @@ -1201,7 +1201,7 @@ do_bessel (fptr f, const char *, const FloatNDArray& alpha, const FloatComplex& x, bool scaled, Array<octave_idx_type>& ierr) { - dim_vector dv = alpha.dims (); + const dim_vector& dv = alpha.dims (); octave_idx_type nel = dv.numel (); FloatComplexNDArray retval (dv); @@ -1218,7 +1218,7 @@ const FloatComplexNDArray& x, bool scaled, Array<octave_idx_type>& ierr) { - dim_vector dv = x.dims (); + const dim_vector& dv = x.dims (); FloatComplexNDArray retval; if (dv != alpha.dims ()) @@ -1392,7 +1392,7 @@ biry (const ComplexNDArray& z, bool deriv, bool scaled, Array<octave_idx_type>& ierr) { - dim_vector dv = z.dims (); + const dim_vector& dv = z.dims (); octave_idx_type nel = dv.numel (); ComplexNDArray retval (dv); @@ -1450,7 +1450,7 @@ biry (const FloatComplexNDArray& z, bool deriv, bool scaled, Array<octave_idx_type>& ierr) { - dim_vector dv = z.dims (); + const dim_vector& dv = z.dims (); octave_idx_type nel = dv.numel (); FloatComplexNDArray retval (dv);
--- a/liboctave/operators/mx-inlines.cc Wed Dec 13 19:58:48 2023 +0100 +++ b/liboctave/operators/mx-inlines.cc Wed Dec 13 15:48:06 2023 -0500 @@ -1573,7 +1573,7 @@ octave_idx_type, octave_idx_type)) { octave_idx_type l, n, u; - dim_vector dims = src.dims (); + const dim_vector& dims = src.dims (); get_extent_triplet (dims, dim, l, n, u); // Cumulative operation doesn't reduce the array size. @@ -1633,7 +1633,7 @@ octave_idx_type, octave_idx_type)) { octave_idx_type l, n, u; - dim_vector dims = src.dims (); + const dim_vector& dims = src.dims (); get_extent_triplet (dims, dim, l, n, u); Array<R> ret (dims); @@ -1649,7 +1649,7 @@ octave_idx_type, octave_idx_type, octave_idx_type)) { octave_idx_type l, n, u; - dim_vector dims = src.dims (); + const dim_vector& dims = src.dims (); get_extent_triplet (dims, dim, l, n, u); Array<R> ret (dims);
--- a/liboctave/util/oct-binmap.h Wed Dec 13 19:58:48 2023 +0100 +++ b/liboctave/util/oct-binmap.h Wed Dec 13 15:48:06 2023 -0500 @@ -173,8 +173,8 @@ Array<U> binmap (const Array<T>& xa, const Array<R>& ya, F fcn, const char *name) { - dim_vector xad = xa.dims (); - dim_vector yad = ya.dims (); + const dim_vector& xad = xa.dims (); + const dim_vector& yad = ya.dims (); if (xa.numel () == 1) return binmap<U, T, R, F> (xa(0), ya, fcn); else if (ya.numel () == 1)