Revert changes to std_falback::log1p that broke handling of arguments less than -1. Fix packet op accordingly.

This commit is contained in:
Rasmus Munk Larsen
2019-08-27 15:35:29 -07:00
parent b021cdea6d
commit 9aba527405
3 changed files with 2 additions and 7 deletions

View File

@@ -137,10 +137,8 @@ Packet generic_plog1p(const Packet& x)
Packet xp1 = padd(x, one);
Packet small_mask = pcmp_eq(xp1, one);
Packet log1 = plog(xp1);
// Add a check to handle x == +inf.
Packet pos_inf_mask = pcmp_eq(x, log1);
Packet log_large = pmul(x, pdiv(log1, psub(xp1, one)));
return pselect(por(small_mask, pos_inf_mask), x, log_large);
return pselect(small_mask, x, log_large);
}
/** \internal \returns exp(x)-1 computed using W. Kahan's formula.