Mercurial > octave
diff liboctave/array/CRowVector.cc @ 25237:ca022a8c4015
linspace: handle ranges with equal Inf endpoints (bug #53489)
* CMatrix.cc (ComplexMatrix::linspace): Change delta calculation to yield 0 if
endpoints are the same, otherwise calculate delta as normal.
* CRowVector.cc (ComplexRowVector::linspace): Likewise.
* dMatrix.cc (Matrix::linspace): Likewise.
* dRowVector.cc (RowVector::linspace): Likewise.
* fCMatrix.cc (FloatComplexMatrix::linspace): Likewise.
* fCRowVector.cc (FloatComplexRowVector::linspace): Likewise.
* fMatrix.cc (FloatMatrix::linspace): Likewise.
* fRowVector.cc (FloatRowVector::linspace): Likewise.
* data.cc (Flinspace): Added Matlab compatibility tests.
* logspace.m: Added same tests as in linspace containing Inf in endpoints.
author | Maor Shutman <maorus12@gmail.com> |
---|---|
date | Fri, 06 Apr 2018 20:25:05 +0300 |
parents | 6652d3823428 |
children | cb1606f78f6b |
line wrap: on
line diff
--- a/liboctave/array/CRowVector.cc Thu Apr 12 14:34:10 2018 -0700 +++ b/liboctave/array/CRowVector.cc Fri Apr 06 20:25:05 2018 +0300 @@ -432,7 +432,7 @@ retval(0) = x1; - Complex delta = (x2 - x1) / (n - 1.0); + Complex delta = (x1 == x2) ? 0 : (x2 - x1) / (n - 1.0); for (octave_idx_type i = 1; i < n-1; i++) retval(i) = x1 + static_cast<double> (i)*delta;