Home | History | Annotate | Download | only in bits

Lines Matching refs:_Tp

57   template<typename _Tp>
58 inline _Tp*__restrict__
61 return static_cast<_Tp*__restrict__>
62 (std::__valarray_get_memory(__n * sizeof(_Tp)));
70 // Turn a raw-memory into an array of _Tp filled with _Tp()
72 template<typename _Tp, bool>
78 _S_do_it(_Tp* __b, _Tp* __e)
81 new(__b++) _Tp();
85 template<typename _Tp>
86 struct _Array_default_ctor<_Tp, true>
90 _S_do_it(_Tp* __b, _Tp* __e)
91 { __builtin_memset(__b, 0, (__e - __b) * sizeof(_Tp)); }
94 template<typename _Tp>
96 __valarray_default_construct(_Tp* __b, _Tp* __e)
98 _Array_default_ctor<_Tp, __is_scalar<_Tp>::__value>::_S_do_it(__b, __e);
101 // Turn a raw-memory into an array of _Tp filled with __t
104 template<typename _Tp, bool>
110 _S_do_it(_Tp* __b, _Tp* __e, const _Tp __t)
113 new(__b++) _Tp(__t);
117 template<typename _Tp>
118 struct _Array_init_ctor<_Tp, true>
121 _S_do_it(_Tp* __b, _Tp* __e, const _Tp __t)
128 template<typename _Tp>
130 __valarray_fill_construct(_Tp* __b, _Tp* __e, const _Tp __t)
132 _Array_init_ctor<_Tp, __is_trivial(_Tp)>::_S_do_it(__b, __e, __t);
139 template<typename _Tp, bool>
145 _S_do_it(const _Tp* __b, const _Tp* __e, _Tp* __restrict__ __o)
148 new(__o++) _Tp(*__b++);
152 template<typename _Tp>
153 struct _Array_copy_ctor<_Tp, true>
156 _S_do_it(const _Tp* __b, const _Tp* __e, _Tp* __restrict__ __o)
157 { __builtin_memcpy(__o, __b, (__e - __b) * sizeof(_Tp)); }
160 template<typename _Tp>
162 __valarray_copy_construct(const _Tp* __b, const _Tp* __e,
163 _Tp* __restrict__ __o)
165 _Array_copy_ctor<_Tp, __is_trivial(_Tp)>::_S_do_it(__b, __e, __o);
169 template<typename _Tp>
171 __valarray_copy_construct (const _Tp* __restrict__ __a, size_t __n,
172 size_t __s, _Tp* __restrict__ __o)
174 if (__is_trivial(_Tp))
183 new(__o++) _Tp(*__a);
189 template<typename _Tp>
191 __valarray_copy_construct (const _Tp* __restrict__ __a,
193 _Tp* __restrict__ __o, size_t __n)
195 if (__is_trivial(_Tp))
200 new (__o++) _Tp(__a[*__i++]);
204 template<typename _Tp>
206 __valarray_destroy_elements(_Tp* __b, _Tp* __e)
208 if (!__is_trivial(_Tp))
211 __b->~_Tp();
217 template<typename _Tp>
219 __valarray_fill(_Tp* __restrict__ __a, size_t __n, const _Tp& __t)
226 template<typename _Tp>
228 __valarray_fill(_Tp* __restrict__ __a, size_t __n,
229 size_t __s, const _Tp& __t)
236 template<typename _Tp>
238 __valarray_fill(_Tp* __restrict__ __a, const size_t* __restrict__ __i,
239 size_t __n, const _Tp& __t)
247 template<typename _Tp, bool>
251 _S_do_it(const _Tp* __restrict__ __a, size_t __n, _Tp* __restrict__ __b)
258 template<typename _Tp>
259 struct _Array_copier<_Tp, true>
262 _S_do_it(const _Tp* __restrict__ __a, size_t __n, _Tp* __restrict__ __b)
263 { __builtin_memcpy(__b, __a, __n * sizeof (_Tp)); }
267 template<typename _Tp>
269 __valarray_copy(const _Tp* __restrict__ __a, size_t __n,
270 _Tp* __restrict__ __b)
272 _Array_copier<_Tp, __is_trivial(_Tp)>::_S_do_it(__a, __n, __b);
276 template<typename _Tp>
278 __valarray_copy(const _Tp* __restrict__ __a, size_t __n, size_t __s,
279 _Tp* __restrict__ __b)
286 template<typename _Tp>
288 __valarray_copy(const _Tp* __restrict__ __a, _Tp* __restrict__ __b,
297 template<typename _Tp>
299 __valarray_copy(const _Tp* __restrict__ __src, size_t __n, size_t __s1,
300 _Tp* __restrict__ __dst, size_t __s2)
307 template<typename _Tp>
309 __valarray_copy(const _Tp* __restrict__ __a,
311 _Tp* __restrict__ __b, size_t __n)
318 template<typename _Tp>
320 __valarray_copy(const _Tp* __restrict__ __a, size_t __n,
321 _Tp* __restrict__ __b, const size_t* __restrict__ __i)
329 template<typename _Tp>
331 __valarray_copy(const _Tp* __restrict__ __src, size_t __n,
333 _Tp* __restrict__ __dst, const size_t* __restrict__ __j)
343 // for _Tp = float, double, long double using a more accurate
346 template<typename _Tp>
347 inline _Tp
348 __valarray_sum(const _Tp* __f, const _Tp* __l)
350 _Tp __r = _Tp();
357 template<typename _Tp>
358 inline _Tp
359 __valarray_product(const _Tp* __f, const _Tp* __l)
361 _Tp __r = _Tp(1);
406 template<typename _Tp>
410 explicit _Array(_Tp* const __restrict__);
411 explicit _Array(const valarray<_Tp>&);
412 _Array(const _Tp* __restrict__, size_t);
414 _Tp* begin() const;
416 _Tp* const __restrict__ _M_data;
421 template<typename _Tp>
423 __valarray_copy_construct(_Array<_Tp> __a, _Array<size_t> __i,
424 _Array<_Tp> __b, size_t __n)
429 template<typename _Tp>
431 __valarray_copy_construct(_Array<_Tp> __a, size_t __n, size_t __s,
432 _Array<_Tp> __b)
435 template<typename _Tp>
437 __valarray_fill (_Array<_Tp> __a, size_t __n, const _Tp& __t)
440 template<typename _Tp>
442 __valarray_fill(_Array<_Tp> __a, size_t __n, size_t __s, const _Tp& __t)
445 template<typename _Tp>
447 __valarray_fill(_Array<_Tp> __a, _Array<size_t> __i,
448 size_t __n, const _Tp& __t)
452 template<typename _Tp>
454 __valarray_copy(_Array<_Tp> __a, size_t __n, _Array<_Tp> __b)
458 template<typename _Tp>
460 __valarray_copy(_Array<_Tp> __a, size_t __n, size_t __s, _Array<_Tp> __b)
464 template<typename _Tp>
466 __valarray_copy(_Array<_Tp> __a, _Array<_Tp> __b, size_t __n, size_t __s)
471 template<typename _Tp>
473 __valarray_copy(_Array<_Tp> __a, size_t __n, size_t __s1,
474 _Array<_Tp> __b, size_t __s2)
478 template<typename _Tp>
480 __valarray_copy(_Array<_Tp> __a, _Array<size_t> __i,
481 _Array<_Tp> __b, size_t __n)
485 template<typename _Tp>
487 __valarray_copy(_Array<_Tp> __a, size_t __n, _Array<_Tp> __b,
493 template<typename _Tp>
495 __valarray_copy(_Array<_Tp> __src, size_t __n, _Array<size_t> __i,
496 _Array<_Tp> __dst, _Array<size_t> __j)
502 template<typename _Tp>
504 _Array<_Tp>::_Array(size_t __n)
505 : _M_data(__valarray_get_storage<_Tp>(__n))
508 template<typename _Tp>
510 _Array<_Tp>::_Array(_Tp* const __restrict__ __p)
513 template<typename _Tp>
515 _Array<_Tp>::_Array(const valarray<_Tp>& __v)
518 template<typename _Tp>
520 _Array<_Tp>::_Array(const _Tp* __restrict__ __b, size_t __s)
521 : _M_data(__valarray_get_storage<_Tp>(__s))
524 template<typename _Tp>
525 inline _Tp*
526 _Array<_Tp>::begin () const
530 template<typename _Tp> \
532 _Array_augmented_##_Name(_Array<_Tp> __a, size_t __n, const _Tp& __t) \
534 for (_Tp* __p = __a._M_data; __p < __a._M_data + __n; ++__p) \
538 template<typename _Tp> \
540 _Array_augmented_##_Name(_Array<_Tp> __a, size_t __n, _Array<_Tp> __b) \
542 _Tp* __p = __a._M_data; \
543 for (_Tp* __q = __b._M_data; __q < __b._M_data + __n; ++__p, ++__q) \
547 template<typename _Tp, class _Dom> \
549 _Array_augmented_##_Name(_Array<_Tp> __a, \
550 const _Expr<_Dom, _Tp>& __e, size_t __n) \
552 _Tp* __p(__a._M_data); \
557 template<typename _Tp> \
559 _Array_augmented_##_Name(_Array<_Tp> __a, size_t __n, size_t __s, \
560 _Array<_Tp> __b) \
562 _Tp* __q(__b._M_data); \
563 for (_Tp* __p = __a._M_data; __p < __a._M_data + __s * __n; \
568 template<typename _Tp> \
570 _Array_augmented_##_Name(_Array<_Tp> __a, _Array<_Tp> __b, \
573 _Tp* __q(__b._M_data); \
574 for (_Tp* __p = __a._M_data; __p < __a._M_data + __n; \
579 template<typename _Tp, class _Dom> \
581 _Array_augmented_##_Name(_Array<_Tp> __a, size_t __s, \
582 const _Expr<_Dom, _Tp>& __e, size_t __n) \
584 _Tp* __p(__a._M_data); \
589 template<typename _Tp> \
591 _Array_augmented_##_Name(_Array<_Tp> __a, _Array<size_t> __i, \
592 _Array<_Tp> __b, size_t __n) \
594 _Tp* __q(__b._M_data); \
600 template<typename _Tp> \
602 _Array_augmented_##_Name(_Array<_Tp> __a, size_t __n, \
603 _Array<_Tp> __b, _Array<size_t> __i) \
605 _Tp* __p(__a._M_data); \
611 template<typename _Tp, class _Dom> \
613 _Array_augmented_##_Name(_Array<_Tp> __a, _Array<size_t> __i, \
614 const _Expr<_Dom, _Tp>& __e, size_t __n) \
621 template<typename _Tp> \
623 _Array_augmented_##_Name(_Array<_Tp> __a, _Array<bool> __m, \
624 _Array<_Tp> __b, size_t __n) \
627 _Tp* __p(__a._M_data); \
628 for (_Tp* __q = __b._M_data; __q < __b._M_data + __n; \
640 template<typename _Tp> \
642 _Array_augmented_##_Name(_Array<_Tp> __a, size_t __n, \
643 _Array<_Tp> __b, _Array<bool> __m) \
646 _Tp* __q(__b._M_data); \
647 for (_Tp* __p = __a._M_data; __p < __a._M_data + __n; \
659 template<typename _Tp, class _Dom> \
661 _Array_augmented_##_Name(_Array<_Tp> __a, _Array<bool> __m, \
662 const _Expr<_Dom, _Tp>& __e, size_t __n) \
665 _Tp* __p(__a._M_data); \