<html><body>
<p><font size="2" face="sans-serif">&quot;Standard&quot; has two meanings here. &nbsp;Float, double and long double are required by the C standard, but not necessarily follow the IEEE 754 standard. &nbsp;_Float32 and _Float64 are proposed to be in the C standard but not required by it, but are required by and defined by 754.</font><br>
<br>
<font size="2" face="sans-serif">I don't really object to calling float, double and long double &quot;standard real floating types&quot; but it isn't ideal when they're standard in one way but not necessarily in the other.</font><br>
<br>
<font size="2" face="sans-serif">Since they're required and the new ones aren't, how about &quot;required real floating types&quot;?</font><br>
<br>
<br>
<font size="2" face="sans-serif">If we were defining C from scratch I would strongly recommend distinguishing between conceptual versus implementation types. &nbsp;A program may have many conceptual integer types, each referring to a different kind of thing - a part number, and employee number, am order number, a subscript in an array, and those should never be mixed. &nbsp;Under them, their implementation types would be int, unsigned int, short, long, unsigned long long, char, etc. or even better int32_t etc. so you have easier control over their required size. &nbsp;Those implementation types should </font><font size="2" face="sans-serif"><i>never</i></font><font size="2" face="sans-serif">&nbsp; be used except as the implementation of a conceptual type in a typedef (preferably a string or opaque typedef). &nbsp;I've used that approach in an internal language and it makes code more readable and with a strong typedef helps detect bugs at compile time. &nbsp;Defining each conceptual type in only one place also vastly simplifies portability.</font><br>
<br>
<font size="2" face="sans-serif">For floating point, the conceptual types might be temperature, distance, angle, etc., and they each should be defined in one place to be some implementation type - either float, double or long double, or even better one of the 754 types so you have easier control over their required precision, range and size. &nbsp;Each implementation should also define float, double and long double as a weak typedef to either one of the 754 types or to one of that implementation's nonstandard types (eg _CDC6600_60).</font><br>
<br>
<font size="2" face="sans-serif">With that approach, I think the names of the groups of types would end up different again, and likely wouldn't have &quot;standard&quot; as part of their names.</font><br>
<br>
<font size="2" face="sans-serif">- Ian McIntosh &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;IBM Canada Lab &nbsp; &nbsp; &nbsp; &nbsp; Compiler Back End Support and Development<br>
</font><br>
<br>
<img width="16" height="16" src="cid:1__=0ABBF1ECDFCF24B68f9e8a93df938@ca.ibm.com" border="0" alt="Inactive hide details for James W Thomas ---05/31/2013 09:42:20 PM---On the question of a name (generic, general, traditional, "><font size="2" color="#424282" face="sans-serif">James W Thomas ---05/31/2013 09:42:20 PM---On the question of a name (generic, general, traditional, classical, etc.) for the float, double, an</font><br>
<br>

<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr valign="top"><td width="1%"><img width="96" height="1" src="cid:2__=0ABBF1ECDFCF24B68f9e8a93df938@ca.ibm.com" border="0" alt=""><br>

<ul style="padding-left: 4pt"><font size="1" color="#5F5F5F" face="sans-serif">From:</font></ul>
</td><td width="100%"><img width="1" height="1" src="cid:2__=0ABBF1ECDFCF24B68f9e8a93df938@ca.ibm.com" border="0" alt=""><br>
<font size="1" face="sans-serif">James W Thomas &lt;jaswthomas@sbcglobal.net&gt;</font></td></tr>

<tr valign="top"><td width="1%"><img width="96" height="1" src="cid:2__=0ABBF1ECDFCF24B68f9e8a93df938@ca.ibm.com" border="0" alt=""><br>

<ul style="padding-left: 4pt"><font size="1" color="#5F5F5F" face="sans-serif">To:</font></ul>
</td><td width="100%"><img width="1" height="1" src="cid:2__=0ABBF1ECDFCF24B68f9e8a93df938@ca.ibm.com" border="0" alt=""><br>
<font size="1" face="sans-serif">CFP &lt;cfp-interest@ucbtest.org&gt;</font></td></tr>

<tr valign="top"><td width="1%"><img width="96" height="1" src="cid:2__=0ABBF1ECDFCF24B68f9e8a93df938@ca.ibm.com" border="0" alt=""><br>

<ul style="padding-left: 4pt"><font size="1" color="#5F5F5F" face="sans-serif">Date:</font></ul>
</td><td width="100%"><img width="1" height="1" src="cid:2__=0ABBF1ECDFCF24B68f9e8a93df938@ca.ibm.com" border="0" alt=""><br>
<font size="1" face="sans-serif">05/31/2013 09:42 PM</font></td></tr>

<tr valign="top"><td width="1%"><img width="96" height="1" src="cid:2__=0ABBF1ECDFCF24B68f9e8a93df938@ca.ibm.com" border="0" alt=""><br>

<ul style="padding-left: 4pt"><font size="1" color="#5F5F5F" face="sans-serif">Subject:</font></ul>
</td><td width="100%"><img width="1" height="1" src="cid:2__=0ABBF1ECDFCF24B68f9e8a93df938@ca.ibm.com" border="0" alt=""><br>
<font size="1" face="sans-serif">Re: [Cfp-interest] a term for float, double, and long double</font></td></tr>

<tr valign="top"><td width="1%"><img width="96" height="1" src="cid:2__=0ABBF1ECDFCF24B68f9e8a93df938@ca.ibm.com" border="0" alt=""><br>

<ul style="padding-left: 4pt"><font size="1" color="#5F5F5F" face="sans-serif">Sent by:</font></ul>
</td><td width="100%"><img width="1" height="1" src="cid:2__=0ABBF1ECDFCF24B68f9e8a93df938@ca.ibm.com" border="0" alt=""><br>
<font size="1" face="sans-serif">cfp-interest-bounces@oakapple.net</font></td></tr>
</table>
<hr width="100%" size="2" align="left" noshade style="color:#8091A5; "><br>
<br>
<br>
<tt><font size="2">On the question of a name (generic, general, traditional, classical, etc.) for the float, double, and long double types, the two responses from WG 14 members stated a preference for &quot;standard real floating types&quot;, to reflect the C naming model for integer types. I recall we didn't take that approach originally because we are proposing new types for the Standard (and shouldn't they be called &quot;standard&quot; too?). On second thought, since our new types are either conditionally normative or optional, it seems reasonable to have &quot;standard&quot; apply to the types the Standard requires of all implementations, and not to the types we're adding.<br>
<br>
A second issue is whether &quot;real&quot; is needed as part of the name (for float, double, and long double), or would &quot;standard floating types&quot; be better. Since C11 made complex a conditionally normative feature, the types float, double, and long double are the only floating types the Standard now requires for all (hosted) implementations. If we did include &quot;real&quot; in the name, would we need to include it in the names of the new real floating types we'll be adding (decimal real floating types, etc.)? A minimalist scheme might be<br>
<br>
real floating types<br>
                 standard floating types: float, double, long double<br>
                 decimal floating types: _Decimal32, _Decimal64, _Decimal128<br>
                 interchange floating types: _FloatN, _DecimalN<br>
                 extended floating types: _FloatNx, _DecimalNx<br>
<br>
A modification that calls out IEC 60559 types might be<br>
<br>
real floating types<br>
                 standard floating types: float, double, long double<br>
                 IEC 60559 floating types<br>
                                  decimal floating types: _Decimal32, _Decimal64, _Decimal128<br>
                                  IEC 60559 interchange floating types: _FloatN, _DecimalN<br>
                                  IEC 60559 extended floating types: _FloatNx, _DecimalNx<br>
<br>
where the IEC 60559 qualified types are introduced in Part 3.<br>
<br>
Your thoughts?<br>
<br>
-Jim<br>
<br>
<br>
<br>
_______________________________________________<br>
Cfp-interest mailing list<br>
Cfp-interest@oakapple.net<br>
</font></tt><tt><font size="2"><a href="http://mailman.oakapple.net/mailman/listinfo/cfp-interest">http://mailman.oakapple.net/mailman/listinfo/cfp-interest</a></font></tt><tt><font size="2"><br>
<br>
</font></tt><br>
<br>
</body></html>