Mercurial > hg > octave-lyh
diff liboctave/idx-vector.h @ 9773:01f897d8a130
optimize memory manipulation by arrays & indexing
author | Jaroslav Hajek <highegg@gmail.com> |
---|---|
date | Tue, 03 Nov 2009 11:35:59 +0100 |
parents | aea3a3a950e1 |
children | 6dafc60dde31 |
line wrap: on
line diff
--- a/liboctave/idx-vector.h +++ b/liboctave/idx-vector.h @@ -34,6 +34,7 @@ #include "dim-vector.h" #include "oct-inttypes.h" #include "oct-alloc.h" +#include "oct-mem.h" template<class T> class Array; template<class T> class Sparse; @@ -517,7 +518,7 @@ switch (rep->idx_class ()) { case class_colon: - std::copy (src, src + len, dest); + octave_ucopy (len, src, dest); break; case class_range: { @@ -525,7 +526,7 @@ octave_idx_type start = r->get_start (), step = r->get_step (); const T *ssrc = src + start; if (step == 1) - std::copy (ssrc, ssrc + len, dest); + octave_ucopy (len, ssrc, dest); else if (step == -1) std::reverse_copy (ssrc - len + 1, ssrc + 1, dest); else if (step == 0) @@ -575,7 +576,7 @@ switch (rep->idx_class ()) { case class_colon: - std::copy (src, src + len, dest); + octave_ucopy (len, src, dest); break; case class_range: { @@ -583,7 +584,7 @@ octave_idx_type start = r->get_start (), step = r->get_step (); T *sdest = dest + start; if (step == 1) - std::copy (src, src + len, sdest); + octave_ucopy (len, src, sdest); else if (step == -1) std::reverse_copy (src, src + len, sdest - len + 1); else