changeset 10270:6ffed9bb5598

fix ipermute
author Jaroslav Hajek <highegg@gmail.com>
date Mon, 08 Feb 2010 07:09:03 +0100
parents 217d36560dfa
children 297996005012
files liboctave/Array.cc liboctave/ChangeLog
diffstat 2 files changed, 7 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/liboctave/Array.cc	Sat Feb 06 11:11:43 2010 +0100
+++ b/liboctave/Array.cc	Mon Feb 08 07:09:03 2010 +0100
@@ -469,8 +469,6 @@
           checked[perm_elt] = true;
           identity = identity && perm_elt == i;
         }
-
-      dv_new(i) = dv(perm_elt);
     }
 
   if (identity)
@@ -482,6 +480,9 @@
         perm_vec(perm_vec_arg(i)) = i;
     }
 
+  for (int i = 0; i < perm_vec_len; i++)
+    dv_new(i) = dv(perm_vec(i));
+
   retval = Array<T> (dv_new);
 
   if (numel () > 0)
--- a/liboctave/ChangeLog	Sat Feb 06 11:11:43 2010 +0100
+++ b/liboctave/ChangeLog	Mon Feb 08 07:09:03 2010 +0100
@@ -1,3 +1,7 @@
+2010-02-08  Jaroslav Hajek  <highegg@gmail.com>
+
+	* Array.cc (Array<T>::permute): Fix result dimensions when inv=true.
+
 2010-02-05  Jaroslav Hajek  <highegg@gmail.com>
 
 	* MArrayN.cc (MArrayN::idx_min, MArrayN::idx_max): New methods.