Mercurial > hg > octave-nkf
diff liboctave/CColVector.cc @ 2676:a5a300c61159
[project @ 1997-02-14 03:16:06 by jwe]
author | jwe |
---|---|
date | Fri, 14 Feb 1997 03:16:12 +0000 |
parents | 4fc9fd1424a9 |
children | 8b262e771614 |
line wrap: on
line diff
--- a/liboctave/CColVector.cc +++ b/liboctave/CColVector.cc @@ -726,18 +726,38 @@ // other operations ComplexColumnVector -map (c_c_Mapper f, const ComplexColumnVector& a) +ComplexColumnVector::map (c_c_Mapper f) const { - ComplexColumnVector b (a); - b.map (f); - return b; + ComplexColumnVector b (*this); + return b.apply (f); } -void -ComplexColumnVector::map (c_c_Mapper f) +ColumnVector +ComplexColumnVector::map (d_c_Mapper f) const { + const Complex *d = data (); + + int len = length (); + + ColumnVector retval (len); + + double *r = retval.fortran_vec (); + + for (int i = 0; i < len; i++) + r[i] = f (d[i]); + + return retval; +} + +ComplexColumnVector& +ComplexColumnVector::apply (c_c_Mapper f) +{ + Complex *d = fortran_vec (); // Ensures only one reference to my privates! + for (int i = 0; i < length (); i++) - elem (i) = f (elem (i)); + d[i] = f (d[i]); + + return *this; } Complex