Home | History | Annotate | Download | only in bits

Lines Matching refs:_Tp

55   template<typename _Tp>
56 inline _Tp*__restrict__
59 return static_cast<_Tp*__restrict__>
60 (std::__valarray_get_memory(__n * sizeof(_Tp)));
68 // Turn a raw-memory into an array of _Tp filled with _Tp()
70 template<typename _Tp, bool>
76 _S_do_it(_Tp* __b, _Tp* __e)
79 new(__b++) _Tp();
83 template<typename _Tp>
84 struct _Array_default_ctor<_Tp, true>
88 _S_do_it(_Tp* __b, _Tp* __e)
89 { __builtin_memset(__b, 0, (__e - __b) * sizeof(_Tp)); }
92 template<typename _Tp>
94 __valarray_default_construct(_Tp* __b, _Tp* __e)
96 _Array_default_ctor<_Tp, __is_scalar<_Tp>::__value>::_S_do_it(__b, __e);
99 // Turn a raw-memory into an array of _Tp filled with __t
102 template<typename _Tp, bool>
108 _S_do_it(_Tp* __b, _Tp* __e, const _Tp __t)
111 new(__b++) _Tp(__t);
115 template<typename _Tp>
116 struct _Array_init_ctor<_Tp, true>
119 _S_do_it(_Tp* __b, _Tp* __e, const _Tp __t)
126 template<typename _Tp>
128 __valarray_fill_construct(_Tp* __b, _Tp* __e, const _Tp __t)
130 _Array_init_ctor<_Tp, __is_trivial(_Tp)>::_S_do_it(__b, __e, __t);
137 template<typename _Tp, bool>
143 _S_do_it(const _Tp* __b, const _Tp* __e, _Tp* __restrict__ __o)
146 new(__o++) _Tp(*__b++);
150 template<typename _Tp>
151 struct _Array_copy_ctor<_Tp, true>
154 _S_do_it(const _Tp* __b, const _Tp* __e, _Tp* __restrict__ __o)
155 { __builtin_memcpy(__o, __b, (__e - __b) * sizeof(_Tp)); }
158 template<typename _Tp>
160 __valarray_copy_construct(const _Tp* __b, const _Tp* __e,
161 _Tp* __restrict__ __o)
163 _Array_copy_ctor<_Tp, __is_trivial(_Tp)>::_S_do_it(__b, __e, __o);
167 template<typename _Tp>
169 __valarray_copy_construct (const _Tp* __restrict__ __a, size_t __n,
170 size_t __s, _Tp* __restrict__ __o)
172 if (__is_trivial(_Tp))
181 new(__o++) _Tp(*__a);
187 template<typename _Tp>
189 __valarray_copy_construct (const _Tp* __restrict__ __a,
191 _Tp* __restrict__ __o, size_t __n)
193 if (__is_trivial(_Tp))
198 new (__o++) _Tp(__a[*__i++]);
202 template<typename _Tp>
204 __valarray_destroy_elements(_Tp* __b, _Tp* __e)
206 if (!__is_trivial(_Tp))
209 __b->~_Tp();
215 template<typename _Tp>
217 __valarray_fill(_Tp* __restrict__ __a, size_t __n, const _Tp& __t)
224 template<typename _Tp>
226 __valarray_fill(_Tp* __restrict__ __a, size_t __n,
227 size_t __s, const _Tp& __t)
234 template<typename _Tp>
236 __valarray_fill(_Tp* __restrict__ __a, const size_t* __restrict__ __i,
237 size_t __n, const _Tp& __t)
245 template<typename _Tp, bool>
249 _S_do_it(const _Tp* __restrict__ __a, size_t __n, _Tp* __restrict__ __b)
256 template<typename _Tp>
257 struct _Array_copier<_Tp, true>
260 _S_do_it(const _Tp* __restrict__ __a, size_t __n, _Tp* __restrict__ __b)
261 { __builtin_memcpy(__b, __a, __n * sizeof (_Tp)); }
265 template<typename _Tp>
267 __valarray_copy(const _Tp* __restrict__ __a, size_t __n,
268 _Tp* __restrict__ __b)
270 _Array_copier<_Tp, __is_trivial(_Tp)>::_S_do_it(__a, __n, __b);
274 template<typename _Tp>
276 __valarray_copy(const _Tp* __restrict__ __a, size_t __n, size_t __s,
277 _Tp* __restrict__ __b)
284 template<typename _Tp>
286 __valarray_copy(const _Tp* __restrict__ __a, _Tp* __restrict__ __b,
295 template<typename _Tp>
297 __valarray_copy(const _Tp* __restrict__ __src, size_t __n, size_t __s1,
298 _Tp* __restrict__ __dst, size_t __s2)
305 template<typename _Tp>
307 __valarray_copy(const _Tp* __restrict__ __a,
309 _Tp* __restrict__ __b, size_t __n)
316 template<typename _Tp>
318 __valarray_copy(const _Tp* __restrict__ __a, size_t __n,
319 _Tp* __restrict__ __b, const size_t* __restrict__ __i)
327 template<typename _Tp>
329 __valarray_copy(const _Tp* __restrict__ __src, size_t __n,
331 _Tp* __restrict__ __dst, const size_t* __restrict__ __j)
341 // for _Tp = float, double, long double using a more accurate
344 template<typename _Tp>
345 inline _Tp
346 __valarray_sum(const _Tp* __f, const _Tp* __l)
348 _Tp __r = _Tp();
355 template<typename _Tp>
356 inline _Tp
357 __valarray_product(const _Tp* __f, const _Tp* __l)
359 _Tp __r = _Tp(1);
404 template<typename _Tp>
408 explicit _Array(_Tp* const __restrict__);
409 explicit _Array(const valarray<_Tp>&);
410 _Array(const _Tp* __restrict__, size_t);
412 _Tp* begin() const;
414 _Tp* const __restrict__ _M_data;
419 template<typename _Tp>
421 __valarray_copy_construct(_Array<_Tp> __a, _Array<size_t> __i,
422 _Array<_Tp> __b, size_t __n)
427 template<typename _Tp>
429 __valarray_copy_construct(_Array<_Tp> __a, size_t __n, size_t __s,
430 _Array<_Tp> __b)
433 template<typename _Tp>
435 __valarray_fill (_Array<_Tp> __a, size_t __n, const _Tp& __t)
438 template<typename _Tp>
440 __valarray_fill(_Array<_Tp> __a, size_t __n, size_t __s, const _Tp& __t)
443 template<typename _Tp>
445 __valarray_fill(_Array<_Tp> __a, _Array<size_t> __i,
446 size_t __n, const _Tp& __t)
450 template<typename _Tp>
452 __valarray_copy(_Array<_Tp> __a, size_t __n, _Array<_Tp> __b)
456 template<typename _Tp>
458 __valarray_copy(_Array<_Tp> __a, size_t __n, size_t __s, _Array<_Tp> __b)
462 template<typename _Tp>
464 __valarray_copy(_Array<_Tp> __a, _Array<_Tp> __b, size_t __n, size_t __s)
469 template<typename _Tp>
471 __valarray_copy(_Array<_Tp> __a, size_t __n, size_t __s1,
472 _Array<_Tp> __b, size_t __s2)
476 template<typename _Tp>
478 __valarray_copy(_Array<_Tp> __a, _Array<size_t> __i,
479 _Array<_Tp> __b, size_t __n)
483 template<typename _Tp>
485 __valarray_copy(_Array<_Tp> __a, size_t __n, _Array<_Tp> __b,
491 template<typename _Tp>
493 __valarray_copy(_Array<_Tp> __src, size_t __n, _Array<size_t> __i,
494 _Array<_Tp> __dst, _Array<size_t> __j)
500 template<typename _Tp>
502 _Array<_Tp>::_Array(size_t __n)
503 : _M_data(__valarray_get_storage<_Tp>(__n))
506 template<typename _Tp>
508 _Array<_Tp>::_Array(_Tp* const __restrict__ __p)
511 template<typename _Tp>
513 _Array<_Tp>::_Array(const valarray<_Tp>& __v)
516 template<typename _Tp>
518 _Array<_Tp>::_Array(const _Tp* __restrict__ __b, size_t __s)
519 : _M_data(__valarray_get_storage<_Tp>(__s))
522 template<typename _Tp>
523 inline _Tp*
524 _Array<_Tp>::begin () const
528 template<typename _Tp> \
530 _Array_augmented_##_Name(_Array<_Tp> __a, size_t __n, const _Tp& __t) \
532 for (_Tp* __p = __a._M_data; __p < __a._M_data + __n; ++__p) \
536 template<typename _Tp> \
538 _Array_augmented_##_Name(_Array<_Tp> __a, size_t __n, _Array<_Tp> __b) \
540 _Tp* __p = __a._M_data; \
541 for (_Tp* __q = __b._M_data; __q < __b._M_data + __n; ++__p, ++__q) \
545 template<typename _Tp, class _Dom> \
547 _Array_augmented_##_Name(_Array<_Tp> __a, \
548 const _Expr<_Dom, _Tp>& __e, size_t __n) \
550 _Tp* __p(__a._M_data); \
555 template<typename _Tp> \
557 _Array_augmented_##_Name(_Array<_Tp> __a, size_t __n, size_t __s, \
558 _Array<_Tp> __b) \
560 _Tp* __q(__b._M_data); \
561 for (_Tp* __p = __a._M_data; __p < __a._M_data + __s * __n; \
566 template<typename _Tp> \
568 _Array_augmented_##_Name(_Array<_Tp> __a, _Array<_Tp> __b, \
571 _Tp* __q(__b._M_data); \
572 for (_Tp* __p = __a._M_data; __p < __a._M_data + __n; \
577 template<typename _Tp, class _Dom> \
579 _Array_augmented_##_Name(_Array<_Tp> __a, size_t __s, \
580 const _Expr<_Dom, _Tp>& __e, size_t __n) \
582 _Tp* __p(__a._M_data); \
587 template<typename _Tp> \
589 _Array_augmented_##_Name(_Array<_Tp> __a, _Array<size_t> __i, \
590 _Array<_Tp> __b, size_t __n) \
592 _Tp* __q(__b._M_data); \
598 template<typename _Tp> \
600 _Array_augmented_##_Name(_Array<_Tp> __a, size_t __n, \
601 _Array<_Tp> __b, _Array<size_t> __i) \
603 _Tp* __p(__a._M_data); \
609 template<typename _Tp, class _Dom> \
611 _Array_augmented_##_Name(_Array<_Tp> __a, _Array<size_t> __i, \
612 const _Expr<_Dom, _Tp>& __e, size_t __n) \
619 template<typename _Tp> \
621 _Array_augmented_##_Name(_Array<_Tp> __a, _Array<bool> __m, \
622 _Array<_Tp> __b, size_t __n) \
625 _Tp* __p(__a._M_data); \
626 for (_Tp* __q = __b._M_data; __q < __b._M_data + __n; \
638 template<typename _Tp> \
640 _Array_augmented_##_Name(_Array<_Tp> __a, size_t __n, \
641 _Array<_Tp> __b, _Array<bool> __m) \
644 _Tp* __q(__b._M_data); \
645 for (_Tp* __p = __a._M_data; __p < __a._M_data + __n; \
657 template<typename _Tp, class _Dom> \
659 _Array_augmented_##_Name(_Array<_Tp> __a, _Array<bool> __m, \
660 const _Expr<_Dom, _Tp>& __e, size_t __n) \
663 _Tp* __p(__a._M_data); \