33 #ifndef _VALARRAY_ARRAY_TCC
34 #define _VALARRAY_ARRAY_TCC 1
36 namespace std _GLIBCXX_VISIBILITY(default)
38 _GLIBCXX_BEGIN_NAMESPACE_VERSION
40 template<
typename _Tp>
42 __valarray_fill(_Array<_Tp> __a,
size_t __n, _Array<bool> __m,
45 _Tp* __p = __a._M_data;
46 bool* __ok (__m._M_data);
47 for (
size_t __i=0; __i < __n; ++__i, ++__ok, ++__p)
64 template<
typename _Tp>
66 __valarray_copy(_Array<_Tp> __a, _Array<bool> __m, _Array<_Tp> __b,
69 _Tp* __p (__a._M_data);
70 bool* __ok (__m._M_data);
71 for (_Tp* __q = __b._M_data; __q < __b._M_data + __n;
89 template<
typename _Tp>
91 __valarray_copy(_Array<_Tp> __a,
size_t __n, _Array<_Tp> __b,
94 _Tp* __q (__b._M_data);
95 bool* __ok (__m._M_data);
96 for (_Tp* __p = __a._M_data; __p < __a._M_data+__n;
113 template<
typename _Tp>
115 __valarray_copy(_Array<_Tp> __a, _Array<bool> __m,
size_t __n,
116 _Array<_Tp> __b, _Array<bool> __k)
118 _Tp* __p (__a._M_data);
119 _Tp* __q (__b._M_data);
120 bool* __srcok (__m._M_data);
121 bool* __dstok (__k._M_data);
122 for (
size_t __i = 0; __i < __n;
123 ++__srcok, ++__p, ++__dstok, ++__q, ++__i)
141 template<
typename _Tp,
class _Dom>
143 __valarray_copy(
const _Expr<_Dom, _Tp>& __e,
size_t __n, _Array<_Tp> __a)
145 _Tp* __p (__a._M_data);
146 for (
size_t __i = 0; __i < __n; ++__i, ++__p)
152 template<
typename _Tp,
class _Dom>
154 __valarray_copy(
const _Expr<_Dom, _Tp>& __e,
size_t __n,
155 _Array<_Tp> __a,
size_t __s)
157 _Tp* __p (__a._M_data);
158 for (
size_t __i = 0; __i < __n; ++__i, __p += __s)
164 template<
typename _Tp,
class _Dom>
166 __valarray_copy(
const _Expr<_Dom, _Tp>& __e,
size_t __n,
167 _Array<_Tp> __a, _Array<size_t> __i)
169 size_t* __j (__i._M_data);
170 for (
size_t __k = 0; __k < __n; ++__k, ++__j)
171 __a._M_data[*__j] = __e[__k];
176 template<
typename _Tp>
178 __valarray_copy(_Array<_Tp> __e, _Array<size_t> __f,
180 _Array<_Tp> __a, _Array<size_t> __i)
182 size_t* __g (__f._M_data);
183 size_t* __j (__i._M_data);
184 for (
size_t __k = 0; __k < __n; ++__k, ++__j, ++__g)
185 __a._M_data[*__j] = __e._M_data[*__g];
194 template<
typename _Tp,
class _Dom>
196 __valarray_copy(
const _Expr<_Dom, _Tp>& __e,
size_t __n,
197 _Array<_Tp> __a, _Array<bool> __m)
199 bool* __ok (__m._M_data);
200 _Tp* __p (__a._M_data);
201 for (
size_t __i = 0; __i < __n; ++__i, ++__ok, ++__p)
213 template<
typename _Tp,
class _Dom>
215 __valarray_copy_construct(
const _Expr<_Dom, _Tp>& __e,
size_t __n,
218 _Tp* __p (__a._M_data);
219 for (
size_t __i = 0; __i < __n; ++__i, ++__p)
220 new (__p) _Tp(__e[__i]);
224 template<
typename _Tp>
226 __valarray_copy_construct(_Array<_Tp> __a, _Array<bool> __m,
227 _Array<_Tp> __b,
size_t __n)
229 _Tp* __p (__a._M_data);
230 bool* __ok (__m._M_data);
231 for (_Tp* __q = __b._M_data; __q < __b._M_data+__n; ++__q, ++__ok, ++__p)
242 _GLIBCXX_END_NAMESPACE_VERSION