32 #ifndef _VALARRAY_ARRAY_TCC
33 #define _VALARRAY_ARRAY_TCC 1
35 _GLIBCXX_BEGIN_NAMESPACE(std)
37 template<typename _Tp>
39 __valarray_fill(_Array<_Tp> __a,
size_t __n, _Array<
bool> __m,
42 _Tp* __p = __a._M_data;
43 bool* __ok (__m._M_data);
44 for (
size_t __i=0; __i < __n; ++__i, ++__ok, ++__p)
61 template<
typename _Tp>
63 __valarray_copy(_Array<_Tp> __a, _Array<bool> __m, _Array<_Tp> __b,
66 _Tp* __p (__a._M_data);
67 bool* __ok (__m._M_data);
68 for (_Tp* __q = __b._M_data; __q < __b._M_data + __n;
86 template<
typename _Tp>
88 __valarray_copy(_Array<_Tp> __a,
size_t __n, _Array<_Tp> __b,
91 _Tp* __q (__b._M_data);
92 bool* __ok (__m._M_data);
93 for (_Tp* __p = __a._M_data; __p < __a._M_data+__n;
110 template<
typename _Tp>
112 __valarray_copy(_Array<_Tp> __a, _Array<bool> __m,
size_t __n,
113 _Array<_Tp> __b, _Array<bool> __k)
115 _Tp* __p (__a._M_data);
116 _Tp* __q (__b._M_data);
117 bool* __srcok (__m._M_data);
118 bool* __dstok (__k._M_data);
119 for (
size_t __i = 0; __i < __n;
120 ++__srcok, ++__p, ++__dstok, ++__q, ++__i)
138 template<
typename _Tp,
class _Dom>
140 __valarray_copy(
const _Expr<_Dom, _Tp>& __e,
size_t __n, _Array<_Tp> __a)
142 _Tp* __p (__a._M_data);
143 for (
size_t __i = 0; __i < __n; ++__i, ++__p)
149 template<
typename _Tp,
class _Dom>
151 __valarray_copy(
const _Expr<_Dom, _Tp>& __e,
size_t __n,
152 _Array<_Tp> __a,
size_t __s)
154 _Tp* __p (__a._M_data);
155 for (
size_t __i = 0; __i < __n; ++__i, __p += __s)
161 template<
typename _Tp,
class _Dom>
163 __valarray_copy(
const _Expr<_Dom, _Tp>& __e,
size_t __n,
164 _Array<_Tp> __a, _Array<size_t> __i)
166 size_t* __j (__i._M_data);
167 for (
size_t __k = 0; __k < __n; ++__k, ++__j)
168 __a._M_data[*__j] = __e[__k];
173 template<
typename _Tp>
175 __valarray_copy(_Array<_Tp> __e, _Array<size_t> __f,
177 _Array<_Tp> __a, _Array<size_t> __i)
179 size_t* __g (__f._M_data);
180 size_t* __j (__i._M_data);
181 for (
size_t __k = 0; __k < __n; ++__k, ++__j, ++__g)
182 __a._M_data[*__j] = __e._M_data[*__g];
191 template<
typename _Tp,
class _Dom>
193 __valarray_copy(
const _Expr<_Dom, _Tp>& __e,
size_t __n,
194 _Array<_Tp> __a, _Array<bool> __m)
196 bool* __ok (__m._M_data);
197 _Tp* __p (__a._M_data);
198 for (
size_t __i = 0; __i < __n; ++__i, ++__ok, ++__p)
210 template<
typename _Tp,
class _Dom>
212 __valarray_copy_construct(
const _Expr<_Dom, _Tp>& __e,
size_t __n,
215 _Tp* __p (__a._M_data);
216 for (
size_t __i = 0; __i < __n; ++__i, ++__p)
217 new (__p) _Tp(__e[__i]);
221 template<
typename _Tp>
223 __valarray_copy_construct(_Array<_Tp> __a, _Array<bool> __m,
224 _Array<_Tp> __b,
size_t __n)
226 _Tp* __p (__a._M_data);
227 bool* __ok (__m._M_data);
228 for (_Tp* __q = __b._M_data; __q < __b._M_data+__n; ++__q, ++__ok, ++__p)
239 _GLIBCXX_END_NAMESPACE