Lines Matching full:exp
21 template <typename C, typename I> C tgpowi(C base, I exp) {
22 if (exp == 0) {
26 bool invertResult{exp < 0};
27 bool isMin{exp == std::numeric_limits<I>::min()};
30 exp = std::numeric_limits<I>::max();
33 if (exp < 0) {
34 exp = exp * -1;
39 while ((exp & 1) == 0) {
41 exp >>= 1;
46 while (exp > 1) {
47 exp >>= 1;
49 if ((exp & 1) == 1) {
68 extern "C" float _Complex RTNAME(cpowi)(float _Complex base, std::int32_t exp) {
69 return tgpowi(base, exp);
73 double _Complex base, std::int32_t exp) {
74 return tgpowi(base, exp);
77 extern "C" float _Complex RTNAME(cpowk)(float _Complex base, std::int64_t exp) {
78 return tgpowi(base, exp);
82 double _Complex base, std::int64_t exp) {
83 return tgpowi(base, exp);
101 extern "C" Qcomplex RTNAME(cqpowi)(Qcomplex base, std::int32_t exp) {
102 return tgpowi(base, exp);
104 extern "C" Qcomplex RTNAME(cqpowk)(Qcomplex base, std::int64_t exp) {
105 return tgpowi(base, exp);
128 extern "C" Fcomplex RTNAME(cpowi)(Fcomplex base, std::int32_t exp) {
130 auto cppres = tgpowi(cppbase, exp);
134 extern "C" Dcomplex RTNAME(zpowi)(Dcomplex base, std::int32_t exp) {
136 auto cppres = tgpowi(cppbase, exp);
140 extern "C" Fcomplex RTNAME(cpowk)(Fcomplex base, std::int64_t exp) {
142 auto cppres = tgpowi(cppbase, exp);
146 extern "C" Dcomplex RTNAME(zpowk)(Dcomplex base, std::int64_t exp) {
148 auto cppres = tgpowi(cppbase, exp);
158 extern "C" Dcomplex RTNAME(cqpowi)(Qcomplex base, std::int32_t exp) {
160 auto cppres = tgpowi(cppbase, exp);
164 extern "C" Dcomplex RTNAME(cqpowk)(Qcomplex base, std::int64_t exp) {
166 auto cppres = tgpowi(cppbase, exp);