public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
From: "kargl at gcc dot gnu.org" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug fortran/113152] Fortran 2023 half-cycle trigonometric functions
Date: Sat, 20 Jan 2024 19:12:48 +0000	[thread overview]
Message-ID: <bug-113152-4-f0fv4O6HSP@http.gcc.gnu.org/bugzilla/> (raw)
In-Reply-To: <bug-113152-4@http.gcc.gnu.org/bugzilla/>

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113152

kargl at gcc dot gnu.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
  Attachment #56949|0                           |1
        is obsolete|                            |
  Attachment #56950|0                           |1
        is obsolete|                            |
  Attachment #56951|0                           |1
        is obsolete|                            |
  Attachment #56952|0                           |1
        is obsolete|                            |
  Attachment #56956|0                           |1
        is obsolete|                            |

--- Comment #12 from kargl at gcc dot gnu.org ---
Created attachment 57179
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=57179&action=edit
Patch

Here is a new patch.  It includes an implementation for the half-cycle
trigonometric functions as well as fixes for

PR113412 -- better error message for atan(y,x)
PR113413 -- implement atand(y,x)

Here's text that may be suitable formatted for a ChangeLog.

gfortran:

        * gfortran.h (gfc_isym_id): Add GFC_ISYM_ACOSPI, GFC_ISYM_ASINPI,
        GFC_ISYM_ATANPI, GFC_ISYM_ATAN2PI, GFC_ISYM_COSPI, GFC_ISYM_SINPI, and
        GFC_ISYM_TANPI
        * intrinsic.cc (do_check): Whitespace and typo in comments.
        (add_functions): Add two-argument form of ATAND.  Add half-cycle 
        trigonometric functions ACOSPI, ASINPI, ATANPI, ATAN2PI, COSPI,
        SINPI, and TANPI.
        (sort_actual): Generate sensible error messages for two argument
        versions of ATAN, ATAND, and ATANPI.
        * intrinsic.h: New prototypes for gfc_simplify_acospi, 
        gfc_simplify_asinpi, gfc_simplify_atanpi, gfc_simplify_atan2pi,
        gfc_simplify_cospi, gfc_simplify_sinpi, gfc_simplify_tanpi,
        gfc_resolve_acospi, gfc_resolve_asinpi, gfc_resolve_atanpi,
        gfc_resolve_atan2pi, gfc_resolve_cospi, gfc_resolve_sinpi, and
        gfc_resolve_tanpi
        * intrinsic.texi: Document new functions ACOSPI, ASINPI, ATANPI,
        ATAN2PI, COSPI, SINPI, and TANPI.  Put the ATAN* family of functions
        in lexigraphical order.
        * iresolve.cc (gfc_resolve_acospi, gfc_resolve_asinpi,
        gfc_resolve_atanpi, gfc_resolve_atan2pi, gfc_resolve_cospi,
        gfc_resolve_sinpi, gfc_resolve_tanpi):  New functions.
        * simplify.cc (gfc_simplify_acospi, gfc_simplify_asinpi,
        gfc_simplify_atanpi, gfc_simplify_atan2pi, gfc_simplify_cospi,
        gfc_simplify_sinpi, gfc_simplify_tanpi): New functions.
        Introduce MPFR_HALF_CYCLE macros to use MPFR half-cycle functions
        if available.
        * trans-intrinsic.cc: Declare asinpi, acospi, atanpi, atan2pi, sinpi, 
        cospi, and tanpi as LIB_FUNCTION's.

libgfortran 

        *Makefile.am: New files trigpi.c, trigpi_fallback1.c, and
        trigpi_fallback2.F90
        * configure.ac: Check libm for float, double, and long double
        functions for asinpi, acospi, atanpi, atan2pi, sinpi, cospi, and
        tanpi
        * Makefile.in: Regenerated.
        * config.h.in: Ditto.
        * configure: Ditto.
        * gfortran.map: Add GFORTRAN_14 section to expose the library
        symbols.
        * trigpi.c: Fallback implementations of the half-cycle trigonometric
        functions.
        * trigpi_fallback1.c: Fallback functions for float, double, and
        long double routines if libm does provide them.
        * trigpi_fallback2.F90: REAL(16)/REAL(17) fallback implementations
        of the half-cycle trigonometric functions.

  parent reply	other threads:[~2024-01-20 19:12 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-12-27  1:24 [Bug fortran/113152] New: " kargl at gcc dot gnu.org
2023-12-27  1:25 ` [Bug fortran/113152] " kargl at gcc dot gnu.org
2023-12-27  1:26 ` kargl at gcc dot gnu.org
2023-12-27  1:27 ` kargl at gcc dot gnu.org
2023-12-27  1:28 ` kargl at gcc dot gnu.org
2023-12-27 10:20 ` mikael at gcc dot gnu.org
2023-12-27 19:16 ` kargl at gcc dot gnu.org
2023-12-27 23:51 ` kargl at gcc dot gnu.org
2023-12-27 23:56 ` kargl at gcc dot gnu.org
2023-12-27 23:57 ` kargl at gcc dot gnu.org
2023-12-29 20:08 ` kargl at gcc dot gnu.org
2023-12-29 20:34 ` anlauf at gcc dot gnu.org
2023-12-30  0:56 ` sgk at troutmask dot apl.washington.edu
2024-01-20 19:12 ` kargl at gcc dot gnu.org [this message]
2024-01-21 21:52 ` anlauf at gcc dot gnu.org
2024-01-21 23:52 ` sgk at troutmask dot apl.washington.edu
2024-01-22  0:10 ` kargl at gcc dot gnu.org
2024-01-22 17:35 ` anlauf at gcc dot gnu.org
2024-01-22 18:06 ` sgk at troutmask dot apl.washington.edu
2024-01-22 18:22 ` anlauf at gcc dot gnu.org

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=bug-113152-4-f0fv4O6HSP@http.gcc.gnu.org/bugzilla/ \
    --to=gcc-bugzilla@gcc.gnu.org \
    --cc=gcc-bugs@gcc.gnu.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).