You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Here's the deal: powf_neon(x, y) misbehaves for x < 0.9 and large-ish values of y.
Good news is that powf_c() seems to work fine across the range instead, so there is probably some issue in the inline neon code that should be fixable (the _neon implementation aims at being an almost-line-by-line re-implementation of the approximate optimized C code in _c). Also, the testing range in math_debug.c should be increased in order to cover these cases.
This code
for(float x = 0.5; x < 2; x += 0.2)
{
printf("x = %f\n", x);
for(unsigned int y = 2; y < 10; y++)
{
float fCc = powf_c(x, y);
float fNeon = powf_neon(x, y);
float fC = powf(x, y);
printf("[%u] = %f, %f, %f\n", y, fCc, fNeon, fC);
}
printf("\n");
}
Here's the deal:
powf_neon(x, y)
misbehaves forx < 0.9
and large-ish values ofy
.Good news is that
powf_c()
seems to work fine across the range instead, so there is probably some issue in the inline neon code that should be fixable (the_neon
implementation aims at being an almost-line-by-line re-implementation of the approximate optimized C code in_c
). Also, the testing range inmath_debug.c
should be increased in order to cover these cases.This code
gives
The text was updated successfully, but these errors were encountered: