Mercurial > hg > octave-nkf
diff liboctave/CColVector.cc @ 7503:8c32f95c2639
convert mapper functions to new format
author | David Bateman <dbateman@free.fr> |
---|---|
date | Wed, 20 Feb 2008 04:22:50 -0500 |
parents | 29980c6b8604 |
children | 82be108cc558 |
line wrap: on
line diff
--- a/liboctave/CColVector.cc +++ b/liboctave/CColVector.cc @@ -30,6 +30,7 @@ #include "Array-util.h" #include "f77-fcn.h" +#include "functor.h" #include "lo-error.h" #include "mx-base.h" #include "mx-inlines.cc" @@ -456,39 +457,16 @@ // other operations -ComplexColumnVector -ComplexColumnVector::map (c_c_Mapper f) const +ColumnVector +ComplexColumnVector::map (dmapper fcn) const { - ComplexColumnVector b (*this); - return b.apply (f); + return MArray<Complex>::map<double> (func_ptr (fcn)); } -ColumnVector -ComplexColumnVector::map (d_c_Mapper f) const +ComplexColumnVector +ComplexColumnVector::map (cmapper fcn) const { - const Complex *d = data (); - - octave_idx_type len = length (); - - ColumnVector retval (len); - - double *r = retval.fortran_vec (); - - for (octave_idx_type 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 (octave_idx_type i = 0; i < length (); i++) - d[i] = f (d[i]); - - return *this; + return MArray<Complex>::map<Complex> (func_ptr (fcn)); } Complex