57 #define _EXT_NUMERIC 1
59 #pragma GCC system_header
66 _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
70 template<typename _Tp, typename _Integer, typename _MonoidOperation>
72 __power(_Tp __x, _Integer __n, _MonoidOperation __monoid_op)
75 return identity_element(__monoid_op);
78 while ((__n & 1) == 0)
81 __x = __monoid_op(__x, __x);
88 __x = __monoid_op(__x, __x);
90 __result = __monoid_op(__result, __x);
97 template<
typename _Tp,
typename _Integer>
99 __power(_Tp __x, _Integer __n)
109 template<
typename _Tp,
typename _Integer,
typename _Mono
idOperation>
111 power(_Tp __x, _Integer __n, _MonoidOperation __monoid_op)
112 {
return __power(__x, __n, __monoid_op); }
119 template<
typename _Tp,
typename _Integer>
122 {
return __power(__x, __n); }
130 template<
typename _ForwardIter,
typename _Tp>
132 iota(_ForwardIter __first, _ForwardIter __last, _Tp __value)
135 __glibcxx_function_requires(_Mutable_ForwardIteratorConcept<_ForwardIter>)
136 __glibcxx_function_requires(_ConvertibleConcept<_Tp,
137 typename std::iterator_traits<_ForwardIter>::value_type>)
139 while (__first != __last)
140 *__first++ = __value++;
143 _GLIBCXX_END_NAMESPACE
One of the math functors.
void iota(_ForwardIter __first, _ForwardIter __last, _Tp __value)
_Tp power(_Tp __x, _Integer __n)