<!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>