changeset 32580:324c67c33dbd

mx-inlines.cc: Avoid unnecessary copy of dim_vector for performance (bug #64962) * mx-inlinces.cc (do_mm_binary_op, do_mm_inplace_op): Use constant reference to dim_vector of inputs rather than creating copies.
author Petter .T <petter.vilhelm@gmail.com>
date Thu, 30 Nov 2023 23:04:15 +0100
parents 19f51c7fa341
children 9c5b8e82bbae
files liboctave/operators/mx-inlines.cc
diffstat 1 files changed, 4 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/liboctave/operators/mx-inlines.cc	Sun Dec 10 18:01:29 2023 +0100
+++ b/liboctave/operators/mx-inlines.cc	Thu Nov 30 23:04:15 2023 +0100
@@ -501,8 +501,8 @@
                  void (*op2) (std::size_t, R *, const X *, Y),
                  const char *opname)
 {
-  dim_vector dx = x.dims ();
-  dim_vector dy = y.dims ();
+  const dim_vector &dx = x.dims ();
+  const dim_vector &dy = y.dims ();
   if (dx == dy)
     {
       Array<R> r (dx);
@@ -544,8 +544,8 @@
                   void (*op1) (std::size_t, R *, X),
                   const char *opname)
 {
-  dim_vector dr = r.dims ();
-  dim_vector dx = x.dims ();
+  const dim_vector &dr = r.dims ();
+  const dim_vector &dx = x.dims ();
   if (dr == dx)
     op (r.numel (), r.fortran_vec (), x.data ());
   else if (is_valid_inplace_bsxfun (opname, dr, dx))