33template <
class _TypeT>
34valarray<_TypeT> valarray<_TypeT>::shift (
int __n)
const
39 const _RWSTD_SIZE_T __size =
size ();
41 if (__size <= (_RWSTD_SIZE_T)(__n < 0 ? -__n : __n))
42 return valarray (__size);
46 _RW::__rw_array<_TypeT> __tmp =
47 _RW::__rw_array<_TypeT>(_TypeT (), __size);
51 copy (_C_array.begin (), _C_array.end () + __n, __tmp.begin () - __n);
53 copy (_C_array.begin () + __n, _C_array.end (), __tmp.begin ());
55 return valarray (__tmp);
59template <
class _TypeT>
60valarray<_TypeT> valarray<_TypeT>::cshift (
int __n)
const
62 const _RWSTD_SIZE_T __size =
size ();
66 _RWSTD_PTRDIFF_T __mod = __size ? __n % (_RWSTD_PTRDIFF_T)__size : 0;
67 _RWSTD_SIZE_T __rem = __mod < 0 ? -__mod : __mod;
74 _RW::__rw_array<_TypeT> __tmp =
75 _RW::__rw_array<_TypeT>(_TypeT (), __size);
78 rotate_copy (_C_array.begin (),
79 __n < 0 ? _C_array.end () - __rem : _C_array.begin () + __rem,
80 _C_array.end (), __tmp.begin ());
82 return valarray (__tmp);
#define _RWSTD_NAMESPACE(name)