comparison liboctave/idx-vector.h @ 9780:6dafc60dde31

rename oct-mem functions
author Jaroslav Hajek <highegg@gmail.com>
date Thu, 05 Nov 2009 21:13:31 +0100
parents 01f897d8a130
children 034677ab6865
comparison
equal deleted inserted replaced
9779:2941c1daf509 9780:6dafc60dde31
516 { 516 {
517 octave_idx_type len = rep->length (n); 517 octave_idx_type len = rep->length (n);
518 switch (rep->idx_class ()) 518 switch (rep->idx_class ())
519 { 519 {
520 case class_colon: 520 case class_colon:
521 octave_ucopy (len, src, dest); 521 copy_or_memcpy (len, src, dest);
522 break; 522 break;
523 case class_range: 523 case class_range:
524 { 524 {
525 idx_range_rep * r = dynamic_cast<idx_range_rep *> (rep); 525 idx_range_rep * r = dynamic_cast<idx_range_rep *> (rep);
526 octave_idx_type start = r->get_start (), step = r->get_step (); 526 octave_idx_type start = r->get_start (), step = r->get_step ();
527 const T *ssrc = src + start; 527 const T *ssrc = src + start;
528 if (step == 1) 528 if (step == 1)
529 octave_ucopy (len, ssrc, dest); 529 copy_or_memcpy (len, ssrc, dest);
530 else if (step == -1) 530 else if (step == -1)
531 std::reverse_copy (ssrc - len + 1, ssrc + 1, dest); 531 std::reverse_copy (ssrc - len + 1, ssrc + 1, dest);
532 else if (step == 0) 532 else if (step == 0)
533 std::fill_n (dest, len, *ssrc); 533 std::fill_n (dest, len, *ssrc);
534 else 534 else
574 { 574 {
575 octave_idx_type len = rep->length (n); 575 octave_idx_type len = rep->length (n);
576 switch (rep->idx_class ()) 576 switch (rep->idx_class ())
577 { 577 {
578 case class_colon: 578 case class_colon:
579 octave_ucopy (len, src, dest); 579 copy_or_memcpy (len, src, dest);
580 break; 580 break;
581 case class_range: 581 case class_range:
582 { 582 {
583 idx_range_rep * r = dynamic_cast<idx_range_rep *> (rep); 583 idx_range_rep * r = dynamic_cast<idx_range_rep *> (rep);
584 octave_idx_type start = r->get_start (), step = r->get_step (); 584 octave_idx_type start = r->get_start (), step = r->get_step ();
585 T *sdest = dest + start; 585 T *sdest = dest + start;
586 if (step == 1) 586 if (step == 1)
587 octave_ucopy (len, src, sdest); 587 copy_or_memcpy (len, src, sdest);
588 else if (step == -1) 588 else if (step == -1)
589 std::reverse_copy (src, src + len, sdest - len + 1); 589 std::reverse_copy (src, src + len, sdest - len + 1);
590 else 590 else
591 { 591 {
592 for (octave_idx_type i = 0, j = 0; i < len; i++, j += step) 592 for (octave_idx_type i = 0, j = 0; i < len; i++, j += step)