<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
  <meta name="generator" content=
  "HTML Tidy for OS/2 (vers 1 September 2005), see www.w3.org">
<style type="text/css">
      del { font-weight:bold;background-color:#ffa0a0 }
      ins { font-weight:bold;background-color:#a0ffa0 }
      blockquote {
      display: block;
      font-family: "Times New Roman";
      background-color:lightgray;
      margin-top: 1em;
      margin-bottom: 1em;
      margin-left: 40px;
      margin-right: 40px
      }
</style>

  <title>N27??: cr_ prefix</title>
</head>

<body>
  <p><br>
  <!-- Who are the authors... -->
   <b>Submitter:</b>CFP group<br>
  <!-- What is the date of submission. yyyy-mm-dd -->
   <b>Submission Date:</b> 2021-??-??<br>
  <b>Document:</b> WG14 N27??<br>
  <b>Title:</b> N27??: cr_ prefix<br>
  <b>Reference Documents:</b>WG14 N2596, CFP 1906, 1967</p>

  <p>Summary: The list of correctly rounded functions (functions
  with a prefix of <b>cr_</b>) may be easy to overlook as new math
  functions get added to C.</p>

  <p>For example, cr_sqrt, cr_cbrt, cr_lgamma, cr_tgamma, cr_erf,
  and cr_erfc should be in that list.</p>

  <p>The good solution is to reserve the <b>cr_</b> prefix for
  correctly rounded math functions. The poor solution is to add to
  the existing list of <b>cr_</b> functions.</p>

  <p>These page numbers are for N2596.</p>

  <p>Proposed solution</p>

  <p>Reserve <b>cr_</b> as a prefix.</p>

  <p>Change 7.31.8 Mathematics <math.h> paragraph 4 from</p>

  <blockquote>
    The function names<br>
    cr_acosh cr_acospi cr_acos cr_asinh cr_asinpi cr_asin
    cr_atan2pi cr_atan2 cr_atanh cr_atanpi cr_atan cr_compoundn
    cr_cosh cr_cospi cr_cos cr_exp10m1 cr_exp10 cr_exp2m1 cr_exp2
    cr_expm1 cr_exp cr_hypot cr_log10p1 cr_log10 cr_log1p cr_log2p1
    cr_log2 cr_logp1 cr_log cr_pown cr_powr cr_pow cr_rootn
    cr_rsqrt cr_sinh cr_sinpi cr_sin cr_tanh cr_tanpi cr_tan<br>
    and the same names suffixed with f, l, d32, d64, or d128 are
    potentially reserved identifiers and may be added to the
    declarations in <math.h> header.
  </blockquote>

  <p>to</p>

  <blockquote>
    <del>The function names<br>
    cr_acosh cr_acospi cr_acos cr_asinh cr_asinpi cr_asin
    cr_atan2pi cr_atan2 cr_atanh cr_atanpi cr_atan cr_compoundn
    cr_cosh cr_cospi cr_cos cr_exp10m1 cr_exp10 cr_exp2m1 cr_exp2
    cr_expm1 cr_exp cr_hypot cr_log10p1 cr_log10 cr_log1p cr_log2p1
    cr_log2 cr_logp1 cr_log cr_pown cr_powr cr_pow cr_rootn
    cr_rsqrt cr_sinh cr_sinpi cr_sin cr_tanh cr_tanpi cr_tan<br>
    and the same names suffixed with f, l, d32, d64, or d128</del>
    <ins>Function names that begin with <b>cr_</b></ins> are
    <del>potentially</del> reserved identifiers and may be added to
    the declarations in <math.h> header.
  </blockquote>

  <p>Remove the "<b>cr_*</b>" entries on printed page 514 in J.6.2
  Particular identifiers or keywords.</p>
</body>
</html>