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

(cherry picked from commit 292815eac623035493854f133200a4b1041fa246)

Details

Provenance
markmAuthored on Sep 6 2021, 5:26 PM
emasteCommitted on Jul 26 2023, 11:07 PM
Differential Revision
D31865: Fix powf().
Parents
rGca54e5c484ca: Move LIBADD lines from usr.bin/clang/*/Makefile one level up
Branches
Unknown
Tags
Unknown