<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>Here's a first cut at an introduction for our Part 1 draft. I plan to put it in later this afternoon for posting to the WG14 wiki. Comments/corrections welcome.</div><div><br></div><div>-Jim</div><div><br></div><div>






<!--[if gte mso 9]><xml>
 <o:OfficeDocumentSettings>
  <o:PixelsPerInch>96</o:PixelsPerInch>
 </o:OfficeDocumentSettings>
</xml><![endif]-->

<!--[if gte mso 9]><xml>
 <w:WordDocument>
  <w:View>Normal</w:View>
  <w:Zoom>0</w:Zoom>
  <w:TrackMoves/>
  <w:TrackFormatting/>
  <w:PunctuationKerning/>
  <w:ValidateAgainstSchemas/>
  <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
  <w:IgnoreMixedContent>false</w:IgnoreMixedContent>
  <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
  <w:DoNotPromoteQF/>
  <w:LidThemeOther>EN-US</w:LidThemeOther>
  <w:LidThemeAsian>JA</w:LidThemeAsian>
  <w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
  <w:Compatibility>
   <w:BreakWrappedTables/>
   <w:SnapToGridInCell/>
   <w:WrapTextWithPunct/>
   <w:UseAsianBreakRules/>
   <w:DontGrowAutofit/>
   <w:SplitPgBreakAndParaMark/>
   <w:EnableOpenTypeKerning/>
   <w:DontFlipMirrorIndents/>
   <w:OverrideTableStyleHps/>
  </w:Compatibility>
  <m:mathPr>
   <m:mathFont m:val="Cambria Math"/>
   <m:brkBin m:val="before"/>
   <m:brkBinSub m:val="&#45;-"/>
   <m:smallFrac m:val="off"/>
   <m:dispDef/>
   <m:lMargin m:val="0"/>
   <m:rMargin m:val="0"/>
   <m:defJc m:val="centerGroup"/>
   <m:wrapIndent m:val="1440"/>
   <m:intLim m:val="subSup"/>
   <m:naryLim m:val="undOvr"/>
  </m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
 <w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
  DefSemiHidden="true" DefQFormat="false" DefPriority="99"
  LatentStyleCount="276">
  <w:LsdException Locked="false" Priority="0" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
  <w:LsdException Locked="false" Priority="0" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
  <w:LsdException Locked="false" Priority="0" QFormat="true" Name="heading 2"/>
  <w:LsdException Locked="false" Priority="0" QFormat="true" Name="heading 3"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 1"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 2"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 3"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 4"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 5"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 6"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 7"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 8"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 9"/>
  <w:LsdException Locked="false" Priority="0" Name="header"/>
  <w:LsdException Locked="false" Priority="0" Name="footer"/>
  <w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
  <w:LsdException Locked="false" Priority="10" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Title"/>
  <w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
  <w:LsdException Locked="false" Priority="11" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
  <w:LsdException Locked="false" Priority="22" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
  <w:LsdException Locked="false" Priority="20" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
  <w:LsdException Locked="false" Priority="59" SemiHidden="false"
   UnhideWhenUsed="false" Name="Table Grid"/>
  <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
  <w:LsdException Locked="false" Priority="1" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 1"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
  <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
  <w:LsdException Locked="false" Priority="34" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
  <w:LsdException Locked="false" Priority="29" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
  <w:LsdException Locked="false" Priority="30" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 1"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 2"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 2"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 3"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 3"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 4"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 4"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 5"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 5"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 6"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 6"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
  <w:LsdException Locked="false" Priority="19" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
  <w:LsdException Locked="false" Priority="21" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
  <w:LsdException Locked="false" Priority="31" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
  <w:LsdException Locked="false" Priority="32" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
  <w:LsdException Locked="false" Priority="33" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
  <w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
  <w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
 </w:LatentStyles>
</xml><![endif]-->

<!--[if gte mso 10]>
<style>
 /* Style Definitions */
table.MsoNormalTable
        {mso-style-name:"Table Normal";
        mso-tstyle-rowband-size:0;
        mso-tstyle-colband-size:0;
        mso-style-noshow:yes;
        mso-style-priority:99;
        mso-style-parent:"";
        mso-padding-alt:0in 5.4pt 0in 5.4pt;
        mso-para-margin:0in;
        mso-para-margin-bottom:.0001pt;
        mso-pagination:widow-orphan;
        font-size:10.0pt;
        font-family:"Times New Roman";}
</style>
<![endif]-->



<!--StartFragment-->

<div class="WordSection1">

<h1><a name="_Toc190158465"></a><a name="_Toc450303209"></a><a name="_Toc443470359"><span style="mso-bookmark:_Toc450303209"><span style="mso-bookmark:_Toc190158465"><span lang="EN-GB">0<span style="mso-tab-count:
1">&nbsp;&nbsp;&nbsp; </span>Introduction</span></span></span></a><span lang="EN-GB"><o:p></o:p></span></h1>

<h2><span lang="EN-GB">0.1<span style="mso-tab-count:1">&nbsp;&nbsp;&nbsp; </span>Background<o:p></o:p></span></h2>

<h3><span lang="EN-GB">0.1.1<span style="mso-tab-count:1">&nbsp;&nbsp; </span>The IEC 60559
floating-point standard<o:p></o:p></span></h3><p class="MsoNormal"><span style="mso-ansi-language:EN-US">The IEC 60559:1989
international standard was equivalent to the IEEE 754-1985 standard for binary
floating-point arithmetic. Its stated goals were:<o:p></o:p></span></p><p class="MsoNormal" style="margin-left:.25in;text-indent:-.25in;mso-list:l0 level1 lfo1"><!--[if !supportLists]--><span style="mso-fareast-font-family:Arial;mso-bidi-font-family:Arial;mso-ansi-language:
EN-US"><span style="mso-list:Ignore">1<span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><!--[endif]--><span style="mso-ansi-language:EN-US">Facilitate
movement of existing programs from diverse computers to those that adhere to
this standard.<o:p></o:p></span></p><p class="MsoNormal" style="margin-left:.25in;text-indent:-.25in;mso-list:l0 level1 lfo1"><!--[if !supportLists]--><span style="mso-fareast-font-family:Arial;mso-bidi-font-family:Arial;mso-ansi-language:
EN-US"><span style="mso-list:Ignore">2<span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><!--[endif]--><span style="mso-ansi-language:EN-US">Enhance
the capabilities and safety available to programmers who, though not expert in
numerical methods, may well be attempting to produce numerically sophisticated
programs. However, we recognize that utility and safety are sometimes
antagonists. <o:p></o:p></span></p><p class="MsoNormal" style="margin-left:.25in;text-indent:-.25in;mso-list:l0 level1 lfo1"><!--[if !supportLists]--><span style="mso-fareast-font-family:Arial;mso-bidi-font-family:Arial;mso-ansi-language:
EN-US"><span style="mso-list:Ignore">3<span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><!--[endif]--><span style="mso-ansi-language:EN-US">Encourage
experts to develop and distribute robust and efficient numerical programs that
are portable, by way of minor editing and recompilation, onto any computer that
conforms to this standard and possesses adequate capacity. When restricted to a
declared subset of the standard, these programs should produce identical results
on all conforming systems. <o:p></o:p></span></p><p class="MsoNormal" style="margin-left:.25in;text-indent:-.25in;mso-list:l0 level1 lfo1"><!--[if !supportLists]--><span style="mso-fareast-font-family:Arial;mso-bidi-font-family:Arial;mso-ansi-language:
EN-US"><span style="mso-list:Ignore">4<span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><!--[endif]--><span style="mso-ansi-language:EN-US">Provide
direct support for <o:p></o:p></span></p><p class="MsoNormal" style="margin-left:.75in;text-indent:-.25in;mso-list:l2 level2 lfo2"><!--[if !supportLists]--><span style="mso-fareast-font-family:Arial;mso-bidi-font-family:Arial;mso-ansi-language:
EN-US"><span style="mso-list:Ignore">a.<span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><!--[endif]--><span style="mso-ansi-language:EN-US">Execution-time
diagnosis of anomalies <o:p></o:p></span></p><p class="MsoNormal" style="margin-left:.75in;text-indent:-.25in;mso-list:l2 level2 lfo2"><!--[if !supportLists]--><span style="mso-fareast-font-family:Arial;mso-bidi-font-family:Arial;mso-ansi-language:
EN-US"><span style="mso-list:Ignore">b.<span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><!--[endif]--><span style="mso-ansi-language:EN-US">Smoother
handling of exceptions <o:p></o:p></span></p><p class="MsoNormal" style="margin-left:.75in;text-indent:-.25in;mso-list:l2 level2 lfo2"><!--[if !supportLists]--><span style="mso-fareast-font-family:Arial;mso-bidi-font-family:Arial;mso-ansi-language:
EN-US"><span style="mso-list:Ignore">c.<span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><!--[endif]--><span style="mso-ansi-language:EN-US">Interval
arithmetic at a reasonable cost <o:p></o:p></span></p><p class="MsoNormal" style="margin-left:.25in;text-indent:-.25in;mso-list:l0 level1 lfo1"><!--[if !supportLists]--><span style="mso-fareast-font-family:Arial;mso-bidi-font-family:Arial;mso-ansi-language:
EN-US"><span style="mso-list:Ignore">5<span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><!--[endif]--><span style="mso-ansi-language:EN-US">Provide
for development of <o:p></o:p></span></p><p class="MsoNormal" style="margin-left:.75in;text-indent:-.25in;mso-list:l1 level2 lfo3"><!--[if !supportLists]--><span style="mso-fareast-font-family:Arial;mso-bidi-font-family:Arial;mso-ansi-language:
EN-US"><span style="mso-list:Ignore">a.<span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><!--[endif]--><span style="mso-ansi-language:EN-US">Standard
elementary functions such as exp and cos <o:p></o:p></span></p><p class="MsoNormal" style="margin-left:.75in;text-indent:-.25in;mso-list:l1 level2 lfo3"><!--[if !supportLists]--><span style="mso-fareast-font-family:Arial;mso-bidi-font-family:Arial;mso-ansi-language:
EN-US"><span style="mso-list:Ignore">b.<span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><!--[endif]--><span style="mso-ansi-language:EN-US">Very high
precision (multiword) arithmetic <o:p></o:p></span></p><p class="MsoNormal" style="margin-left:.75in;text-indent:-.25in;mso-list:l1 level2 lfo3"><!--[if !supportLists]--><span style="mso-fareast-font-family:Arial;mso-bidi-font-family:Arial;mso-ansi-language:
EN-US"><span style="mso-list:Ignore">c.<span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><!--[endif]--><span style="mso-ansi-language:EN-US">Coupling
of numerical and symbolic algebraic computation <o:p></o:p></span></p><p class="MsoNormal" style="margin-left:.25in;text-indent:-.25in;mso-list:l0 level1 lfo1"><!--[if !supportLists]--><span style="mso-fareast-font-family:Arial;mso-bidi-font-family:Arial;mso-ansi-language:
EN-US"><span style="mso-list:Ignore">6<span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><!--[endif]--><span style="mso-ansi-language:EN-US">Enable
rather than preclude further refinements and extensions. <o:p></o:p></span></p><p class="MsoNormal"><span style="mso-ansi-language:EN-US">To these ends, the
standard specified binary floating-point formats, including representations for
Not-a-Number (NaN) and signed infinities and zero, and basic arithmetic
operations that compose a well-defined, closed arithmetic system. It also
specified status flags for detecting exceptional conditions (invalid operation,
division by zero, overflow, underflow, and inexact), controls for choosing
different rounding methods, conversions between floating-point formats and
decimal character sequences, and a few auxiliary operations.<o:p></o:p></span></p><p class="MsoNormal"><span style="mso-ansi-language:EN-US">This standard was
motivated by an expanding diversity in floating-point data representation and
arithmetic, which made writing robust programs, debugging, and moving programs
between systems exceedingly difficult. Now the great majority of systems
provide data formats and arithmetic operations according to this standard.<o:p></o:p></span></p><p class="MsoNormal"><span style="mso-ansi-language:EN-US">The IEC 60559:2011
international standard is equivalent to the IEEE 754-2008 standard for
floating-point arithmetic, which is a major revision to IEEE 754-1985. <o:p></o:p></span></p><p class="MsoNormal"><span style="mso-ansi-language:EN-US">The revised standard
specifies more formats, including decimal as well as binary. It adds a 128-bit
binary format to its basic formats. It defines extended formats for all of its
basic formats. It specifies data interchange formats (which may or may not be
arithmetic), including a 16-bit binary format and an unbounded tower of wider
formats. To conform to the floating-point standard, an implementation must
provide at least one of the basic formats, along with the required operations.<o:p></o:p></span></p><p class="MsoNormal"><span style="mso-ansi-language:EN-US">The revised standard
specifies more operations. New requirements include -- among others --
arithmetic operations that round their result to a narrower format than the
operands (with just one rounding), more conversions with integer types, more
inquiries and comparisons, and more operations for managing flags and modes.
New recommendations include an extensive set of mathematical functions and
seven reduction functions for sums and scaled products.<o:p></o:p></span></p><p class="MsoNormal"><span style="mso-ansi-language:EN-US">The revised standard
places more emphasis on reproducible results, which is reflected in its
standardization of more operations. For the most part, behaviors are completely
specified. The standard requires conversions between floating-point formats and
decimal character sequences to be correctly rounded for at least three more
decimal digits than is required to distinguish all numbers in the widest
supported binary format. It recommends that transcendental functions be
correctly rounded.<o:p></o:p></span></p><p class="MsoNormal"><span style="mso-ansi-language:EN-US">The revised standard
requires a way to specify a constant rounding direction for a static portion of
code, with details left to programming language standards. This feature
potentially allows rounding control without incurring the overhead of runtime
access to a global (or thread) rounding mode.<o:p></o:p></span></p><p class="MsoNormal"><span style="mso-ansi-language:EN-US">Other features
recommended by the revised standard include alternate methods for exception
handling, controls for expression evaluation (allowing or disallowing various
optimizations), support for fully reproducible results, and support for program
debugging.<o:p></o:p></span></p><p class="MsoNormal"><span style="mso-ansi-language:EN-US">The revised standard
includes guidance for programming language standards, in recognition of the
fact that features of the floating-point standard, even if well supported in
the hardware, are not available to users unless the programming language
provides a commensurate level of support. The implementation’s combination of
both hardware and software determines conformance to the floating-point standard.<o:p></o:p></span></p>

<h3><span style="mso-ansi-language:EN-US">0.1.2<span style="mso-tab-count:1">&nbsp;&nbsp; </span>C
support for IEC 60559<o:p></o:p></span></h3><p class="MsoNormal"><span lang="EN-GB">IEC 9899:1999 (C99), in conditionally
normative Annex F, introduced nearly complete support for the IEC 60559:1989
standard for binary floating-point arithmetic. Also, C99’s informative Annex G
offered a specification of complex arithmetic that is compatible with IEC
60559:1989.<o:p></o:p></span></p><p class="MsoNormal"><span lang="EN-GB">IEC 9899:2011 (C11) includes refinements to
the C99 floating-point specification, though is still based on IEC 60559;1989.
C11 upgrades Annex G from “informative” to “conditionally normative”.<o:p></o:p></span></p><p class="MsoNormal"><span lang="EN-GB">IEC Technical Report 24732:2008 introduced
partial C support for the decimal floating-point arithmetic in IEC 60559:2011.
TR 24732, for which technical content was completed while IEEE 754-2008 was
still in the later stages of development, specifies decimal types based on IEC
60559:2011 decimal formats, though it does not include all of the operations
required by IEC 60559:2011.<o:p></o:p></span></p>

<h2><span lang="EN-GB">0.2<span style="mso-tab-count:1">&nbsp;&nbsp;&nbsp; </span>Purpose<o:p></o:p></span></h2><p class="MsoNormal"><span lang="EN-GB">The purpose of this Technical Specification
is to provide a C language binding for IEC 60559:2011, based on the C11 standard,
that delivers the goals of IEC 60559 to users and is feasible to implement. It
is organized into five Parts.<o:p></o:p></span></p><p class="MsoNormal"><span lang="EN-GB">Part 1, this document, provides suggested
changes to C11 that cover all the requirements, plus some basic
recommendations, of IEC 60559:2011 for binary floating-point arithmetic. C
implementations intending to support IEC 60559:2011 are expected to conform to
conditionally normative Annex F as enhanced by the suggested changes in Part 1.<o:p></o:p></span></p><p class="MsoNormal"><span lang="EN-GB">Part 2 enhances TR 24732 to cover all the
requirements, plus some basic recommendations, of IEC 60559:2011 for decimal
floating-point arithmetic. C implementations intending to provide an extension
for decimal floating-point arithmetic supporting IEC 60559-2011 are expected to
conform to Part 2.<o:p></o:p></span></p><p class="MsoNormal"><span lang="EN-GB">Part 3 (Interchange and extended types),
Part 4 (Supplementary functions), and Part 5 (Supplementary attributes) cover
recommended features of IEC 60559-2011. C implementations intending to provide
an extension for these features are expected to conform to the corresponding
Parts.<o:p></o:p></span></p><p class="zzHelp"><span lang="EN-GB"><span style="mso-spacerun:yes">&nbsp;</span><o:p></o:p></span></p>

</div>

<span lang="EN-GB" style="font-size:10.0pt;font-family:Arial;mso-fareast-font-family:
&quot;Times New Roman&quot;;mso-bidi-font-family:&quot;Times New Roman&quot;;color:green;
mso-ansi-language:EN-GB;mso-fareast-language:EN-US;mso-bidi-language:AR-SA"><br clear="all" style="page-break-before:always;mso-break-type:section-break">
</span><!--EndFragment-->



</div></body></html>