changeset 9198:3b9aacf07744

optimize accumarray with constant ranges
author Jaroslav Hajek <highegg@gmail.com>
date Fri, 15 May 2009 07:07:40 +0200
parents 3c27a0340a64
children 399884c9d4a1
files src/ChangeLog src/data.cc
diffstat 2 files changed, 11 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/ChangeLog	Thu May 14 16:03:58 2009 -0700
+++ b/src/ChangeLog	Fri May 15 07:07:40 2009 +0200
@@ -1,3 +1,7 @@
+2009-05-12  Jaroslav Hajek  <highegg@gmail.com>
+
+	* data.cc (F__accumarray_sum__): Optimize the constant range case.
+
 2009-05-11  John W. Eaton  <jwe@octave.org>
 
 	* sparse-xdiv.cc (do_rightdiv_sm_dm, do_leftdiv_dm_sm):
--- a/src/data.cc	Thu May 14 16:03:58 2009 -0700
+++ b/src/data.cc	Fri May 15 07:07:40 2009 +0200
@@ -5879,6 +5879,13 @@
       if (! error_state)
         {
           octave_value vals = args(1);
+          if (vals.is_range ())
+            {
+              Range r = vals.range_value ();
+              if (r.inc () == 0)
+                vals = r.base ();
+            }
+
           if (vals.is_single_type ())
             {
               if (vals.is_complex_type ())