Mercurial > hg > octave-avbm
comparison liboctave/dRowVector.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 |
comparison
equal
deleted
inserted
replaced
9652:ecdb275bd41b | 9653:e087d7c77ff9 |
---|---|
309 // other operations | 309 // other operations |
310 | 310 |
311 RowVector | 311 RowVector |
312 linspace (double x1, double x2, octave_idx_type n) | 312 linspace (double x1, double x2, octave_idx_type n) |
313 { | 313 { |
314 RowVector retval; | 314 if (n < 1) n = 1; |
315 | 315 |
316 if (n > 1) | 316 NoAlias<RowVector> retval (n); |
317 { | 317 |
318 retval.resize (n); | 318 double delta = (x2 - x1) / (n - 1); |
319 double delta = (x2 - x1) / (n - 1); | 319 double y = retval(0) = x1; |
320 retval.elem (0) = x1; | 320 for (octave_idx_type i = 1; i < n-1; i++) |
321 for (octave_idx_type i = 1; i < n-1; i++) | 321 retval(i) = y += delta; |
322 retval.elem (i) = x1 + i * delta; | 322 retval(n-1) = x2; |
323 retval.elem (n-1) = x2; | |
324 } | |
325 else | |
326 { | |
327 retval.resize (1); | |
328 retval.elem (0) = x2; | |
329 } | |
330 | 323 |
331 return retval; | 324 return retval; |
332 } | 325 } |
333 | 326 |
334 // row vector by column vector -> scalar | 327 // row vector by column vector -> scalar |