HomeFreeBSD

Description

Fix powf().

Summary:
From Steve Kargl:

Paul Zimmermann has identified a bug in Openlibm's powf(),
which is identical to FreeBSD's libm. Both derived from
fdlibm. https://github.com/JuliaMath/openlibm/issues/212.

Consider

% cat h.c
int
main(void)
{

float x, y, z;
x =  0x1.ffffecp-1F;
y = -0x1.000002p+27F;
z =  0x1.557a86p115F;
printf("%e %e %e <-- should be %e\n", x, y, powf(x,y), z);
return 0;

}

% cc -o h -fno-builtin h.c -lm && ./h
9.999994e-01 -1.342177e+08 inf <-- should be 5.540807e+34

Reviewers: manu

Subscribers: imp, andrew, emaste

Differential Revision: https://reviews.freebsd.org/D31865

Details

Provenance
markmAuthored on Sep 6 2021, 5:26 PM
Differential Revision
D31865: Fix powf().
Parents
rG8a004a98c2cd: git-arc: allow word splitting in build_commit_list()
Branches
Unknown
Tags
Unknown