@@ -95,7 +95,7 @@ namespace xsimd
9595 B t2 = z * horner<B, 0x3f2aaaaa , 0x3e91e9ee >(w);
9696 B R = t2 + t1;
9797 B hfsq = B (0.5 ) * f * f;
98- B dk = to_float (k);
98+ B dk = fexp_to_float (k);
9999 B r = fma (dk, log_2hi<B>(), fma (s, (hfsq + R), dk * log_2lo<B>()) - hfsq + f);
100100#ifndef XSIMD_NO_INFINITIES
101101 B zz = select (isnez, select (a == infinity<B>(), infinity<B>(), r), minusinfinity<B>());
@@ -136,7 +136,7 @@ namespace xsimd
136136#endif
137137 hx += 0x3ff00000 - 0x3fe6a09e ;
138138 k += (hx >> 20 ) - 0x3ff ;
139- B dk = to_float (k);
139+ B dk = fexp_to_float (k);
140140 hx = (hx & i_type (0x000fffff )) + 0x3fe6a09e ;
141141 x = bitwise_cast<B>(hx << 32 | (i_type (0xffffffff ) & bitwise_cast<i_type>(x)));
142142
@@ -223,7 +223,7 @@ namespace xsimd
223223 B t2 = z * horner<B, 0x3f2aaaaa , 0x3e91e9ee >(w);
224224 B R = t1 + t2;
225225 B hfsq = B (0.5 ) * f * f;
226- B dk = to_float (k);
226+ B dk = fexp_to_float (k);
227227 B r = fma (fms (s, hfsq + R, hfsq) + f, invlog_2<B>(), dk);
228228#ifndef XSIMD_NO_INFINITIES
229229 B zz = select (isnez, select (a == infinity<B>(), infinity<B>(), r), minusinfinity<B>());
@@ -287,7 +287,7 @@ namespace xsimd
287287 B lo = fma (s, hfsq + R, f - hi - hfsq);
288288 B val_hi = hi * invlog_2hi<B>();
289289 B val_lo = fma (lo + hi, invlog_2lo<B>(), lo * invlog_2hi<B>());
290- B dk = to_float (k);
290+ B dk = fexp_to_float (k);
291291 B w1 = dk + val_hi;
292292 val_lo += (dk - w1) + val_hi;
293293 val_hi = w1;
@@ -362,7 +362,7 @@ namespace xsimd
362362 B t1 = w * horner<B, 0x3eccce13 , 0x3e789e26 >(w);
363363 B t2 = z * horner<B, 0x3f2aaaaa , 0x3e91e9ee >(w);
364364 B R = t2 + t1;
365- B dk = to_float (k);
365+ B dk = fexp_to_float (k);
366366 B hfsq = B (0.5 ) * f * f;
367367 B hibits = f - hfsq;
368368 hibits &= bitwise_cast<B>(i_type (0xfffff000 ));
@@ -419,7 +419,7 @@ namespace xsimd
419419 hx = (hx & i_type (0x000fffff )) + 0x3fe6a09e ;
420420 x = bitwise_cast<B>(hx << 32 | (i_type (0xffffffff ) & bitwise_cast<i_type>(x)));
421421 B f = --x;
422- B dk = to_float (k);
422+ B dk = fexp_to_float (k);
423423 B s = f / (B (2 .) + f);
424424 B z = s * s;
425425 B w = z * z;
@@ -498,7 +498,7 @@ namespace xsimd
498498 B t2 = z * horner<B, 0x3f2aaaaa , 0x3e91e9ee >(w);
499499 B R = t2 + t1;
500500 B hfsq = B (0.5 ) * f * f;
501- B dk = to_float (k);
501+ B dk = fexp_to_float (k);
502502 /* correction term ~ log(1+x)-log(u), avoid underflow in c/u */
503503 B c = select (bool_cast (k >= i_type (2 )), B (1 .) - (uf - a), a - (uf - B (1 .))) / uf;
504504 B r = fma (dk, log_2hi<B>(), fma (s, (hfsq + R), dk * log_2lo<B>() + c) - hfsq + f);
@@ -550,7 +550,7 @@ namespace xsimd
550550 0x3fc7466496cb03dell ,
551551 0x3fc2f112df3e5244ll >(w);
552552 B R = t2 + t1;
553- B dk = to_float (k);
553+ B dk = fexp_to_float (k);
554554 B r = fma (dk, log_2hi<B>(), fma (s, hfsq + R, dk * log_2lo<B>() + c) - hfsq + f);
555555#ifndef XSIMD_NO_INFINITIES
556556 B zz = select (isnez, select (a == infinity<B>(), infinity<B>(), r), minusinfinity<B>());
0 commit comments