diff liboctave/array/dRowVector.cc @ 20501:16b9ec39ff46

Return empty matrix when linspace called with 0 points (bug #45820) * NEWS: Announce change. * data.cc (Flinspace): Verify input N is scalar. Verify inputs BASE, LIMIT are scalar/vectors. Add BIST tests for input validation, complex values, class of output, Matlab compatibility. Clarify documentation about vector inputs. * CMatrix.cc, CRowVector.cc, dMatrix.cc, dRowVector.cc, fCMatrix.cc, fCRowVector.cc, fMatrix.cc, fRowVector.cc: Return empty matrix when N < 1.
author Rik <rik@octave.org>
date Thu, 27 Aug 2015 13:12:21 -0700
parents a9574e3c6e9e
children
line wrap: on
line diff
--- a/liboctave/array/dRowVector.cc	Wed Aug 26 16:05:49 2015 -0400
+++ b/liboctave/array/dRowVector.cc	Thu Aug 27 13:12:21 2015 -0700
@@ -293,14 +293,19 @@
 RowVector
 linspace (double x1, double x2, octave_idx_type n)
 {
-  if (n < 1) n = 1;
+  NoAlias<RowVector> retval;
 
-  NoAlias<RowVector> retval (n);
+  if (n < 1)
+    return retval;
+  else
+    retval.clear (n);
+
+  retval(0) = x1;
 
   double delta = (x2 - x1) / (n - 1);
-  retval(0) = x1;
   for (octave_idx_type i = 1; i < n-1; i++)
     retval(i) = x1 + i*delta;
+
   retval(n-1) = x2;
 
   return retval;