changeset 9399:a5f6b5800f86

fix bug in recursive lookup
author Jaroslav Hajek <highegg@gmail.com>
date Fri, 26 Jun 2009 07:13:28 +0200
parents 684312a5291c
children df1ea906c1c4
files liboctave/ChangeLog liboctave/oct-sort.cc scripts/general/interp2.m
diffstat 3 files changed, 12 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/liboctave/ChangeLog	Thu Jun 25 18:58:53 2009 -0400
+++ b/liboctave/ChangeLog	Fri Jun 26 07:13:28 2009 +0200
@@ -1,3 +1,8 @@
+2009-06-26  Jaroslav Hajek  <highegg@gmail.com>
+
+	* oct-sort.cc (octave_sort<T>::lookup_merge<Comp>): Fix lower-part
+	recursion.
+
 2009-06-24  Alexander Barth  <barth.alexander@gmail.com>
 
 	* eigs-base.cc (EigsRealSymmetricMatrix,
--- a/liboctave/oct-sort.cc	Thu Jun 25 18:58:53 2009 -0400
+++ b/liboctave/oct-sort.cc	Fri Jun 26 07:13:28 2009 +0200
@@ -1861,7 +1861,7 @@
               if (idx[k] - lo <= hi - idx[k])
                 {
                   // The smaller portion is run recursively.
-                  lookup_merge (data, idx[k], k, values, k, idx, comp);
+                  lookup_merge (data, lo, idx[k], values, k, idx, comp);
                   // Simulate a tail call.
                   lo = idx[k];
                   values += k; nvalues -= k; idx += k;
@@ -1871,7 +1871,7 @@
                 {
                   // The smaller portion is run recursively.
                   lookup_merge (data, idx[k], hi, 
-                                values + k, nvalues - k, idx, comp);
+                                values + k, nvalues - k, idx + k, comp);
                   // Simulate a tail call.
                   hi = idx[k];
                   nvalues = k;
--- a/scripts/general/interp2.m	Thu Jun 25 18:58:53 2009 -0400
+++ b/scripts/general/interp2.m	Fri Jun 26 07:13:28 2009 +0200
@@ -207,6 +207,11 @@
     xidx = lookup (X, XI, "lr");
     yidx = lookup (Y, YI, "lr");
 
+    if (min (xidx) <= 0)
+      save bad_data X XI
+    endif
+
+
     if (strcmp (method, "linear"))
       ## each quad satisfies the equation z(x,y)=a+b*x+c*y+d*xy
       ##