Date: Fri, 19 Sep 2025 00:59:24 GMT From: Konstantin Belousov <kib@FreeBSD.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Subject: git: 92801ed02423 - stable/15 - lib/msun: cpow{,f,l}(CMLX(0.0, 0.0)) should return 1.0 Message-ID: <202509190059.58J0xOD3028230@gitrepo.freebsd.org>
next in thread | raw e-mail | index | archive | help
The branch stable/15 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=92801ed02423bd8f7237223168eaa194b28d147f commit 92801ed02423bd8f7237223168eaa194b28d147f Author: Steve Kargl <kargl@FreeBSD.org> AuthorDate: 2025-09-11 16:38:17 +0000 Commit: Konstantin Belousov <kib@FreeBSD.org> CommitDate: 2025-09-19 00:58:53 +0000 lib/msun: cpow{,f,l}(CMLX(0.0, 0.0)) should return 1.0 PR: 289447 (cherry picked from commit 8b41ba845c7e10b5f241a1f944fe9a8e19ad75a9) --- lib/msun/src/s_cpow.c | 5 ++++- lib/msun/src/s_cpowf.c | 5 ++++- lib/msun/src/s_cpowl.c | 5 ++++- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/lib/msun/src/s_cpow.c b/lib/msun/src/s_cpow.c index b887db51aa2a..2c20a8f3b48b 100644 --- a/lib/msun/src/s_cpow.c +++ b/lib/msun/src/s_cpow.c @@ -58,7 +58,10 @@ cpow(double complex a, double complex z) y = cimag (z); absa = cabs (a); if (absa == 0.0) { - return (CMPLX(0.0, 0.0)); + if (x == 0 && y == 0) + return (CMPLX(1., 0.)); + else + return (CMPLX(0., 0.)); } arga = carg (a); r = pow (absa, x); diff --git a/lib/msun/src/s_cpowf.c b/lib/msun/src/s_cpowf.c index 144291079f97..b8bdbd9cb07b 100644 --- a/lib/msun/src/s_cpowf.c +++ b/lib/msun/src/s_cpowf.c @@ -57,7 +57,10 @@ cpowf(float complex a, float complex z) y = cimagf(z); absa = cabsf (a); if (absa == 0.0f) { - return (CMPLXF(0.0f, 0.0f)); + if (x == 0 && y == 0) + return (CMPLXF(1.f, 0.f)); + else + return (CMPLXF(0.f, 0.f)); } arga = cargf (a); r = powf (absa, x); diff --git a/lib/msun/src/s_cpowl.c b/lib/msun/src/s_cpowl.c index 39797cadcfcb..efbe4936895f 100644 --- a/lib/msun/src/s_cpowl.c +++ b/lib/msun/src/s_cpowl.c @@ -57,7 +57,10 @@ cpowl(long double complex a, long double complex z) y = cimagl(z); absa = cabsl(a); if (absa == 0.0L) { - return (CMPLXL(0.0L, 0.0L)); + if (x == 0 && y == 0) + return (CMPLXL(1.L, 0.L)); + else + return (CMPLXL(0.L, 0.L)); } arga = cargl(a); r = powl(absa, x);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202509190059.58J0xOD3028230>