public inbox for glibc-cvs@sourceware.org
help / color / mirror / Atom feed
From: Adhemerval Zanella <azanella@sourceware.org>
To: glibc-cvs@sourceware.org
Subject: [glibc] math: Remove bogus math implementations
Date: Thu,  1 Feb 2024 12:45:24 +0000 (GMT)	[thread overview]
Message-ID: <20240201124524.657DE3858020@sourceware.org> (raw)

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=9c61303ebbdc6e727c89591bff3229c9fbfa438b

commit 9c61303ebbdc6e727c89591bff3229c9fbfa438b
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Tue Jan 30 13:54:27 2024 -0300

    math: Remove bogus math implementations
    
    The exp10, exp10l, fma, fmaf, and fmal default implementation do not
    implement the appropriate semantics nor with an reasonable accuracy.
    They are also not used by any supported port.

Diff:
---
 math/e_exp10.c  | 33 ---------------------------------
 math/e_exp10l.c | 33 ---------------------------------
 math/s_fma.c    | 36 ------------------------------------
 math/s_fmaf.c   | 30 ------------------------------
 math/s_fmal.c   | 32 --------------------------------
 5 files changed, 164 deletions(-)

diff --git a/math/e_exp10.c b/math/e_exp10.c
deleted file mode 100644
index 82fbde520d..0000000000
--- a/math/e_exp10.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <https://www.gnu.org/licenses/>.  */
-
-#include <math.h>
-#include <math_private.h>
-#include <float.h>
-#include <libm-alias-finite.h>
-
-double
-__ieee754_exp10 (double arg)
-{
-  if (isfinite (arg) && arg < DBL_MIN_10_EXP - DBL_DIG - 10)
-    return DBL_MIN * DBL_MIN;
-  else
-    /* This is a very stupid and inprecise implementation.  It'll get
-       replaced sometime (soon?).  */
-    return __ieee754_exp (M_LN10 * arg);
-}
-libm_alias_finite (__ieee754_exp10, __exp10)
diff --git a/math/e_exp10l.c b/math/e_exp10l.c
deleted file mode 100644
index 2786ca34b4..0000000000
--- a/math/e_exp10l.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <https://www.gnu.org/licenses/>.  */
-
-#include <math.h>
-#include <math_private.h>
-#include <float.h>
-#include <libm-alias-finite.h>
-
-long double
-__ieee754_exp10l (long double arg)
-{
-  if (isfinite (arg) && arg < LDBL_MIN_10_EXP - LDBL_DIG - 10)
-    return LDBL_MIN * LDBL_MIN;
-  else
-    /* This is a very stupid and inprecise implementation.  It'll get
-       replaced sometime (soon?).  */
-    return __ieee754_expl (M_LN10l * arg);
-}
-libm_alias_finite (__ieee754_exp10, __exp10)
diff --git a/math/s_fma.c b/math/s_fma.c
deleted file mode 100644
index e036a1c809..0000000000
--- a/math/s_fma.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Compute x * y + z as ternary operation.
-   Copyright (C) 1997-2024 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <https://www.gnu.org/licenses/>.  */
-
-#define NO_MATH_REDIRECT
-#define dfmal __hide_dfmal
-#define f32xfmaf64 __hide_f32xfmaf64
-#include <math.h>
-#undef dfmal
-#undef f32xfmaf64
-#include <libm-alias-double.h>
-#include <math-narrow-alias.h>
-
-double
-__fma (double x, double y, double z)
-{
-  return (x * y) + z;
-}
-#ifndef __fma
-libm_alias_double (__fma, fma)
-libm_alias_double_narrow (__fma, fma)
-#endif
diff --git a/math/s_fmaf.c b/math/s_fmaf.c
deleted file mode 100644
index 407531a40c..0000000000
--- a/math/s_fmaf.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Compute x * y + z as ternary operation.
-   Copyright (C) 1997-2024 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <https://www.gnu.org/licenses/>.  */
-
-#define NO_MATH_REDIRECT
-#include <math.h>
-#include <libm-alias-float.h>
-
-float
-__fmaf (float x, float y, float z)
-{
-  return (x * y) + z;
-}
-#ifndef __fmaf
-libm_alias_float (__fma, fma)
-#endif
diff --git a/math/s_fmal.c b/math/s_fmal.c
deleted file mode 100644
index 05fd756b32..0000000000
--- a/math/s_fmal.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Compute x * y + z as ternary operation.
-   Copyright (C) 1997-2024 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <https://www.gnu.org/licenses/>.  */
-
-#define NO_MATH_REDIRECT
-#define f64xfmaf128 __hide_f64xfmaf128
-#include <math.h>
-#undef f64xfmaf128
-#include <libm-alias-ldouble.h>
-#include <math-narrow-alias.h>
-
-long double
-__fmal (long double x, long double y, long double z)
-{
-  return (x * y) + z;
-}
-libm_alias_ldouble (__fma, fma)
-libm_alias_ldouble_narrow (__fma, fma)

                 reply	other threads:[~2024-02-01 12:45 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240201124524.657DE3858020@sourceware.org \
    --to=azanella@sourceware.org \
    --cc=glibc-cvs@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).