Mercurial > hg > octave-nkf
diff liboctave/fRowVector.cc @ 9653:e087d7c77ff9
improve linspace in liboctave
author | Jaroslav Hajek <highegg@gmail.com> |
---|---|
date | Fri, 18 Sep 2009 15:27:09 +0200 |
parents | 3d6a9aea2aea |
children | 3429c956de6f |
line wrap: on
line diff
--- a/liboctave/fRowVector.cc +++ b/liboctave/fRowVector.cc @@ -311,22 +311,15 @@ FloatRowVector linspace (float x1, float x2, octave_idx_type n) { - FloatRowVector retval; + if (n < 1) n = 1; + + NoAlias<FloatRowVector> retval (n); - if (n > 1) - { - retval.resize (n); - float delta = (x2 - x1) / (n - 1); - retval.elem (0) = x1; - for (octave_idx_type i = 1; i < n-1; i++) - retval.elem (i) = x1 + i * delta; - retval.elem (n-1) = x2; - } - else - { - retval.resize (1); - retval.elem (0) = x2; - } + float delta = (x2 - x1) / (n - 1); + float y = retval(0) = x1; + for (octave_idx_type i = 1; i < n-1; i++) + retval(i) = y += delta; + retval(n-1) = x2; return retval; }