DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Rational R1000/400

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦bde810949⟧ TextFile

    Length: 258844 (0x3f31c)
    Types: TextFile
    Notes: R1k Text-file segment

Derivation

└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
    └─ ⟦5a81ac88f⟧ »Space Info Vol 1« 
        └─⟦46654b182⟧ 
            └─⟦this⟧ 
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
    └─ ⟦5a81ac88f⟧ »Space Info Vol 1« 
        └─⟦7d56a6b67⟧ 
            └─⟦this⟧ 
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
    └─ ⟦5a81ac88f⟧ »Space Info Vol 1« 
        └─⟦9e76d3f12⟧ 
            └─⟦this⟧ 
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
    └─ ⟦5a81ac88f⟧ »Space Info Vol 1« 
        └─⟦dfa0e09c0⟧ 
            └─⟦this⟧ 

TextFile

%!PS-Adobe-2.0
%%Title: PubTeX output 1990.12.12:1555
%%Creator: Pubps,       ArborText, Inc.
%%BoundingBox: (atend)
%%Pages: (atend)
%%DocumentFonts: (atend)
%%EndComments

%! 
%  Dvips.pro - included prolog for DviLaser-generated PostScript files.
% 
%  Copyright (c) 1986-89, ArborText, Inc.
%  Permission to copy is granted so long as the PostScript code
%  is not resold or used in a commercial product.
%
%  $Header: pubps.pro,v 1.14 90/04/10 12:27:08 jsg Exp $

systemdict /setpacking known  % use array packing mode if its available
  {/savepackingmode currentpacking def 
   true setpacking}
  if
 
/$DviLaser 400 dict def
 
% Begin document
/BeginDviLaserDoc {
  vmstatus pop pop 0 eq 
    { $DviLaser begin 
      InitializeState }
    { /DviLaserJob save def
      $DviLaser begin
      InitializeState
      /DviLaserFonts save def }
    ifelse
} bind def
 
% End document
/EndDviLaserDoc {
  vmstatus pop pop 0 eq 
    { end }
    { DviLaserFonts restore
      end
      DviLaserJob restore }
    ifelse
} bind def
 
$DviLaser begin

/tempstr 64 string def
/tempint 0 def
/tempmatrix matrix def
 
%
%  Debugging routines
%
/DebugMode false def

/PrintInt {
  tempstr cvs print
} bind def

/PrintLn {
  (\n) print flush
} bind def
 
/PrintVMStats {
  print
  PrintLn
  (VM status - ) print
  vmstatus
  3 copy
  PrintInt (\(total\), ) print
  PrintInt (\(used\), ) print
  pop
  exch sub 
  PrintInt (\(remaining\), ) print
  PrintInt (\(level\)) print
  PrintLn
} bind def
 
/VMS /PrintVMStats load def 
 
/VMSDebug {
  DebugMode
    {PrintVMStats}
    {pop}
    ifelse
} bind def
 
(beginning of common prolog) VMSDebug 

% Make it easy to bind definitions.
/bdef { bind def } bind def
/xdef { exch def } bdef

% Begin page
/BP {
  /Magnification xdef
  /DviLaserPage save def
  (beginning of page) VMSDebug 
} bdef
 
% End page
/EP {
  DviLaserPage restore
} bdef
 
% Exit page (temporarily) to add fonts/characters.
/XP {
  % Save current point information so it can be reset later. 
  /Xpos where {pop Xpos} {0} ifelse
  /Ypos where {pop Ypos} {0} ifelse
  /currentpoint cvx stopped {0 0 moveto currentpoint} if 
  /DviLaserPage where {pop DviLaserPage restore} if
  moveto
  /Ypos xdef
  /Xpos xdef
} bdef
 
% Resume page
/RP {
  /DviLaserPage save def
} bdef
 
% Purge all fonts to reclaim memory space. 
/PF {
  GlobalMode
  LocalMode
} bdef
 
% Switch to base save/restore level, saving state information. 
/GlobalMode {
  /UserSave where {pop UserSave} if  % invoke "UserSave" if available
  PortraitMode 
  PaperWidth 
  PaperHeight 
  PxlResolution 
  Resolution 
  Magnification
  Ymax
  RasterScaleFactor
  % Save current point information so it can be reset later. 
  /currentpoint cvx stopped {0 0 moveto currentpoint} if 
  /DviLaserPage where {pop DviLaserPage restore} if
  DviLaserFonts restore
  RecoverState
} bdef
 
% Preserve state at the base level.
/RecoverState {
  10 copy
  /Ypos xdef
  /Xpos xdef
  /RasterScaleFactor xdef
  /Ymax xdef
  /Magnification xdef
  /Resolution xdef
  /PxlResolution xdef
  /PaperHeight xdef
  /PaperWidth xdef
  /PortraitMode xdef
  DoInitialScaling
  PortraitMode not {PaperWidth 0 SetupLandscape} if
  Xpos Ypos moveto
} bdef

% Initialize state variables to default values.
/InitializeState {
  /Resolution 3600.0 def
  /PxlResolution 300.0 def
  /RasterScaleFactor PxlResolution Resolution div def
  /PortraitMode true def
  11.0 Resolution mul /PaperHeight xdef
  8.5 Resolution mul /PaperWidth xdef
  /Ymax PaperHeight def
  /Magnification 1000.0 def
  /Xpos 0.0 def
  /Ypos 0.0 def
  /InitialMatrix matrix currentmatrix def
} bdef

% Switch from base save/restore level, restoring state information. 
/LocalMode {
  /Ypos xdef
  /Xpos xdef
  /RasterScaleFactor xdef
  /Ymax xdef
  /Magnification xdef
  /Resolution xdef
  /PxlResolution xdef
  /PaperHeight xdef
  /PaperWidth xdef
  /PortraitMode xdef
  DoInitialScaling
  PortraitMode not {PaperWidth 0 SetupLandscape} if
  Xpos Ypos moveto
  /UserRestore where {pop UserRestore} if  % invoke "UserRestore" if available
  /DviLaserFonts save def
  /DviLaserPage save def
} bdef
 
% Abbreviations 
/S /show load def
/SV /save load def
/RST /restore load def
 
/Yadjust {Ymax exch sub} bdef
 
% (x,y) position absolute, just set Xpos & Ypos, don't move.
/SXY {
  Yadjust 
  /Ypos xdef /Xpos xdef
} bdef
 
% (x,y) position absolute
/XY {
  Yadjust 
  2 copy /Ypos xdef /Xpos xdef
  moveto
} bdef
 
% (x,0) position absolute
/X {
  currentpoint exch pop 
  2 copy /Ypos xdef /Xpos xdef
  moveto
} bdef
 
% (0,y) position absolute
/Y {
  currentpoint pop exch Yadjust 
  2 copy /Ypos xdef /Xpos xdef
  moveto
} bdef
 
% (x,y) position relative
/xy {
  neg rmoveto
  currentpoint /Ypos xdef /Xpos xdef
} bdef
 
% (x,0) position relative
/x {
  0.0 rmoveto
  currentpoint /Ypos xdef /Xpos xdef
} bdef
 
% (0,y) position relative
/y {
  0.0 exch neg rmoveto
  currentpoint /Ypos xdef /Xpos xdef
  } bdef
 
% Print a rule.  In order to get correct pixel size and positioning,
% we usually create a temporary font in which the rule is the only character.
% When the rule is large, however, we fill a rectangle instead.
/R {
  /ht xdef
  /wd xdef
  ht 1950 le wd 1950 le and
    {save
    /tfd 6 dict def
    tfd begin
      /FontType 3 def
      /FontMatrix [1 0 0 1 0 0] def
      /FontBBox [0 0 wd ht] def
      /Encoding 256 array dup 97 /a put def
      /BuildChar {
        pop   % ignore character code
        pop   % ignore font dict, too
        wd 0 0 0 wd ht setcachedevice
        wd ht true
        [1 0 0 -1 0 ht] {<FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF>} imagemask
        } def
      end % tfd
    /tf tfd definefont setfont
    (a) show
    restore
    }
    {gsave
    0 setgray
    currentpoint
    newpath
      moveto
      0.0 ht rlineto
      wd 0.0 rlineto
      0.0 ht neg rlineto
      wd neg 0.0 rlineto
    closepath fill
    grestore
    }
  ifelse
  wd 0.0 rmoveto
  currentpoint /Ypos xdef /Xpos xdef
} bdef

%
%  <PXL-file resolution(pix/inch)> <resolution(pix/inch)> RES
%
/RES {
  /Resolution xdef
  /PxlResolution xdef
  /RasterScaleFactor PxlResolution Resolution div def
  DoInitialScaling
} bdef

%
% Do initial scaling.
%
/DoInitialScaling {
  InitialMatrix setmatrix
  72.0 Resolution div dup scale   
} bdef
 
%
%  <paper-height(pix)> <paper-width(pix)> PM 
%
/PM { 
  XP
  /PaperWidth xdef 
  /PaperHeight xdef
  /Ymax PaperHeight def
  /PortraitMode true def
  DoInitialScaling
  RP
} bdef  
 
%
%  <paper-height(pix)> <paper-width(pix)> LM 
%
/LM {
  XP
  /PaperWidth xdef 
  /PaperHeight xdef
  /Ymax PaperWidth def
  /PortraitMode false def
  DoInitialScaling
  PaperWidth 0 SetupLandscape
  RP
} bdef  
  
% Change magnification setting
/MAG {
  XP
  /Magnification xdef
  RP
} bdef
 
%
%  Switch to landscape mode
%
/SetupLandscape {
  translate
  90.0 rotate
} bdef
 
%
%  <mode> SPB - begin "\special" mode
%
%  This is the PostScript procedure used to transfer from the internal
%  environment used for the DVI translation code emitted by DVIPS to
%  a standard PostScript environment.
%
%  Parameters: 0 - Local
%              1 - Global
%              2 - Inline
%
/SPB {
  /spc_mode xdef
  spc_mode 0 eq spc_mode 2 eq or
    {XP}
    {spc_mode 1 eq {GlobalMode} if} 
    ifelse
  Resolution 72.0 div dup scale        % Restore default scaling...
  Magnification 1000.0 div dup scale   % Adjust for any magnification...
  /Xpos Xpos 72.0 Resolution div mul 1000.0 Magnification div mul def
  /Ypos Ypos 72.0 Resolution div mul 1000.0 Magnification div mul def
} bdef
 
%
%  <mode> SPE - end "\special" mode
%
%  This is the PostScript procedure used to reenter the internal
%  environment used for the DVI translation code emitted by DVIPS from 
%  the standard PostScript environment provided for processing user-supplied
%  PostScript code.
%
%  Parameters: 0 - Local
%              1 - Global
%              2 - Inline
%
/SPE {
  /spc_mode xdef
  1000.0 Magnification div dup scale   % Un-adjust for any magnification...
  72.0 Resolution div dup scale        % Restore default internal scaling...
  spc_mode 0 eq spc_mode 2 eq or
    {RP}
    {spc_mode 1 eq {LocalMode} if} 
    ifelse
} bdef
 
%
%  <num-copies> PP
%
/PP {
  /#copies xdef
  showpage
  /#copies 1 def
} bdef
 
%
%  /font-name <point-size(pix)> DMF
%
/DMF {
  /psz xdef
  /nam xdef
  nam findfont psz scalefont setfont
} bdef
 
%
%  /abcd (xxx) str-concat  ==> /abcdxxx
%
/str-concatstr 64 string def

/str-concat {
  /xxx xdef
  /nam xdef
  /namstr nam str-concatstr cvs def
  /newnam namstr length xxx length add string def
  newnam 0 namstr putinterval
  newnam namstr length xxx putinterval
  newnam cvn 
} bdef
 
%
%  /abcdef 2 str-strip ==> /cdef
%
/str-strip {
  /num xdef
  /nam xdef
  /namstr nam tempstr cvs def
  /newlen namstr length num sub def
  namstr num newlen getinterval
  cvn
} bdef
 
%
%  <old-dict> copydict ==> new-dict on stack
%
/copydict {
  dup length 1 add dict /newdict xdef
    {1 index /FID ne
      {newdict 3 1 roll put}
      {pop pop}
     ifelse
    } forall 
  newdict
} bdef
 
%
%  <font-type> DefineCMEncoding
%
/DefineCMEncoding {
  /EncodeType xdef
 
  /CMEncoding 256 array def
  /Times-Roman findfont /Encoding get aload pop CMEncoding astore pop
 
  EncodeType 11 eq {Do-CM-rm-encoding} if
  EncodeType 12 eq {Do-CM-it-encoding} if
  EncodeType 13 eq {Do-CM-tt-encoding} if
} bdef
 
%
%  Do special mappings for the various CM-font types.  Characters that
%  get "covered up" are repositioned in the range (128,128+32).
%
/Do-standard-CM-encodings {
  CMEncoding
  dup 0 /.notdef put
  dup 1 /.notdef put
  dup 2 /.notdef put
  dup 3 /.notdef put
  dup 4 /.notdef put
  dup 5 /.notdef put
  dup 6 /.notdef put
  dup 7 /.notdef put
 
  dup 8 /.notdef put
  dup 9 /.notdef put
  dup 10 /.notdef put
  dup 11 /.notdef put
  dup 12 /fi put
  dup 13 /fl put
  dup 14 /.notdef put
  dup 15 /.notdef put
 
  dup 16 /dotlessi put
  dup 17 /.notdef put
  dup 18 /grave put
  dup 19 /acute put
  dup 20 /caron put
  dup 21 /breve put
  dup 22 /macron put
  dup 23 /ring put
 
  dup 24 /cedilla put
  dup 25 /germandbls put
  dup 26 /ae put
  dup 27 /oe put
  dup 28 /oslash put
  dup 29 /AE put
  dup 30 /OE put
  dup 31 /Oslash put

  dup 127 /dieresis put

  dup 128 /space put
  dup 129 /quotedbl put
  dup 130 /sterling put
  dup 131 /dollar put
  dup 132 /less put
  dup 133 /greater put
  dup 134 /backslash put
  dup 135 /asciicircum put

  dup 136 /underscore put
  dup 137 /braceleft put
  dup 138 /bar put
  dup 139 /braceright put
  dup 140 /asciitilde put
  pop
} bdef
 
/Do-CM-rm-encoding {
  Do-standard-CM-encodings
  CMEncoding
  dup 32 /.notdef put
  dup 34 /quotedblright put
  dup 60 /exclamdown put
  dup 62 /questiondown put
  dup 92 /quotedblleft put
  dup 94 /circumflex put
  dup 95 /dotaccent put
  dup 123 /endash put
  dup 124 /emdash put
  dup 125 /hungarumlaut put
  dup 126 /tilde put
  pop
} bdef
 
/Do-CM-it-encoding {
  Do-standard-CM-encodings
  CMEncoding
  dup 32 /.notdef put
  dup 34 /quotedblright put
  dup 36 /sterling put
  dup 60 /exclamdown put
  dup 62 /questiondown put
  dup 92 /quotedblleft put
  dup 94 /circumflex put
  dup 95 /dotaccent put
  dup 123 /endash put
  dup 124 /emdash put
  dup 125 /hungarumlaut put
  dup 126 /tilde put
  pop
} bdef
 
/Do-CM-tt-encoding {
  Do-standard-CM-encodings
  CMEncoding
  dup 12 /.notdef put
  dup 13 /quotesingle put
  dup 14 /exclamdown put
  dup 15 /questiondown put
  dup 94 /circumflex put
  dup 126 /tilde put
  pop
} bdef

%
% Routines to handle packing/unpacking numbers.
%
%  <target> <pos> <num> PackHW --> <new target>
%
/PackHW {
  /num xdef
  /pos xdef
  /target xdef
  num 16#0000FFFF and 1 pos sub 16 mul bitshift
    target or
} bdef

%
%  <target> <pos> <num> PackByte --> <new target>
%
/PackByte {
  /num xdef
  /pos xdef
  /target xdef
  num 16#000000FF and 3 pos sub 8 mul bitshift
    target or
} bdef

%
%  <pos> <num> UnpkHW --> <unpacked value>
%
/UnpkHW {
  /num xdef
  /pos xdef
  num 1 pos sub -16 mul bitshift 16#0000FFFF and
  dup 16#00007FFF gt {16#00010000 sub} if
} bdef

%
%  <pos> <num> UnpkByte --> <unpacked value>
%
/UnpkByte {
  /num xdef
  /pos xdef
  num 3 pos sub -8 mul bitshift 16#000000FF and
  dup 16#0000007F gt {16#00000100 sub} if
} bdef

%
%  <int-font-name> <ext-font-name> <pt-sz(pix)> <type> <loaded-fg> DefineCMFont
%
%    type 10: "as-is" PostScript font
%    type 11: CM-mapped PostScript font - roman
%    type 12: CM-mapped PostScript font - text italic 
%    type 13: CM-mapped PostScript font - typewriter type 
%
/int-dict-name {int (-dict) str-concat} bdef
/int-dict {int (-dict) str-concat cvx load} bdef

/DF {
  true  % signal that the font is already loaded
  DefineCMFont
} bdef
 
/DNF {
  false  % signal that the font is not already loaded
  DefineCMFont
} bdef

/DefineCMFont {
  /loaded xdef
  /typ xdef
  /psz xdef
  /ext xdef
  /int xdef
 
  typ 10 ne 
    { % font_type = 11, 12, 13
    loaded not
      { /fnam ext 3 str-strip def
        fnam findfont copydict /newdict xdef 
        typ DefineCMEncoding
        newdict /Encoding CMEncoding put
        ext newdict definefont pop
      } if
    int-dict-name ext findfont psz scalefont def
    currentdict int [int-dict /setfont cvx] cvx put
    }
    { % font_type = 10
    /fnam ext def
    int-dict-name fnam findfont psz scalefont def
    currentdict int [int-dict /setfont cvx] cvx put
    }
  ifelse
} bdef 
 
%
%  <int-font-name> <ext-font-name> <pt-sz(pix)> <PXL mag> <num-chars>
%      [llx lly urx ury] <newfont-fg> DefinePXLFont
%

/PXLF {
  true  % signal that the font is already loaded
  DefinePXLFont
} bdef
 
/PXLNF {
  false  % signal that the font is not already loaded
  DefinePXLFont
} bdef

/PXLBuildCharDict 17 dict def
 
/CMEncodingArray 256 array def
0 1 255 {CMEncodingArray exch dup tempstr cvs cvn put} for

/RasterConvert {RasterScaleFactor div} bdef
 
/TransformBBox {
  aload pop
 
  /BB-ury xdef
  /BB-urx xdef
  /BB-lly xdef
  /BB-llx xdef
 
  [BB-llx RasterConvert BB-lly RasterConvert 
   BB-urx RasterConvert BB-ury RasterConvert]
} bdef

/DefinePXLFont {
  /newfont xdef
  /bb xdef
  /num xdef
  /psz xdef
  /dsz xdef
  /pxlmag xdef
  /ext xdef
  /int xdef
 
  /fnam ext (-) str-concat pxlmag tempstr cvs str-concat def
 
  newfont not {
    int-dict-name 13 dict def
   
    int-dict begin
      /FontType 3 def
      /FontMatrix [1 dsz div 0 0 1 dsz div 0 0] def
      /FontBBox bb TransformBBox def
      /Encoding CMEncodingArray def
      /CharDict 1 dict def
      CharDict begin
        /Char-Info num array def
        end
  
      /BuildChar
        { 
          PXLBuildCharDict begin
            /char xdef
            /fontdict xdef
   
            fontdict /CharDict get /Char-Info get char get aload pop
   
            /rasters xdef
            /PackedWord1 xdef
   
            0 PackedWord1 UnpkHW 16#7FFF ne
              { /PackedWord2 xdef
                /wx 0 PackedWord1 UnpkHW def
                /rows 2 PackedWord1 UnpkByte def
                /cols 3 PackedWord1 UnpkByte def
                /llx 0 PackedWord2 UnpkByte def
                /lly 1 PackedWord2 UnpkByte def
                /urx 2 PackedWord2 UnpkByte def
                /ury 3 PackedWord2 UnpkByte def }
              { /PackedWord2 xdef
                /PackedWord3 xdef
                /PackedWord4 xdef
                /wx 1 PackedWord1 UnpkHW def
                /rows 0 PackedWord2 UnpkHW def
                /cols 1 PackedWord2 UnpkHW def
                /llx 0 PackedWord3 UnpkHW def
                /lly 1 PackedWord3 UnpkHW def
                /urx 0 PackedWord4 UnpkHW def
                /ury 1 PackedWord4 UnpkHW def }
               ifelse

            rows 0 lt
              { /rows rows neg def
                /runlength 1 def }
              { /runlength 0 def }
             ifelse
 
            wx 0 
            llx RasterConvert lly RasterConvert 
            urx RasterConvert ury RasterConvert setcachedevice
            rows 0 ne
              {
              gsave
                cols rows true 
                RasterScaleFactor 0 0 RasterScaleFactor neg llx neg ury 
                  tempmatrix astore
                {GenerateRasters} imagemask
              grestore
              } if
            end
        } def
      end
   
      fnam int-dict definefont pop 
    } if 
 
  int-dict-name fnam findfont psz scalefont def
  currentdict int [int-dict /setfont cvx] cvx put
} bdef 
 
%
%  <int-font-name> <code> <wx> <llx> <lly> <urx> <ury> <rows> <cols> <runlength> <rasters> PXLC
%
/PXLC {
 
  /rasters xdef
  /runlength xdef
  /cols xdef
  /rows xdef
  /ury xdef
  /urx xdef
  /lly xdef
  /llx xdef
  /wx xdef
  /code xdef
  /int xdef
 
  % See if the long or short format is required
  true cols CKSZ rows CKSZ ury CKSZ urx CKSZ lly CKSZ llx CKSZ 
    TackRunLengthToRows
    { int-dict /CharDict get /Char-Info get code 
        [0 0 llx PackByte 1 lly PackByte 2 urx PackByte 3 ury PackByte
         0 0 wx PackHW 2 rows PackByte 3 cols PackByte
         rasters] put}
    { int-dict /CharDict get /Char-Info get code 
        [0 0 urx PackHW 1 ury PackHW
         0 0 llx PackHW 1 lly PackHW
         0 0 rows PackHW 1 cols PackHW
         0 0 16#7FFF PackHW 1 wx PackHW
         rasters] put} 
    ifelse
} bdef
 
/CKSZ {abs 127 le and} bdef
/TackRunLengthToRows {runlength 0 ne {/rows rows neg def} if} bdef
 
%
%  <wx> <dsz> <psz> <llx> <lly> <urx> <ury> <rows> <cols> <runlength> <rasters> PLOTC
%
/PLOTC {
  /rasters xdef
  /runlength xdef
  /cols xdef
  /rows xdef
  /ury xdef
  /urx xdef
  /lly xdef
  /llx xdef
  /psz xdef
  /dsz xdef
  /wx xdef
 
  % "Plot" a character's raster pattern.
  rows 0 ne
    {
    gsave
      currentpoint translate
      psz dsz div dup scale
      cols rows true 
      RasterScaleFactor 0 0 RasterScaleFactor neg llx neg ury 
        tempmatrix astore
      {GenerateRasters} imagemask
    grestore
    } if
  wx x
} bdef
 
% Routine to generate rasters for "imagemask".
/GenerateRasters {
  rasters
  runlength 1 eq {RunLengthToRasters} if
} bdef
 
% Routine to convert from runlength encoding back to rasters.
/RunLengthToRasters {
  % ...not done yet...
} bdef
 
%
%  These procedures handle bitmap processing.
%
%  <bitmap columns> <bitmap rows> <bitmap pix/inch> <magnification> BMbeg
%
/BMbeg {
  /BMmagnification xdef
  /BMresolution xdef
  /BMrows xdef
  /BMcols xdef

  /BMcurrentrow 0 def
  gsave
    0.0 setgray
    Resolution BMresolution div dup scale
    currentpoint translate
    BMmagnification 1000.0 div dup scale
    0.0 BMrows moveto
    BMrows dup scale
    currentpoint translate
    /BMCheckpoint save def
  } bdef

/BMend {
  BMCheckpoint restore
  grestore
  } bdef

%
%  <hex raster bitmap> <rows> BMswath 
%
/BMswath {
  /rows xdef
  /rasters xdef

  BMcols rows true
  [BMrows 0 0 BMrows neg 0 BMcurrentrow neg]
  {rasters}
  imagemask

  /BMcurrentrow BMcurrentrow rows add def
  BMcurrentrow % save this on the stack around a restore...
  BMCheckpoint restore
  /BMcurrentrow xdef
  /BMCheckpoint save def
  } bdef

%
%  Procedures for implementing the "rotate <theta>" special:
%  <theta> ROTB -
%        - ROTE -

/ROTB {
  XP
  gsave
  Xpos Ypos translate
  rotate % using <theta> from the stack
  Xpos neg Ypos neg translate
  RP
  } bdef

/ROTE {XP grestore RP} bdef

%
%  Procedures for implementing the "epsfile <filename> [<mag>]" special:
%  <llx> <lly> <mag> EPSB -
%  - EPSE -

/EPSB {
  0 SPB
  save
  4 1 roll % push the savelevel below the parameters
  /showpage {} def
  Xpos Ypos translate
  1000 div dup scale % using <mag> from the stack
  neg exch neg exch translate % using <llx> <lly> from the stack
  } bdef

/EPSE {restore 0 SPE} bdef

%
%  Procedure for implementing revision bars:
%  <bary1> <bary2> <barx> <barw> REVB -
%  The bar is a line of width barw drawn from (barx,bary1) to (barx,bary2).

/REVB {
  /barw xdef
  /barx xdef
  /bary2 xdef
  /bary1 xdef
  gsave
    barw setlinewidth
    barx bary1 Yadjust moveto
    barx bary2 Yadjust lineto
    stroke
  grestore
  } bdef

%
%  A small dictionary to facilitate The Publisher's implementation
%  of gray table cells.

/grpm 40 dict def

%
%  Procedures for implementing the "paper <source>" option:
%  <name> <eop> SPS          -
%         <eop> paper-manual -
%  etc.  The boolean <eop> is passed so that a paper source procedure
%  knows if it is being called at the beginning (false) or end
%  (true) of a page.

/SPS {
  /eop xdef
  /name xdef
  name where {pop eop name cvx exec} if
  } bdef

/paper-manual {
    {statusdict /manualfeed known
      {statusdict /manualfeed true put}
    if}
  if
  } bdef

/paper-automatic {
    {statusdict /manualfeed known
      {statusdict /manualfeed false put}
    if}
  if
  } bdef

/paper-top-tray {
    {}
    {statusdict /setpapertray known
      {statusdict begin 0 setpapertray end}
    if}
  ifelse
  } bdef

/paper-bottom-tray {
    {}
    {statusdict /setpapertray known
      {statusdict begin 1 setpapertray end}
    if}
  ifelse
  } bdef

/paper-both-trays {
    {}
    {statusdict /setpapertray known
      {statusdict begin 2 setpapertray end}
    if}
  ifelse
  } bdef

(end of common prolog) VMSDebug 

end
 
systemdict /setpacking known 
  {savepackingmode setpacking}
  if

% 
% End of included prolog section.
%

%%EndProlog
%%BeginSetup
BeginDviLaserDoc
300 300 RES
%%EndSetup


%%PageBoundingBox: (atend)
%%BeginPageSetup
1000 BP 3300 2550 PM /paper-automatic false SPS 1009 0 XY
%%EndPageSetup
XP /F45 /CM-Times-Bold 74.720 11 DNF RP
1009 351 XY F45(Rationale)S 42 x(for)S 43 x(the)S 438 Y 555 X(Pr)S
-1 x(oposed)S 30 x(Standard)S 31 x(for)S 31 x(a)S 31 x(Generic)S 
31 x(Package)S 31 x(of)S 525 Y 788 X(Elementary)S 37 x(Functions)S
37 x(for)S 37 x(Ada)S
XP /F2 /CM-Times-Bold 49.813 11 DF RP
1095 649 XY F2(Kenneth)S 30 x(W.)S 30 x(Dritz)S
XP /F0 /CM-Times-Roman 49.813 11 DNF RP
1135 773 XY F0(December)S 31 x(1990)S
XP /F50 /CM-Times-BoldItalic 49.813 12 DNF RP
1216 923 XY F50(Abstract)S
XP /F51 /CM-Times-Roman 37.360 11 DF RP
552 1008 XY F51(This)S 15 x(paper)S 15 x(supplements)S 14 x(the)S 
15 x(\252Proposed)S 15 x(Standard)S 14 x(for)S 15 x(a)S 15 x
(Generic)S 15 x(Package)S 15 x(of)S 15 x(Elementary)S 15 x
(Functions)S 45 y 552 X(for)S 16 x(Ada,\272)S 16 x(written)S 16 x
(by)S 16 x(the)S 17 x(ISO-IEC/JTC1/SC22/WG9)S 16 x(\(Ada\))S 16 x
(Numerics)S 17 x(Rapporteur)S 16 x(Group.)S 28 x(Based)S 46 y 552 X
(on)S 14 x(recommendations)S 14 x(made)S 14 x(jointly)S 14 x(by)S 
14 x(the)S 14 x(ACM)S 14 x(SIGAda)S 14 x(Numerics)S 14 x(W)S -3 x
(orking)S 14 x(Group)S 15 x(and)S 15 x(the)S 14 x(Ada-)S 46 y 552 X
(Europe)S 10 x(Numerics)S 10 x(W)S -3 x(orking)S 10 x(Group,)S 11 x
(the)S 11 x(proposed)S 10 x(elementary)S 10 x(functions)S 10 x
(standard)S 10 x(is)S 10 x(the)S 10 x(\014rst)S 10 x(of)S 10 x
(several)S 45 y 552 X(anticipated)S 18 x(collateral)S 18 x
(standards)S 18 x(to)S 18 x(address)S 18 x(the)S 18 x(interrelated)S
19 x(issues)S 18 x(of)S 19 x(portability,)S 19 x(ef)S -1 x
(\014ciency,)S 21 x(and)S 46 y 552 X(robustness)S 12 x(of)S 12 x
(numerical)S 12 x(software)S 13 x(written)S 12 x(in)S 13 x(Ada.)S 
17 x(Or)S -1 x(ganized)S 13 x(as)S 13 x(a)S 13 x(series)S 13 x(of)S
13 x(questions)S 13 x(and)S 12 x(answers,)S 46 y 552 X(this)S 16 x
(supplement)S 16 x(outlines)S 16 x(the)S 16 x(reasoning)S 16 x(by)S
15 x(which)S 16 x(the)S 16 x(proposed)S 16 x(standard)S 16 x(came)S
15 x(to)S 15 x(acquire)S 16 x(certain)S 45 y 552 X(features)S 16 x
(and)S 16 x(exclude)S 16 x(others.)S
XP /F52 /CM-Helvetica-BoldOblique 49.813 12 DNF RP
327 1476 XY F52(Introduction)S
XP /F6 /CM-Times-Roman 41.511 11 DF RP
410 1557 XY F6(In)S 14 x(the)S 14 x(four)S 14 x(years)S 14 x(since)S
14 x(the)S 14 x(ACM)S 14 x(SIGAda)S 14 x(Numerics)S 14 x(W)S -3 x
(orking)S 14 x(Group)S 14 x(\014rst)S 14 x(began)S 14 x(to)S 14 x
(work)S 14 x(with)S 14 x(the)S 14 x(Ada-Europe)S 50 y 327 X
(Numerics)S 18 x(W)S -3 x(orking)S 17 x(Group)S 18 x(on)S 18 x(a)S
17 x(standard)S 17 x(speci\014cation)S 18 x(for)S 17 x(a)S 17 x
(generic)S 18 x(package)S 17 x(of)S 18 x(elementary)S 18 x
(functions)S 17 x(for)S 17 x(Ada,)S 18 x(it)S 50 y 327 X(has)S 15 x
(received)S 14 x(numerous)S 15 x(inquiries)S 15 x(about)S 15 x
(details)S 15 x(of)S 15 x(that)S 15 x(speci\014cation)S 15 x(from)S
15 x(observers)S 15 x(of)S 15 x(the)S 15 x(ef)S -1 x(fort)S 15 x
(and)S 14 x(from)S 15 x(potential)S 49 y 327 X(future)S 14 x
(implementors.)S 19 x(Particular)S 13 x(questions\320especially)S 
13 x(one)S 14 x(about)S 13 x(the)S 13 x(handling)S 13 x(of)S 13 x
(certain)S 13 x(optional)S 13 x(parameters\320have)S 50 y 327 X
(been)S 15 x(answered)S 15 x(more)S 15 x(than)S 15 x(once.)S 21 x
(This)S 15 x(paper)S 15 x(\(a)S 14 x(revision)S 15 x(of)S 15 x
([6]\))S 15 x(has)S 15 x(been)S 15 x(written)S 15 x(not)S 15 x(just)S
15 x(to)S 15 x(provide)S 15 x(ready)S 15 x(answers)S 50 y 327 X(to)S
15 x(those)S 15 x(questions)S 14 x(which,)S 15 x(by)S 15 x(their)S
15 x(demonstrated)S 15 x(popularity,)S 16 x(we)S 15 x(can)S 15 x
(expect)S 15 x(to)S 15 x(be)S 15 x(asked)S 15 x(again;)S 15 x(it)S
15 x(tries)S 14 x(to)S 15 x(anticipate)S 50 y 327 X(others,)S 13 x
(and)S 12 x(it)S 13 x(collects)S 13 x(in)S 13 x(one)S 12 x(place)S
(\320as)S 12 x(a)S 12 x(kind)S 12 x(of)S 13 x(separate)S 12 x
(appendix)S 13 x(to)S 13 x(the)S 13 x(proposed)S 12 x
(standard\320the)S 13 x(sometimes)S 13 x(subtle)S 50 y 327 X
(reasons)S 13 x(why)S 13 x(certain)S 12 x(decisions)S 12 x(were)S 
12 x(reached)S 12 x(during)S 13 x(the)S 12 x(development)S 12 x(of)S
12 x(the)S 12 x(standard.)S 18 x(W)S -2 x(ith)S 13 x(the)S 12 x
(latter,)S 13 x(we)S 13 x(include)S 12 x(the)S 49 y 327 X(reasons)S
15 x(for)S 15 x(deciding)S
XP /F7 /CM-Times-Italic 41.511 12 DNF RP
688 1955 XY F7(not)S 14 x F6(to)S 15 x(do)S 15 x(things)S 14 x(in)S
15 x(certain)S 15 x(obvious)S 15 x(ways.)S 21 x(This)S 15 x(paper)S
15 x(also)S 15 x(discusses)S 15 x(the)S 15 x(less)S 15 x(readily)S
15 x(apparent)S 50 y 327 X(implications)S 15 x(of)S 14 x(some)S 15 x
(of)S 15 x(those)S 15 x(decisions)S 15 x(for)S 15 x(implementors.)S
21 x(Lastly,)S 15 x(we)S 15 x(hope)S 15 x(that)S 15 x(it)S 15 x
(will)S 14 x(enhance)S 15 x(the)S 15 x(understanding)S 50 y 327 X
(of)S 17 x(the)S 18 x(proposed)S 17 x(standard)S 18 x(and)S 17 x
(facilitate)S 17 x(its)S 17 x(review.)S 2204 Y 327 X F52(Why)S 17 x
(is)S 17 x(a)S 17 x(standard)S 17 x(needed,)S 17 x(and)S 17 x(how)S
18 x(did)S 17 x(this)S 17 x(proposed)S 17 x(standard)S 17 x(come)S
17 x(to)S 17 x(be?)S 2285 Y 410 X F6(The)S 17 x(absence)S 17 x(of)S
17 x(prede\014ned)S 17 x(elementary)S 17 x(functions)S 17 x(from)S
17 x(Ada)S 17 x(has)S 17 x(been)S 17 x(one)S 17 x(of)S 17 x(the)S 
17 x(deterrents)S 17 x(to)S 17 x(the)S 17 x(portability)S 49 y 327 X
(of)S 20 x(scienti\014c)S 20 x(and)S 20 x(engineering)S 20 x
(applications)S 20 x(software)S 20 x(written)S 20 x(in)S 20 x(that)S
20 x(language.)S 37 x(The)S 20 x(need)S 20 x(for)S 20 x(such)S 20 x
(functions)S 20 x(has)S 50 y 327 X(been)S 13 x(widely)S 14 x
(recognized,)S 13 x(as)S 13 x(evidenced)S 13 x(by)S 13 x(the)S 13 x
(support)S 13 x(given)S 13 x(to)S 13 x(them)S 13 x(by)S 13 x
(compiler)S 13 x(vendors)S 13 x(in)S 13 x(the)S 13 x(form)S 13 x(of)S
14 x(proprietary)S 50 y 327 X(packages,)S 11 x(as)S 11 x(well)S 10 x
(as)S 10 x(by)S 11 x(several)S 11 x(purveyors)S 10 x(of)S 11 x
(libraries)S 10 x(of)S 11 x(mathematical)S 11 x(software.)S 18 x
(While)S 11 x(this)S 10 x(has)S 10 x(served)S 10 x(the)S 11 x
(immediate)S 50 y 327 X(needs)S 13 x(of)S 13 x(programmers)S 13 x
(within)S 14 x(their)S 14 x(own)S 14 x(environments,)S 14 x(it)S 
13 x(has)S 13 x(done)S 13 x(little)S 13 x(to)S 14 x(solve)S 13 x
(the)S 14 x(broader)S 14 x(problem)S 14 x(of)S 14 x(portability)S 
50 y 327 X(of)S 14 x(applications)S 14 x(software)S 14 x(using)S 
15 x(the)S 14 x(elementary)S 14 x(functions.)S 19 x(The)S 14 x
(reason,)S 15 x(of)S 14 x(course,)S 14 x(is)S 14 x(the)S 14 x(lack)S
14 x(of)S 14 x(commonality)S 14 x(among)S 50 y 327 X(the)S 15 x(dif)S
-1 x(ferent)S 15 x(packages:)S 21 x(they)S 15 x(dif)S -1 x(fer)S 
16 x(in)S 15 x(the)S 15 x(number)S 15 x(of)S 15 x(functions)S 16 x
(implemented,)S 15 x(their)S 16 x(names,)S 16 x(their)S 15 x
(parameter)S 15 x(pro\014les,)S 49 y 327 X(the)S 15 x(handling)S 
15 x(of)S 15 x(exceptional)S 16 x(conditions,)S 16 x(and)S 16 x
(even)S 16 x(the)S 16 x(use)S 16 x(\(or)S 16 x(avoidance\))S 15 x
(of)S 15 x(genericity.)S 59 y 410 X(Instead)S 10 x(of)S 10 x
(including)S 10 x(prede\014ned)S 11 x(elementary)S 10 x(functions)S
10 x(in)S 10 x(Ada,)S 11 x(its)S 10 x(authors)S 10 x(gave)S 10 x
(the)S 10 x(language)S 10 x(the)S 10 x(necessary)S 10 x(general)S 
50 y 327 X(features)S 16 x(for)S 15 x(de\014ning)S 16 x(and)S 16 x
(collecting)S 16 x(subprograms)S 15 x(together)S 16 x(into)S 15 x
(libraries)S 16 x(\(e.g.,)S 16 x(packages,)S 16 x(generics,)S 16 x
(and)S 16 x(subprogram)S 50 y 327 X(overloading\),)S 13 x(and)S 13 x
(for)S 12 x(creating)S 13 x(portable)S 12 x(and)S 12 x(ef)S -1 x
(\014cient)S 12 x(numerical)S 12 x(software)S 13 x(in)S 13 x
(particular)S 12 x(\(e.g.,)S 13 x(a)S 13 x(model)S 12 x(of)S 12 x
(\015oating-point)S 49 y 327 X(arithmetic,)S 12 x(and)S 13 x
(environmental)S 12 x(enquiries)S 13 x(in)S 13 x(the)S 13 x(form)S
13 x(of)S 13 x(attributes\),)S 12 x(and)S 13 x(then)S 13 x(left)S 
12 x(it)S 12 x(to)S 13 x(experienced)S 13 x(numerical)S 12 x
(analysts)S 50 y 327 X(to)S 19 x(do)S 18 x(what)S 18 x(they)S 18 x
(are)S 18 x(uniquely)S 19 x(quali\014ed)S 18 x(to)S 18 x(do:)S 27 x
(apply)S 19 x(those)S 19 x(features)S 18 x(to)S 18 x(the)S 18 x
(task)S 18 x(of)S 18 x(specifying)S 18 x(and)S 18 x(implementing)S
50 y 327 X(high-quality)S 14 x(libraries)S 13 x(of)S 14 x
(mathematical)S 14 x(software.)S 19 x(Numerical)S 14 x(analysts)S 
14 x(were)S 14 x(already)S 13 x(engaged)S 13 x(in)S 13 x(this)S 14 x
(work)S 14 x(before)S 14 x(Ada)S 50 y 327 X(itself)S 16 x(was)S 16 x
(standardized.)S 26 x(The)S 16 x(need)S 16 x(for)S 16 x(standards)S
16 x(was)S 16 x(recognized)S 16 x(early,)S 17 x(with)S 17 x(several)S
16 x(preliminary)S 16 x(proposals)S 16 x([9,)S 17 x(21,)S
%%PageTrailer
/paper-automatic true SPS 1 PP EP
%%PageBoundingBox: 78 72 546 715

%%PageBoundingBox: (atend)
%%BeginPageSetup
1000 BP 3300 2550 PM /paper-automatic false SPS 327 0 XY
%%EndPageSetup
327 342 XY F6(20])S 16 x(published)S 16 x(between)S 16 x(1982)S 16 x
(and)S 17 x(1987.)S 25 x(Other)S 16 x(seminal)S 16 x(papers)S 16 x
(on)S 16 x(the)S 16 x(content,)S 17 x(philosophy,)S 17 x(and)S 16 x
(implementation)S 16 x(of)S 49 y 327 X(scienti\014c)S 17 x
(libraries)S 16 x(in)S 16 x(Ada)S 17 x(were)S 16 x(collected)S 17 x
(together)S 17 x(in)S 17 x([10])S 17 x(in)S 16 x(1986.)S 60 y 410 X
(People)S 22 x(and)S 23 x(papers)S 22 x(came)S 22 x(together)S 22 x
(beginning)S 22 x(in)S 22 x(about)S 23 x(that)S 22 x(same)S 22 x
(year)S 23 x(to)S 23 x(form)S 23 x(committees)S 22 x(with)S 23 x
(working)S 49 y 327 X(documents.)S 42 x(The)S 21 x(standardization)S
22 x(ef)S -1 x(fort)S 22 x(has)S 22 x(been)S 22 x(supported)S 22 x
(and)S 22 x(encouraged)S 22 x(in)S 22 x(the)S 22 x(United)S 22 x
(States)S 21 x(by)S 21 x(the)S 22 x(Ada)S 50 y 327 X(Joint)S 18 x
(Program)S 18 x(Of)S -1 x(\014ce)S 18 x(of)S 18 x(the)S 18 x(U.)S 
19 x(S.)S 18 x(Department)S 18 x(of)S 18 x(Defense,)S 20 x(and)S 
18 x(in)S 18 x(Europe)S 18 x(by)S 18 x(the)S 18 x(Commission)S 18 x
(of)S 18 x(the)S 18 x(European)S 50 y 327 X(Communities.)S 23 x(The)S
16 x(ACM)S 15 x(SIGAda)S 16 x(Numerics)S 15 x(W)S -3 x(orking)S 16 x
(Group)S 15 x(and)S 15 x(the)S 15 x(Ada-Europe)S 15 x(Numerics)S 
15 x(W)S -3 x(orking)S 15 x(Group)S 16 x(have)S 50 y 327 X(worked)S
13 x(together)S 13 x(closely)S 13 x(since)S 13 x(then.)S 18 x
(Interim)S 12 x(reports)S 13 x(on)S 12 x(the)S 12 x(work)S 12 x(of)S
12 x(the)S 13 x(former)S 13 x(committee)S 13 x(were)S 13 x
(presented)S 13 x(in)S 12 x(1987)S 13 x(at)S 50 y 327 X(the)S 14 x
(International)S 14 x(Conference)S 14 x(on)S 14 x(the)S 14 x(Ada)S
14 x(Programming)S 14 x(Language)S 14 x([22],)S 14 x(in)S 14 x(1988)S
15 x(at)S 14 x(the)S 15 x(Sandia)S 14 x(W)S -3 x(orkshop)S 15 x(on)S
14 x(Ada)S 14 x(in)S 49 y 327 X(Real-T)S -1 x(ime)S 13 x(and)S 13 x
(Scienti)S
(\014c)S 13 x(Environments)S 13 x([7,)S 14 x(26],)S 14 x(and)S 13 x
(more)S 13 x(recently)S 13 x(in)S 13 x(several)S 13 x(tutorials)S 
13 x(and)S 13 x(colloquia.)S 19 x(V)S -5 x(arious)S 14 x(drafts)S 
50 y 327 X(of)S 12 x(the)S 12 x(working)S 12 x(papers)S 13 x(that)S
12 x(eventually)S 13 x(resulted)S 13 x(in)S 12 x(the)S 13 x(present)S
12 x(proposal)S 12 x(were)S 12 x(circulated,)S 12 x(and)S 13 x(the)S
13 x(response)S 12 x(to)S 12 x(them)S 13 x(has)S 50 y 327 X(been)S
17 x(enthusiastic.)S 26 x(This)S 16 x(work)S 17 x(was)S 16 x
(adopted)S 16 x(by)S 16 x(the)S 16 x(WG9)S 16 x(Numerics)S 16 x
(Rapporteur)S 16 x(Group)S 16 x([15])S 17 x(in)S 16 x(March)S 16 x
(of)S 17 x(1989)S 16 x(and)S 50 y 327 X(presented)S 15 x(to)S 14 x
(WG9)S 15 x(as)S 15 x(a)S 15 x(proposed)S 15 x(standard.)S 20 x(WG9)S
14 x(approved)S 14 x(the)S 15 x(proposal)S 14 x(in)S 15 x(June,)S 
15 x(1989,)S 15 x(subject)S 14 x(to)S 14 x(minor)S 15 x(revisions.)S
50 y 327 X(The)S 14 x(revised)S 15 x(proposal)S 15 x([16])S 14 x
(was)S 15 x(initially)S 15 x(processed)S 15 x(by)S 15 x(SC22)S 15 x
(in)S 15 x(early)S 15 x(1990,)S 15 x(leading)S 15 x(to)S 15 x(a)S 
14 x(few)S 14 x(editorial)S 14 x(changes.)S 21 x(The)S 49 y 327 X
(SIGAda)S 14 x(Numerics)S 14 x(W)S -3 x(orking)S 15 x(Group)S 14 x
(took)S 14 x(advantage)S 15 x(of)S 15 x(that)S 14 x(opportunity)S 
14 x(for)S 14 x(change)S 14 x(to)S 15 x(incorporate)S 14 x(a)S 15 x
(minor)S 14 x(technical)S 50 y 327 X(improvement,)S 11 x(which)S 
11 x(permits)S 11 x(implementations)S 11 x(having)S 11 x(the)S 11 x
(capability)S 11 x(of)S 12 x(exploiting)S 11 x(signed)S 11 x(zeros)S
11 x(\(a)S 11 x(feature)S 11 x(of)S 11 x(the)S 11 x(IEEE)S 50 y 
327 X(standards)S 15 x(for)S 15 x(\015oating-point)S 16 x
(arithmetic)S 16 x([12,)S 16 x(13]\))S 16 x(to)S 16 x(do)S 16 x(so)S
15 x(in)S 16 x(appropriate)S 16 x(ways.)S 24 x(At)S 16 x(the)S 16 x
(same)S 16 x(time,)S 16 x(the)S 15 x(Ada-Europe)S 50 y 327 X
(Numerics)S 16 x(W)S -3 x(orking)S 15 x(Group)S 16 x(advocated)S 
15 x(a)S 16 x(change)S 16 x(stemming)S 16 x(from)S 15 x(the)S 16 x
(dif)S -1 x(\014culty)S 16 x(that)S 15 x(some)S 16 x(implementors)S
16 x(encountered)S 50 y 327 X(while)S 14 x(trying)S 14 x(to)S 14 x
(produce)S 14 x(ef)S -1 x(\014cient)S 14 x(implementations)S 14 x
(that)S 14 x(are)S 14 x(also)S 14 x(portable.)S 19 x(The)S 14 x
(second)S 15 x(revision)S 15 x(of)S 14 x(the)S 14 x(proposal)S 14 x
([17],)S 50 y 327 X(endorsed)S 14 x(by)S 15 x(the)S 14 x(Numerics)S
14 x(Rapporteur)S 14 x(Group)S 14 x(in)S 14 x(December)S 14 x(1990,)S
14 x(is)S 14 x(the)S 14 x(document)S 14 x(that)S 14 x(this)S 14 x
(rationale)S 14 x(describes.)S 59 y 410 X(The)S 15 x(rest)S 16 x(of)S
16 x(this)S 16 x(paper)S 16 x(is)S 16 x(intended)S 16 x(to)S 16 x
(be)S 15 x(read)S 16 x(in)S 15 x(conjunction)S 15 x(with)S 16 x(the)S
16 x(proposal.)S 1460 Y 327 X F52(Why)S 19 x(does)S 19 x(the)S 19 x
(proposed)S 19 x(standard)S 19 x(de\014ne)S 18 x(a)S 19 x(generic)S
18 x(package?)S 1542 Y 410 X F6(The)S 12 x(package)S 13 x(construct)S
13 x(is)S 13 x(the)S 13 x(obvious)S 12 x(mechanism)S 13 x(for)S 12 x
(encapsulating)S 13 x(a)S 13 x(functionally)S 13 x(cohesive)S 13 x
(set)S 13 x(of)S 13 x(subprograms)S 49 y 327 X(and)S 12 x(their)S 
12 x(related)S 11 x(exceptions,)S 12 x(global)S 12 x(data,)S 13 x
(etc.)S 18 x(The)S 11 x(facilities)S 12 x(of)S
XP /F53 /cmtt10 300 41.5 41.5 128 [0 -10 22 29] PXLNF RP
XP /F53 84 22 1 0 20 25 25 24 0
<7FFFE0 FFFFE0 FFFFE0 E0E0E0 E0E0E0 E0E0E0 E0E0E0 00E000 00E000
 00E000 00E000 00E000 00E000 00E000 00E000 00E000 00E000 00E000
 00E000 00E000 00E000 00E000 07FC00 0FFE00 07FC00>
PXLC RP
1373 1591 XY F53(T)S
XP /F53 69 22 1 0 20 25 25 24 0
<7FFFC0 FFFFC0 7FFFC0 1C01C0 1C01C0 1C01C0 1C01C0 1C0000 1C0000
 1C1C00 1C1C00 1FFC00 1FFC00 1FFC00 1C1C00 1C1C00 1C0000 1C00E0
 1C00E0 1C00E0 1C00E0 1C00E0 7FFFE0 FFFFE0 7FFFE0>
PXLC RP
1394 1591 XY F53(E)S
XP /F53 88 22 1 0 20 25 25 24 0
<7F1F80 7F3F80 7F1F80 0E1E00 0E1C00 073C00 073800 03B800 03F000
 01F000 01E000 00E000 01E000 01F000 03F000 03B800 07B800 071C00
 071C00 0E0E00 0E0E00 1C0700 7F1FC0 FF1FE0 7F1FC0>
PXLC RP
1416 1591 XY F53(XT)S
XP /F53 95 22 2 -4 19 -1 3 24 0
<FFFF80 FFFF80 FFFF80>
PXLC RP
1460 1591 XY F53(_)S
XP /F53 73 22 3 0 18 25 25 16 0
<FFFE FFFE FFFE 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380
 0380 0380 0380 0380 0380 0380 0380 0380 0380 FFFE FFFE FFFE>
PXLC RP
1482 1591 XY F53(I)S
XP /F53 79 22 2 0 19 25 25 24 0
<1FFC00 3FFE00 7FFF00 780F00 F00780 E00380 E00380 E00380 E00380
 E00380 E00380 E00380 E00380 E00380 E00380 E00380 E00380 E00380
 E00380 F00780 F00780 780F00 7FFF00 3FFE00 1FFC00>
PXLC RP
1503 1591 XY F53(O)S 12 x F6(are)S 11 x(made)S 12 x(available)S 12 x
(through)S 12 x(that)S 12 x(mechanism,)S 50 y 327 X(for)S 12 x
(example.)S 17 x(Using)S 12 x(a)S 11 x(generic)S 11 x(package)S 11 x
(instead)S 11 x(of)S 12 x(an)S 11 x(ordinary)S 11 x(package)S 11 x
(is)S 11 x(appropriate,)S 11 x(furthermore,)S 12 x(when)S 11 x(the)S
11 x(facilities)S 50 y 327 X(to)S 17 x(be)S 17 x(encapsulated)S 17 x
(need)S 17 x(to)S 17 x(be)S 18 x(parameterized)S 17 x(by)S 18 x
(some)S 17 x(property)S 17 x(of)S 17 x(the)S 17 x(application)S 17 x
(in)S 17 x(which)S 17 x(they)S 17 x(are)S 17 x(to)S 17 x(be)S 18 x
(used.)S 50 y 327 X(In)S 15 x(view)S 15 x(of)S 15 x(the)S 15 x
(rules)S 15 x(for)S 16 x(parameter)S 15 x(associations,)S 16 x(the)S
16 x(inability)S 15 x(to)S 15 x(anticipate)S 16 x(which)S 16 x
(\015oating-point)S 15 x(type)S 16 x(\(or)S 15 x(types\))S 15 x(the)S
50 y 327 X(programmer)S 14 x(will)S 14 x(choose)S 14 x(for)S 14 x
(the)S 14 x(application)S 14 x(dictates)S 14 x(that)S 15 x(the)S 
14 x(package)S 14 x(containing)S 14 x(the)S 14 x(elementary)S 14 x
(functions)S 14 x(be)S 14 x(made)S 50 y 327 X(generic)S 17 x(on)S 
17 x(the)S 16 x(type)S 17 x(of)S 17 x(their)S 17 x(formal)S 17 x
(parameters)S 17 x(and)S 16 x(returned)S 16 x(value.)S 59 y 410 X
(For)S 11 x(that)S 12 x(reason)S 12 x(the)S 12 x(elementary)S 12 x
(functions)S 12 x(package)S 11 x(is)S 11 x(indeed)S 12 x(generic.)S
18 x(It)S 12 x(is)S 12 x(named)S
XP /F53 71 22 2 0 20 25 25 24 0
<03E300 07FF00 1FFF00 3E1F00 3C0F00 780F00 780700 700700 F00000
 E00000 E00000 E00000 E00000 E03F80 E07FC0 E03F80 F00700 700700
 780F00 780F00 3C0F00 3E1F00 1FFF00 07FF00 03E700>
PXLC RP
1754 1900 XY F53(GE)S
XP /F53 78 22 1 0 20 25 25 24 0
<7E1FC0 FF3FE0 7F1FC0 1D0700 1D8700 1D8700 1D8700 1DC700 1DC700
 1CC700 1CC700 1CE700 1CE700 1CE700 1C6700 1C6700 1C7700 1C7700
 1C3700 1C3700 1C3700 1C1700 7F1F00 FF9F00 7F0F00>
PXLC RP
1798 1900 XY F53(NE)S
XP /F53 82 22 1 0 21 25 25 24 0
<7FE000 FFF800 7FFC00 1C1E00 1C0F00 1C0700 1C0700 1C0700 1C0700
 1C0F00 1C1E00 1FFC00 1FF800 1FFC00 1C1C00 1C0E00 1C0E00 1C0E00
 1C0E00 1C0E20 1C0E70 1C0E70 7F07E0 FF87E0 7F03C0>
PXLC RP
1841 1900 XY F53(RI)S
XP /F53 67 22 2 0 19 25 25 24 0
<01F180 07FF80 0FFF80 1F0F80 3C0780 780780 780380 700380 F00000
 E00000 E00000 E00000 E00000 E00000 E00000 E00000 F00000 700380
 780380 780380 3C0780 1F0F00 0FFE00 07FC00 01F000>
PXLC RP
1885 1900 XY F53(C_E)S
XP /F53 76 22 1 0 20 25 25 24 0
<FFC000 FFC000 FFC000 1C0000 1C0000 1C0000 1C0000 1C0000 1C0000
 1C0000 1C0000 1C0000 1C0000 1C0000 1C0000 1C0000 1C0000 1C0040
 1C00E0 1C00E0 1C00E0 1C00E0 FFFFE0 FFFFE0 FFFFE0>
PXLC RP
1950 1900 XY F53(LE)S
XP /F53 77 22 1 0 20 25 25 24 0
<FC07E0 FE0FE0 FE0FE0 3A0B80 3B1B80 3B1B80 3B1B80 3B1B80 3B1B80
 3BBB80 39B380 39B380 39B380 39B380 39F380 38E380 38E380 380380
 380380 380380 380380 380380 FE0FE0 FE0FE0 FE0FE0>
PXLC RP
1994 1900 XY F53(MENT)S
XP /F53 65 22 1 0 20 25 25 24 0
<00E000 01F000 01F000 01B000 01B000 03B800 03B800 03B800 031800
 071C00 071C00 071C00 071C00 071C00 0E0E00 0E0E00 0FFE00 0FFE00
 1FFF00 1C0700 1C0700 1C0700 7F1FC0 FF1FE0 7F1FC0>
PXLC RP
2081 1900 XY F53(AR)S
XP /F53 89 22 1 0 20 25 25 24 0
<FE0FE0 FF1FE0 FE0FE0 1C0700 1C0700 0E0E00 0E0E00 071C00 071C00
 071C00 03B800 03B800 01F000 01F000 00E000 00E000 00E000 00E000
 00E000 00E000 00E000 00E000 03F800 07FC00 03F800>
PXLC RP
2124 1900 XY F53(Y_)S
XP /F53 70 22 1 0 20 25 25 24 0
<FFFFE0 FFFFE0 FFFFE0 1C00E0 1C00E0 1C00E0 1C00E0 1C0000 1C0000
 1C1C00 1C1C00 1FFC00 1FFC00 1FFC00 1C1C00 1C1C00 1C0000 1C0000
 1C0000 1C0000 1C0000 1C0000 FF8000 FFC000 FF8000>
PXLC RP
2168 1900 XY F53(F)S
XP /F53 85 22 0 0 21 25 25 24 0
<7F07F0 FF8FF8 7F07F0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0
 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0
 1C01C0 0E0380 0E0380 070700 07FF00 03FE00 00F800>
PXLC RP
2190 1900 XY F53(UNC)S
XP /F53 45 22 2 11 19 14 3 24 0
<FFFF80 FFFF80 FFFF80>
PXLC RP
2255 1900 XY F53(-)S 50 y 327 X(TION)S
XP /F53 83 22 2 0 19 25 25 24 0
<07E300 1FFF00 7FFF00 781F00 F00F00 E00700 E00700 E00000 F00000
 780000 7F8000 1FF000 07FC00 00FE00 000F00 000780 000380 000380
 E00380 E00380 F00780 F80F00 FFFE00 FFFC00 C7F000>
PXLC RP
414 1950 XY F53(S)S F6(,)S 11 x(and)S 10 x(it)S 10 x(has)S 10 x(one)S
10 x(generic)S 11 x(formal)S 11 x(parameter,)S 11 x(which)S 10 x(is)S
10 x(a)S 11 x(generic)S 10 x(formal)S 10 x(type)S 10 x(named)S 10 x 
F53(FLOAT_TY)S
XP /F53 80 22 1 0 19 25 25 24 0
<7FF800 FFFE00 7FFF00 1C0F80 1C0380 1C03C0 1C01C0 1C01C0 1C01C0
 1C03C0 1C0380 1C0F80 1FFF00 1FFE00 1FF800 1C0000 1C0000 1C0000
 1C0000 1C0000 1C0000 1C0000 7F0000 FF8000 7F0000>
PXLC RP
1946 1950 XY F53(PE)S F6(.)S 11 x(An)S 11 x(instantiation)S 49 y 
327 X(of)S 16 x(the)S 16 x(generic)S 16 x(package)S 16 x(with)S 17 x
(a)S 16 x(generic)S 17 x(actual)S 16 x(type)S 17 x(\(which)S 16 x
(can)S 16 x(be)S 17 x(any)S 17 x(\015oating-point)S 16 x(subtype\))S
16 x(produces)S 16 x(a)S 16 x(package)S 50 y 327 X(containing)S 15 x
(elementary)S 15 x(functions)S 15 x(that)S 15 x(can)S 14 x(be)S 15 x
(invoked)S 14 x(with)S 15 x(an)S 15 x(ar)S -1 x(gument)S 14 x(or)S
15 x(ar)S -1 x(guments)S 14 x(of)S 15 x(that)S 15 x(subtype.)S 2202 Y 
327 X F52(Can)S 19 x(the)S 19 x(generic)S 19 x(actual)S 19 x(type)S
19 x(contain)S 19 x(a)S 19 x(range)S 19 x(constraint?)S 2284 Y 410 X 
F6(Until)S 21 x(November)S 21 x(1990,)S 23 x(the)S 21 x(answer)S 
20 x(to)S 21 x(this)S 21 x(question)S 21 x(was)S 20 x(yes,)S 22 x
(but)S 21 x(at)S 21 x(that)S 21 x(time)S 21 x(the)S 20 x(proposed)S
20 x(standard)S 20 x(was)S 50 y 327 X(changed)S 15 x(to)S 15 x(make)S
15 x(the)S 14 x(answer)S 15 x(dependent)S 15 x(on)S 15 x(the)S 15 x
(implementation.)S 21 x(That)S 14 x(is,)S 15 x(implementations)S 
15 x(are)S 15 x(allowed)S 15 x(to)S 15 x(impose)S 15 x(a)S 50 y 
327 X(restriction)S 11 x(that)S 11 x(the)S 11 x(generic)S 11 x
(actual)S 11 x(type)S 11 x(must)S 11 x(not)S 11 x(contain)S 11 x(a)S
11 x(range)S 11 x(constraint)S 11 x(that)S 11 x(reduces)S 11 x(the)S
11 x(range)S 11 x(of)S 11 x(allowable)S 11 x(values;)S 50 y 327 X
(alternatively,)S 12 x(they)S 12 x(may)S 12 x(permit)S 12 x(such)S
12 x(range)S 12 x(constraints)S 12 x(\(but)S 12 x(then)S 12 x(they)S
12 x(have)S 12 x(an)S 12 x(obligation)S 13 x(to)S 12 x(prevent)S 
12 x(a)S 12 x(range)S 12 x(constraint)S 49 y 327 X(in)S 19 x(the)S
19 x(generic)S 19 x(actual)S 19 x(type)S 19 x(from)S 19 x
(interfering)S 19 x(with)S 19 x(their)S 19 x(ability)S 19 x(to)S 
19 x(deliver)S 19 x(a)S 19 x(value,)S 20 x(which)S 19 x(constrains)S
19 x(the)S 19 x(available)S 50 y 327 X(implementation)S 14 x
(strategies)S 14 x(somewhat\).)S 19 x(So)S 14 x(that)S 13 x(users)S
14 x(will)S 14 x(know)S 14 x(what)S 14 x(to)S 14 x(expect)S 14 x
(from)S 14 x(any)S 14 x(particular)S 14 x(implementation,)S 50 y 
327 X(such)S 17 x(a)S 17 x(restriction)S 18 x(must)S 17 x(be)S 17 x
(documented)S 18 x(if)S 17 x(it)S 18 x(is)S 18 x(imposed.)S 59 y 
410 X(This)S 14 x(issue)S 14 x(was)S 14 x(debated)S 14 x(at)S 14 x
(the)S 14 x(time)S 14 x(that)S 14 x(the)S 14 x(earliest)S 14 x
(draft)S 14 x(of)S 14 x(the)S 14 x(proposed)S 14 x(standard)S 14 x
(was)S 14 x(being)S 14 x(formulated.)S 19 x(The)S 50 y 327 X
(potential)S 11 x(dif)S -1 x(\014culty)S 10 x(\(for)S 11 x
(implementors\))S 10 x(of)S 10 x(allowing)S 10 x(a)S 10 x(range)S 
11 x(constraint)S 10 x(in)S 10 x(the)S 10 x(generic)S 10 x(actual)S
10 x(type)S 10 x(was)S 10 x(recognized)S 11 x(imme-)S 50 y 327 X
(diately.)S 18 x(Since)S 10 x(the)S 11 x(role)S 11 x(of)S 11 x(the)S
10 x(generic)S 11 x(formal)S 10 x(type)S 10 x(is)S 10 x(essentially)S
10 x(to)S 10 x(parameterize)S 11 x(the)S 10 x(\252working)S 11 x
(precision)S
(\272)S 11 x(in)S 11 x(the)S 11 x(generic)S 50 y 327 X(package,)S 
14 x(it)S 13 x(is)S 13 x(tempting)S 14 x(for)S 13 x(implementors)S
14 x(to)S 13 x(use)S 14 x(the)S 14 x(generic)S 13 x(formal)S 13 x
(type,)S 13 x F53(FLOAT_TYPE)S F6(,)S 11 x(as)S 13 x(the)S 13 x
(type)S 13 x(mark)S 13 x(in)S 14 x(the)S 14 x(dec-)S 49 y 327 X
(larations)S 13 x(of)S 13 x(temporary)S 13 x(variables)S 14 x(and)S
13 x(perhaps)S 13 x(even)S 13 x(of)S 13 x(constants)S 13 x(in)S 14 x
(the)S 13 x(body)S 13 x(of)S 13 x F53(GENERIC_ELEMENTARY_FUNCTIONS)S
F6(.)S 50 y 327 X(The)S 19 x(obvious)S 19 x(problem)S 19 x(with)S 
19 x(this)S 19 x(straightforward)S 19 x(implementation)S 19 x
(strategy)S 20 x(is)S 19 x(that)S 19 x F53(FLOAT_TYPE)S 17 x F6
(inherits)S 19 x(any)S 19 x(range)S 50 y 327 X(constraint)S 18 x
(that)S 19 x(the)S 18 x(corresponding)S 19 x(generic)S 18 x(actual)S
19 x(type)S 19 x(happens)S 18 x(to)S 18 x(contain,)S 20 x(and)S 18 x
(this)S 19 x(could)S 18 x(well)S 18 x(invalidate)S 18 x(assign-)S 
50 y 327 X(ments)S 16 x(to)S 15 x(temporary)S 15 x(variables)S 16 x
(and)S 15 x(initialization)S 15 x(of)S 15 x(constants)S 15 x(in)S 
15 x(the)S 15 x(body\320even)S 15 x(when)S 16 x(the)S 16 x(ar)S -1 x
(gument)S 15 x(in)S 15 x(a)S 15 x(particular)S 3128 Y 1292 X(2)S
%%PageTrailer
/paper-automatic true SPS 1 PP EP
%%PageBoundingBox: 78 39 546 718

%%PageBoundingBox: (atend)
%%BeginPageSetup
1000 BP 3300 2550 PM /paper-automatic false SPS 327 0 XY
%%EndPageSetup
327 342 XY F6(function)S 16 x(invocation,)S 17 x(as)S 16 x(well)S 
16 x(as)S 16 x(the)S 17 x(\014nal)S 16 x(result)S 16 x(\(if)S 16 x
(it)S 16 x(could)S 16 x(only)S 17 x(be)S 16 x(computed\),)S 16 x
(satis)S
(\014es)S 16 x(the)S 16 x(range)S 16 x(constraint.)S 25 x(The)S 49 y 
327 X(user)S 19 x(must)S 19 x(accept)S 18 x(the)S 18 x
(responsibility)S 19 x(of)S 19 x(being)S 18 x(able)S 19 x(to)S 19 x
(pass)S 18 x(values)S 18 x(into)S 18 x(and)S 18 x(out)S 19 x(of)S 
19 x(an)S 18 x(elementary)S 18 x(function)S 18 x(whose)S 50 y 327 X
(ar)S -1 x(gument)S 18 x(and)S 17 x(result)S 17 x(type)S 17 x(are)S
17 x(range)S 17 x(constrained,)S 18 x(of)S 17 x(course,)S 17 x
(since)S 17 x(constraint)S 17 x(checks)S 17 x(are)S 17 x(required)S
17 x(by)S 17 x(Ada)S 17 x(in)S 17 x(those)S 50 y 327 X(contexts)S 
16 x(and)S 16 x(nothing)S 16 x(the)S 15 x(implementor)S 15 x(does)S
16 x(in)S 16 x(the)S 15 x(body)S 16 x(can)S 15 x(avoid)S 15 x(them.)S
23 x(So,)S 16 x(for)S 16 x(example,)S 16 x(if)S 16 x(the)S 15 x
(user)S 15 x(instantiates)S 50 y 327 X F53
(GENERIC_ELEMENTARY_FUNCTIONS)S 11 x F6(with)S 17 x(a)S 16 x(type)S
16 x(declared)S 16 x(as)S 16 x(\252)S
XP /F53 100 22 1 0 21 25 25 24 0
<003F00 007F00 003F00 000700 000700 000700 000700 03C700 0FF700
 3FFF00 3C1F00 780F00 F00700 F00700 E00700 E00700 E00700 E00700
 F00700 F00F00 781F00 7C3F00 3FFFE0 1FF7F0 07C7E0>
PXLC RP
1393 541 XY F53(d)S
XP /F53 105 22 3 0 19 26 26 16 0
<0180 03C0 03C0 0180 0000 0000 0000 0000 7FC0 7FC0 7FC0 01C0 01C0
 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 7FFF FFFF 7FFF>
PXLC RP
1414 541 XY F53(i)S
XP /F53 103 22 1 -10 20 18 28 24 0
<03E3C0 0FFFE0 1FFFE0 1E3CC0 3C1E00 380E00 380E00 380E00 3C1E00
 1E3C00 1FFC00 1FF800 3BE000 380000 380000 1FFC00 1FFF00 3FFFC0
 7803C0 F001E0 E000E0 E000E0 E000E0 F001E0 7C07C0 3FFF80 0FFE00
 03F800>
PXLC RP
1436 541 XY F53(gi)S
XP /F53 116 22 1 0 18 23 23 24 0
<030000 070000 070000 070000 070000 7FFF00 FFFF00 FFFF00 070000
 070000 070000 070000 070000 070000 070000 070100 070380 070380
 070780 078780 03FF00 03FE00 00F800>
PXLC RP
1480 541 XY F53(t)S
XP /F53 115 22 3 0 18 18 18 16 0
<0FEC 3FFC 7FFC F03C E01C E01C F000 7F80 1FF0 07FC 003E E00E E00E
 F00E F81E FFFC FFF8 C7E0>
PXLC RP
1502 541 XY F53(s)S
XP /F53 54 22 2 0 19 25 25 24 0
<00F800 03FE00 0FFF00 1F0F00 3E0F00 3C0F00 780600 700000 F00000
 F3F800 EFFE00 FFFE00 F80F00 F00780 F00780 E00380 F00380 F00380
 700380 780780 780F00 3C1F00 1FFE00 0FF800 03E000>
PXLC RP
1545 541 XY F53(6)S
XP /F53 114 22 1 0 20 18 18 24 0
<FF0FC0 FF3FE0 FF7FE0 07F040 07E000 07C000 078000 078000 070000
 070000 070000 070000 070000 070000 070000 FFFC00 FFFC00 FFFC00>
PXLC RP
1589 541 XY F53(r)S
XP /F53 97 22 2 0 21 18 18 24 0
<1FE000 7FF800 7FFC00 783C00 301E00 000E00 000E00 03FE00 1FFE00
 7E0E00 F00E00 E00E00 E00E00 F01E00 F83E00 7FFFE0 3FE7E0 0F83E0>
PXLC RP
1610 541 XY F53(a)S
XP /F53 110 22 0 0 21 18 18 24 0
<7E3C00 FEFF00 7FFF80 0F8780 0F0380 0F0380 0E0380 0E0380 0E0380
 0E0380 0E0380 0E0380 0E0380 0E0380 0E0380 7FC7F0 FFE7F8 7FC7F0>
PXLC RP
1632 541 XY F53(ng)S
XP /F53 101 22 3 0 19 18 18 16 0
<03E0 0FF8 1FFC 3C1E 780E 7007 E007 FFFF FFFF FFFF E000 E000 7007
 7807 3C0F 1FFE 0FFC 03F0>
PXLC RP
1676 541 XY F53(e)S
XP /F53 51 22 2 0 19 25 25 24 0
<07E000 1FFC00 7FFE00 781F00 780F00 780700 000700 000F00 000F00
 003E00 07FC00 07F800 07FC00 001E00 000700 000780 000380 000380
 F00380 F00780 F00700 F81F00 7FFE00 3FFC00 07E000>
PXLC RP
1719 541 XY F53(3)S
XP /F53 46 22 8 0 13 5 5 8 0
<70 F8 F8 F8 70>
PXLC RP
1741 541 XY F53(.)S
XP /F53 48 22 2 0 19 25 25 24 0
<03E000 0FF800 1FFC00 1E3C00 380E00 780F00 700700 700700 E00380
 E00380 E00380 E00380 E00380 E00380 E00380 E00380 F00780 700700
 700700 780F00 3C1E00 1E3C00 1FFC00 0FF800 03E000>
PXLC RP
1763 541 XY F53(0)S 22 x(..)S
XP /F53 50 22 2 0 19 25 25 24 0
<07E000 1FF800 7FFE00 783F00 F00F00 F00780 F00380 F00380 000380
 000380 000780 000700 000F00 001E00 003C00 007800 00F000 03E000
 078000 0F0000 1E0380 3C0380 7FFF80 FFFF80 7FFF80>
PXLC RP
1872 541 XY F53(20.0)S F6(,\272)S 15 x(then)S 16 x(there)S 16 x(is)S
16 x(no)S 50 y 327 X(hope)S 15 x(of)S 15 x(asking)S 15 x(for)S 16 x
(the)S 15 x(square)S 16 x(root)S 15 x(of)S 15 x F53(2)S
XP /F53 53 22 2 0 19 25 25 24 0
<3FFE00 3FFE00 3FFE00 380000 380000 380000 380000 380000 380000
 380000 3BF000 3FFC00 3FFE00 3C0F00 300700 000780 000380 600380
 F00380 F00780 F00F00 F81F00 7FFE00 1FF800 07E000>
PXLC RP
1005 591 XY F53(5.0)S 15 x F6(\(because)S 16 x(the)S 16 x(ar)S -1 x
(gument)S 15 x(will)S 15 x(be)S 15 x(outside)S 16 x(the)S 16 x
(range)S 15 x(of)S 15 x F53(S)S
XP /F53 81 22 2 -6 19 25 31 24 0
<1FFC00 3FFE00 7FFF00 780F00 F00780 E00380 E00380 E00380 E00380
 E00380 E00380 E00380 E00380 E00380 E00380 E00380 E00380 E00380
 E0E380 E1E380 F0F780 787F00 7FFF00 3FFE00 1FFC00 001C00 001E00
 000E00 000F00 000700 000700>
PXLC RP
2000 591 XY F53(QRT)S F6('s)S 15 x(parameter)S 49 y 327 X(type\))S
18 x(or)S 18 x(of)S
XP /F53 52 22 1 0 20 25 25 24 0
<007C00 00FC00 00DC00 01DC00 039C00 039C00 071C00 0F1C00 0E1C00
 1E1C00 3C1C00 381C00 781C00 F01C00 FFFFE0 FFFFE0 FFFFE0 001C00
 001C00 001C00 001C00 001C00 01FFC0 01FFC0 01FFC0>
PXLC RP
536 640 XY F53(4.0)S 17 x F6(\(because)S 18 x(the)S 18 x(result)S 
19 x(will)S 18 x(be)S 18 x(outside)S 18 x(the)S 18 x(range)S 19 x
(of)S 18 x F53(SQRT)S F6('s)S 17 x(result)S 18 x(type\),)S 20 x(and)S
19 x(any)S 19 x(attempt)S 18 x(to)S 19 x(do)S 18 x(so)S 50 y 327 X
(must)S 16 x(necessarily)S 16 x(raise)S 16 x F53(CONSTRAINT_ERROR)S
F6(.)S 14 x(On)S 17 x(the)S 17 x(other)S 17 x(hand,)S 17 x(it)S 17 x
(was)S 17 x(universally)S 17 x(judged)S 16 x(to)S 17 x(be)S 16 x
(unacceptable)S 17 x(for)S 50 y 327 X(an)S 17 x(implementation)S 
17 x(to)S 17 x(raise)S 17 x F53(CONSTRAINT_ERROR)S 13 x F6(when)S 
17 x(the)S 17 x(square)S 17 x(root)S 16 x(of,)S 17 x(say,)S
XP /F53 49 22 4 0 18 25 25 16 0
<0180 0380 0380 0780 0F80 7F80 FF80 7380 0380 0380 0380 0380 0380
 0380 0380 0380 0380 0380 0380 0380 0380 0380 7FF8 7FFC 7FF8>
PXLC RP
1696 740 XY F53(16.0)S 16 x F6(is)S 17 x(requested)S 16 x(\(with)S
16 x(the)S 17 x(same)S 50 y 327 X(range-constrained)S 13 x(generic)S
13 x(actual)S 13 x(type\),)S 13 x(since)S 12 x(both)S 13 x(the)S 
12 x(ar)S -1 x(gument)S 14 x(and)S 13 x(the)S 13 x(result)S 13 x
(are)S 12 x(within)S 13 x(the)S 12 x(range)S 12 x(of)S 13 x(the)S 
13 x(parameter)S 50 y 327 X(and)S 16 x(result)S 15 x(types.)S 24 x
(And)S 16 x(yet,)S 16 x(there)S 16 x(is)S 16 x(a)S 16 x(good)S 16 x
(chance)S 15 x(that)S 15 x(a)S 15 x(straightforward)S 16 x
(implementation)S
(\320one)S 15 x(that)S 15 x(uses)S 15 x(variables)S 49 y 327 X(or)S
16 x(constants)S 16 x(of)S 16 x(type)S 16 x F53(FLOAT_TYPE)S F6
(\320)S F7(will)S 14 x F6(raise)S 16 x F53(CONSTRAINT_ERROR)S 13 x 
F6(in)S 16 x(this)S 16 x(case)S 16 x(and)S 16 x(in)S 15 x(other)S 
16 x(seemingly)S 16 x(innocuous)S 50 y 327 X(cases.)S
XP /F54 /CM-Times-Roman 29.058 11 DF RP
425 924 XY F54(1)S 15 y 21 x F6(Thus,)S 14 x(in)S 14 x(agreeing)S 
15 x(to)S 15 x(allow)S 14 x(range)S 14 x(constraints)S 15 x(in)S 
14 x(the)S 15 x(generic)S 15 x(actual)S 14 x(type,)S 15 x(the)S 14 x
(committee)S 15 x(made)S 15 x(it)S 14 x(clear)S 14 x(in)S 14 x(the)S
50 y 327 X(earliest)S 14 x(drafts)S 14 x(that)S 14 x(such)S 14 x
(\252gratuitous\272)S 14 x(exceptions)S 14 x(must)S 14 x(be)S 14 x
(avoided)S 14 x(by)S 14 x(implementations.)S 18 x(It)S 14 x(did)S 
13 x(so)S 14 x(only)S 14 x(after)S 14 x(conclud-)S 50 y 327 X(ing)S
15 x(that)S 15 x(suitable)S 15 x(implementation)S 15 x(techniques)S
15 x(\(that)S 16 x(avoided)S 15 x(the)S 15 x(use)S 15 x(of)S 16 x 
F53(FLOAT_TYPE)S 13 x F6(as)S 15 x(a)S 16 x(type)S 15 x(mark)S 15 x
(in)S 16 x(declarations\))S 50 y 327 X(were)S 19 x(available.)S 58 y 
410 X(The)S 13 x(committee)S 14 x(strongly)S 14 x(favored)S 14 x
(allowing)S 14 x(range)S 14 x(constraints,)S 14 x(at)S 14 x
(\014rst.)S 18 x(It)S 14 x(felt)S 14 x(that)S 14 x(users)S 14 x
(would)S 14 x(not)S 14 x(accept)S 14 x(having)S 50 y 327 X(their)S
16 x(freedom)S 16 x(to)S 16 x(instantiate)S 16 x F53
(GENERIC_ELEMENTARY_FUNCTIONS)S 10 x F6(with)S 16 x F7(any)S 16 x 
F6(\015oating-point)S 15 x(type)S 15 x(taken)S 16 x(away.)S 24 x
(Indeed,)S 50 y 327 X(earlier)S 14 x(versions)S 15 x(of)S 14 x(this)S
14 x(rationale)S 15 x(declaimed)S 14 x(that)S 14 x(the)S 14 x
(interests)S 14 x(of)S 14 x(users)S 14 x(outweighed)S 14 x(those)S
14 x(of)S 14 x(implementors)S 14 x(in)S 14 x(settling)S 50 y 327 X
(the)S 19 x(range)S 19 x(constraints)S 19 x(issue.)S 58 y 410 X(The)S
14 x(problems)S 14 x(facing)S 14 x(implementors)S 14 x(who)S 14 x
(wish)S 14 x(to)S 14 x(allow)S 14 x(range)S 14 x(constraints)S 14 x
(would)S 14 x(vanish)S 14 x(if)S 14 x(there)S 14 x(were)S 14 x(a)S
14 x(way,)S 14 x(in)S 50 y 327 X(a)S 15 x(generic)S 14 x(body,)S 
14 x(of)S 14 x(declaring)S 14 x(a)S 14 x(variable)S 14 x(with)S 14 x
(the)S 14 x(precision)S 14 x(of)S 14 x(a)S 15 x(\015oating-point)S
14 x(generic)S 14 x(formal)S 14 x(parameter)S 14 x(but)S 14 x
(without)S 50 y 327 X(its)S 17 x(range)S 17 x(constraints,)S 18 x
(if)S 17 x(any.)S 27 x(Declaring)S 17 x(a)S 17 x(variable)S 17 x(to)S
17 x(be)S 17 x(of)S 17 x(type)S 17 x(\252)S F53(digits)S 26 x
(FLOAT_TYPE)S
XP /F53 13 22 8 14 13 26 12 8 0
<20 70 F8 70 70 70 70 70 70 70 70 70>
PXLC RP
1846 1455 XY F53(\015)S
XP /F53 66 22 1 0 19 25 25 24 0
<7FF800 FFFE00 7FFF00 1C0F00 1C0780 1C0380 1C0380 1C0380 1C0780
 1C0700 1FFF00 1FFE00 1FFE00 1C1F00 1C0380 1C03C0 1C01C0 1C01C0
 1C01C0 1C01C0 1C03C0 1C0780 7FFF80 FFFF00 7FFC00>
PXLC RP
1867 1455 XY F53(BASE\015)S
XP /F53 68 22 0 0 19 25 25 24 0
<7FF800 FFFE00 7FFF00 1C0F00 1C0780 1C03C0 1C01C0 1C01C0 1C01E0
 1C00E0 1C00E0 1C00E0 1C00E0 1C00E0 1C00E0 1C00E0 1C00E0 1C01C0
 1C01C0 1C03C0 1C0780 1C0F80 7FFF00 FFFE00 7FF800>
PXLC RP
1976 1455 XY F53(DIGITS)S F6(\272)S 15 x(will)S 17 x(not)S 50 y 
327 X(suf)S -1 x(\014ce,)S 13 x(because)S 13 x(the)S 12 x
(expression)S 12 x(in)S 13 x(a)S 13 x(\015oating)S 12 x(accuracy)S
12 x(de\014nition)S 13 x(is)S 13 x(required)S 13 x(to)S 13 x(be)S 
12 x(static,)S 13 x(and)S 12 x(an)S 12 x(attribute)S 13 x(of)S 13 x
(a)S 13 x(generic)S 50 y 327 X(formal)S 16 x(parameter)S 16 x(is)S
16 x(not)S 16 x(static.)S 25 x(Declaring)S 16 x(a)S 16 x(variable)S
16 x(to)S 17 x(be)S 16 x(of)S 17 x(type)S 16 x(\252)S F53
(FLOAT_TYPE)S
(\015BASE)S F6(\272)S 12 x(comes)S 16 x(to)S 17 x(mind)S 16 x(also,)S
17 x(but)S 49 y 327 X(this)S 15 x(is)S 15 x(invalid)S 15 x(because)S
15 x(the)S 15 x F53(BASE)S 15 x F6(attribute)S 15 x(can)S 15 x(be)S
15 x(used)S 15 x(only)S 15 x(in)S 15 x(a)S 15 x(pre\014x)S 16 x(for)S
15 x(other)S 15 x(attributes.)S 59 y 410 X(What)S 14 x
(implementation)S 14 x(strategies)S 15 x F7(ar)S -2 x(e)S 16 x F6
(available)S 14 x(to)S 15 x(implementors)S 14 x(who)S 14 x(wish)S 
14 x(to)S 15 x(allow)S 14 x(range)S 14 x(constraints?)S 58 y 410 X
(One)S 12 x(method)S 12 x(is)S 11 x(to)S 12 x(represent)S 12 x(each)S
11 x(elementary)S 11 x(function,)S 12 x(at)S 12 x(the)S 12 x
(highest)S 11 x(level,)S 12 x(by)S 12 x(a)S 12 x(\252shell\272)S 
12 x(that)S 11 x(merely)S 11 x(\252dispatches\272)S 50 y 327 X(to)S
20 x(a)S 19 x(lower-level)S 20 x(function)S 19 x(supporting)S 19 x
(the)S 19 x(required)S 19 x(precision.)S 35 x(The)S 20 x(proper)S 
19 x(lower-level)S 20 x(function)S 19 x(is)S 19 x(determined)S 19 x
(by)S 50 y 327 X(querying)S 15 x F53(FLOAT_TYPE\015BASE\015DIGITS)S
11 x F6(in)S 15 x(a)S 16 x(case-statement)S 16 x(whose)S 15 x
(choices)S 16 x(test)S 16 x(symbolically)S 15 x(for)S 15 x
(membership)S 15 x(in)S 15 x(the)S 50 y 327 X(range)S 17 x(of)S 17 x
(precisions)S 16 x(of)S 16 x(each)S 17 x(of)S 17 x(the)S 16 x
(available)S 16 x(prede\014ned)S 16 x(\015oating-point)S 16 x
(types.)S 27 x(Lower-level)S 16 x(versions)S 17 x(of)S 17 x(each)S
16 x(of)S 16 x(the)S 50 y 327 X(elementary)S 12 x(functions)S 12 x
(can)S 12 x(be)S 11 x(provided)S 11 x(for)S 12 x(each)S 11 x(prede)S
(\014ned)S 12 x(\015oating-point)S 11 x(type)S 11 x(by)S 12 x(one)S
11 x(instantiation)S 12 x(of)S 12 x(an)S 11 x(inner)S 12 x(generic)S
50 y 327 X(package)S 13 x(for)S 13 x(each)S 14 x(such)S 13 x(type.)S
19 x(Because)S 13 x(the)S 14 x(generic)S 13 x(actual)S 14 x(type)S
14 x(used)S 13 x(to)S 13 x(instantiate)S 13 x(this)S 14 x(inner)S 
14 x(generic)S 13 x(package)S 14 x(is)S 14 x(never)S 49 y 327 X
(range)S 15 x(constrained,)S 14 x(the)S 15 x(inner)S 15 x(generic)S
14 x(package)S 15 x(of)S 15 x(lower-level)S 15 x(functions)S 15 x
(can)S 15 x(use)S 15 x(its)S 15 x(generic)S 14 x(formal)S 15 x
(parameter)S 14 x(for)S 14 x(the)S 50 y 327 X(type)S 13 x(of)S 13 x
(its)S 13 x(working)S 13 x(variables)S 13 x(without)S 13 x(fear)S 
13 x(of)S 13 x(violating)S 12 x(range)S 12 x(constraints.)S 18 x(A)S
13 x(straightforward)S 12 x(and)S 13 x(often-used)S 13 x(strategy,)S
50 y 327 X(this)S 19 x(method)S 19 x(has)S 19 x(two)S 19 x
(drawbacks:)S 2196 Y 410 X(\267)S 68 x(If)S 17 x(the)S 17 x(method)S
17 x(is)S 17 x(to)S 17 x(be)S 17 x(portable,)S 18 x(the)S 17 x
(inner)S 17 x(generic)S 17 x(package)S 18 x(must)S 17 x(be)S 17 x
(designed)S 17 x(to)S 17 x(accommodate,)S 18 x(in)S 17 x(each)S 49 y 
493 X(elementary)S 17 x(function,)S 17 x(the)S 17 x(entire)S 17 x
(range)S 17 x(of)S 17 x(precisions)S 17 x(to)S 17 x(be)S 17 x
(supported.)S 27 x(The)S 16 x(multiple)S 16 x(instantiations)S 17 x
(of)S 17 x(this)S 50 y 493 X(inner)S 17 x(package)S 16 x(will)S 16 x
(then)S 16 x(lead,)S 17 x(with)S 16 x(some)S 16 x(Ada)S 17 x
(compilers,)S 17 x(to)S 17 x(multiple)S 16 x(copies)S 17 x(of)S 17 x
(the)S 16 x(code)S 17 x(applicable)S 17 x(to)S 17 x(a)S 50 y 493 X
(given)S 17 x(precision,)S 18 x(even)S 17 x(though)S 17 x(only)S 
16 x(one)S 17 x(copy)S 16 x(is)S 17 x(logically)S 17 x(required.)S
27 x(Thus,)S 17 x(for)S 17 x(example,)S 17 x(code)S 16 x(to)S 16 x
(perform)S 50 y 493 X(double-precision)S 15 x(computations)S 15 x
(will)S 15 x(be)S 14 x(present)S 15 x(in)S 15 x(the)S 15 x
(instantiation)S 15 x(for)S 15 x(a)S 15 x(double-precision)S 15 x
(prede)S
(\014ned)S 15 x(type)S 50 y 493 X(as)S 17 x(well)S 17 x(as)S 18 x
(in)S 18 x(the)S 18 x(instantiation)S 17 x(for)S 17 x(a)S 17 x
(single-precision)S 18 x(prede\014ned)S 17 x(type,)S 18 x(even)S 
17 x(though)S 17 x(the)S 17 x(latter)S 18 x(will)S 18 x(never)S 49 y 
493 X(be)S 15 x(called)S 15 x(upon)S 15 x(to)S 15 x(perform)S 15 x
(those)S 15 x(computations.)S 23 x(Currently)S 15 x(implemented)S 
15 x(optimizations)S 15 x(do)S 15 x(not,)S 15 x(in)S 15 x(general,)S
50 y 493 X(attack)S 17 x(this)S 17 x(version)S 17 x(of)S 17 x(the)S
17 x(dead-code)S 17 x(removal)S 17 x(problem.)S 50 y 410 X(\267)S 
68 x(The)S 15 x(method)S 15 x(suf)S -1 x(fers)S 15 x(from)S 15 x(a)S
16 x(lack)S 15 x(of)S 15 x(portability)S 16 x(related)S 16 x(to)S 
16 x(variations,)S 16 x(from)S 16 x(one)S 16 x(implementation)S 16 x
(of)S 16 x(Ada)S 16 x(to)S 50 y 493 X(the)S 15 x(next,)S 16 x(in)S
15 x(the)S 15 x(names)S 16 x(and)S 15 x(number)S 15 x(of)S 15 x(the)S
15 x(available)S 15 x(prede\014ned)S 16 x(\015oating-point)S 15 x
(types.)S 23 x(As)S 15 x(a)S 15 x(supplement)S 16 x(to)S 50 y 493 X
(this)S 18 x(strategy,)S 18 x(a)S 18 x(technique)S 18 x(of)S 18 x
(Chebat)S 17 x([4])S 18 x(can)S 18 x(be)S 18 x(used)S 18 x(to)S 18 x
(extend)S 17 x(portability)S 18 x(to)S 18 x(a)S 17 x(\014xed)S 18 x
(set)S 18 x(of)S 17 x F7(potentially)S 50 y 493 X F6(prede\014ned)S
16 x(type)S 15 x(names)S 15 x(chosen)S 16 x(by)S 16 x(the)S 15 x
(implementor,)S 16 x(even)S 16 x(if)S 16 x(some)S 16 x(names)S 16 x
(in)S 15 x(the)S 16 x(set)S 16 x(do)S 15 x(not)S 16 x(actually)S 
16 x(exist)S 49 y 493 X(as)S 13 x(prede\014ned)S 13 x(types)S 14 x
(of)S 14 x(the)S 13 x(Ada)S 14 x(implementation;)S 14 x(however,)S
14 x(Chebat's)S 13 x(technique)S 13 x(will)S 14 x(not)S 13 x(pick)S
14 x(up)S 14 x(prede\014ned)S 50 y 493 X(type)S 17 x(names)S 18 x
(outside)S 18 x(the)S 17 x(anticipated)S 18 x(set.)S 327 2923 XY 
600 2 R
XP /F57 /CM-Times-Roman 24.907 11 DF RP
398 2951 XY F57(1)S
XP /F55 /CM-Times-Roman 33.209 11 DF RP
410 2963 XY F55(One)S 11 x(standard)S 10 x(ar)S -1 x(gument)S 12 x
(reduction)S 10 x(strategy)S 10 x(is)S 10 x(to)S 10 x(transform)S 
10 x(the)S 11 x(ar)S -1 x(gument)S 10 x(to)S 10 x(a)S 10 x(value)S
10 x(in)S 11 x(the)S 10 x(range)S
XP /F58 /cmtt10 300 41.5 33.2 128 [0 -10 22 29] PXLF RP
XP /F58 48 21 2 0 19 25 25 24 0
<03E000 0FF800 1FFC00 1E3C00 380E00 780F00 700700 700700 E00380
 E00380 E00380 E00380 E00380 E00380 E00380 E00380 F00780 700700
 700700 780F00 3C1E00 1E3C00 1FFC00 0FF800 03E000>
PXLC RP
1694 2963 XY F58(0)S
XP /F58 46 21 8 0 13 5 5 8 0
<70 F8 F8 F8 70>
PXLC RP
1711 2963 XY F58(.)S
XP /F58 50 21 2 0 19 25 25 24 0
<07E000 1FF800 7FFE00 783F00 F00F00 F00780 F00380 F00380 000380
 000380 000780 000700 000F00 001E00 003C00 007800 00F000 03E000
 078000 0F0000 1E0380 3C0380 7FFF80 FFFF80 7FFF80>
PXLC RP
1728 2963 XY F58(2)S
XP /F58 53 21 2 0 19 25 25 24 0
<3FFE00 3FFE00 3FFE00 380000 380000 380000 380000 380000 380000
 380000 3BF000 3FFC00 3FFE00 3C0F00 300700 000780 000380 600380
 F00380 F00780 F00F00 F81F00 7FFE00 1FF800 07E000>
PXLC RP
1746 2963 XY F58(5)S 18 x(..)S
XP /F58 49 21 4 0 18 25 25 16 0
<0180 0380 0380 0780 0F80 7F80 FF80 7380 0380 0380 0380 0380 0380
 0380 0380 0380 0380 0380 0380 0380 0380 0380 7FF8 7FFC 7FF8>
PXLC RP
1833 2963 XY F58(1.0)S F55(.)S 15 x(Clearly,)S 11 x(an)S 10 x
(attempt)S 10 x(to)S 10 x(store)S 37 y 327 X(the)S 11 x(transformed)S
11 x(ar)S -1 x(gument)S 11 x(in)S 11 x(a)S 11 x(variable)S 11 x(of)S
12 x(type)S
XP /F58 70 21 1 0 20 25 25 24 0
<FFFFE0 FFFFE0 FFFFE0 1C00E0 1C00E0 1C00E0 1C00E0 1C0000 1C0000
 1C1C00 1C1C00 1FFC00 1FFC00 1FFC00 1C1C00 1C1C00 1C0000 1C0000
 1C0000 1C0000 1C0000 1C0000 FF8000 FFC000 FF8000>
PXLC RP
974 3000 XY F58(F)S
XP /F58 76 21 1 0 20 25 25 24 0
<FFC000 FFC000 FFC000 1C0000 1C0000 1C0000 1C0000 1C0000 1C0000
 1C0000 1C0000 1C0000 1C0000 1C0000 1C0000 1C0000 1C0000 1C0040
 1C00E0 1C00E0 1C00E0 1C00E0 FFFFE0 FFFFE0 FFFFE0>
PXLC RP
991 3000 XY F58(L)S
XP /F58 79 21 2 0 19 25 25 24 0
<1FFC00 3FFE00 7FFF00 780F00 F00780 E00380 E00380 E00380 E00380
 E00380 E00380 E00380 E00380 E00380 E00380 E00380 E00380 E00380
 E00380 F00780 F00780 780F00 7FFF00 3FFE00 1FFC00>
PXLC RP
1009 3000 XY F58(O)S
XP /F58 65 21 1 0 20 25 25 24 0
<00E000 01F000 01F000 01B000 01B000 03B800 03B800 03B800 031800
 071C00 071C00 071C00 071C00 071C00 0E0E00 0E0E00 0FFE00 0FFE00
 1FFF00 1C0700 1C0700 1C0700 7F1FC0 FF1FE0 7F1FC0>
PXLC RP
1026 3000 XY F58(A)S
XP /F58 84 21 1 0 20 25 25 24 0
<7FFFE0 FFFFE0 FFFFE0 E0E0E0 E0E0E0 E0E0E0 E0E0E0 00E000 00E000
 00E000 00E000 00E000 00E000 00E000 00E000 00E000 00E000 00E000
 00E000 00E000 00E000 00E000 07FC00 0FFE00 07FC00>
PXLC RP
1044 3000 XY F58(T)S
XP /F58 95 21 2 -4 19 -1 3 24 0
<FFFF80 FFFF80 FFFF80>
PXLC RP
1061 3000 XY F58(_T)S
XP /F58 89 21 1 0 20 25 25 24 0
<FE0FE0 FF1FE0 FE0FE0 1C0700 1C0700 0E0E00 0E0E00 071C00 071C00
 071C00 03B800 03B800 01F000 01F000 00E000 00E000 00E000 00E000
 00E000 00E000 00E000 00E000 03F800 07FC00 03F800>
PXLC RP
1096 3000 XY F58(Y)S
XP /F58 80 21 1 0 19 25 25 24 0
<7FF800 FFFE00 7FFF00 1C0F80 1C0380 1C03C0 1C01C0 1C01C0 1C01C0
 1C03C0 1C0380 1C0F80 1FFF00 1FFE00 1FF800 1C0000 1C0000 1C0000
 1C0000 1C0000 1C0000 1C0000 7F0000 FF8000 7F0000>
PXLC RP
1113 3000 XY F58(P)S
XP /F58 69 21 1 0 20 25 25 24 0
<7FFFC0 FFFFC0 7FFFC0 1C01C0 1C01C0 1C01C0 1C01C0 1C0000 1C0000
 1C1C00 1C1C00 1FFC00 1FFC00 1FFC00 1C1C00 1C1C00 1C0000 1C00E0
 1C00E0 1C00E0 1C00E0 1C00E0 7FFFE0 FFFFE0 7FFFE0>
PXLC RP
1131 3000 XY F58(E)S 11 x F55(will)S 11 x(violate)S 11 x(the)S 11 x
(inherited)S 11 x(range)S 11 x(constraint.)S 3128 Y 1292 X F6(3)S
%%PageTrailer
/paper-automatic true SPS 1 PP EP
%%PageBoundingBox: 78 39 546 718

%%PageBoundingBox: (atend)
%%BeginPageSetup
1000 BP 3300 2550 PM /paper-automatic false SPS 410 0 XY
%%EndPageSetup
410 342 XY F6(A)S 13 x(second)S 13 x(method,)S 12 x(which)S 13 x
(completely)S 13 x(avoids)S 13 x(reliance)S 13 x(on)S 13 x(prede)S
(\014ned)S 13 x(type)S 13 x(names,)S 13 x(has)S 13 x(a)S 13 x
(similar)S 13 x(case-statement)S 13 x(in)S 49 y 327 X(the)S 15 x
(body)S 15 x(of)S 15 x(each)S 16 x(elementary)S 16 x(function,)S 
16 x(with)S 15 x(the)S 15 x(choices)S 15 x(represented)S 16 x(by)S
16 x(constants)S 15 x(and)S 16 x(with)S 16 x(each)S 15 x(case)S 15 x
(containing)S 16 x(a)S 50 y 327 X(block-statement)S 13 x(that)S 13 x
(declares)S 13 x(working)S 13 x(variables)S 13 x(of)S 14 x(the)S 
14 x(same)S 13 x(precision,)S 13 x(given)S 14 x(as)S 14 x(a)S 13 x
(constant.)S 18 x(In)S 13 x(practice,)S 13 x(the)S 13 x(number)S 
50 y 327 X(of)S 16 x(cases)S 17 x(can)S 17 x(be)S 17 x(sharply)S 
17 x(reduced,)S 18 x(as)S 17 x(shown)S 17 x(by)S 16 x(T)S -3 x(ang)S
16 x(in)S 16 x([25],)S 17 x(by)S 16 x(grouping)S 17 x(a)S 17 x
(range)S 17 x(of)S 16 x(successive)S 17 x(precision)S 17 x(values)S
50 y 327 X(together)S 15 x(into)S 15 x(each)S 14 x(choice,)S 15 x
(with)S 14 x(the)S 15 x(breakpoints)S 15 x(chosen)S 15 x(with)S 14 x
(representative)S 15 x(hardware)S 15 x(in)S 15 x(mind.)S 21 x(\(The)S
14 x(precision)S 15 x(used)S 50 y 327 X(in)S 13 x(the)S 13 x
(declaration)S 13 x(of)S 13 x(working)S 13 x(variables)S 13 x(in)S
13 x(each)S 13 x(case)S 13 x(then)S 13 x(becomes)S 13 x(the)S 13 x
(constant)S 13 x(representing)S 14 x(the)S 13 x(upper)S 13 x(bound)S
13 x(of)S 13 x(the)S 49 y 327 X(range)S 14 x(of)S 14 x(precisions)S
15 x(of)S 14 x(the)S 14 x(case's)S 14 x(choice.)S 19 x(Attention)S
14 x(to)S 14 x(several)S 14 x(details)S 14 x(not)S 14 x(discussed)S
15 x(here)S 14 x(is)S 14 x(required.\))S 19 x(This)S 14 x(method,)S
50 y 327 X(too,)S 21 x(has)S 20 x(two)S 19 x(drawbacks:)S 74 y 410 X
(\267)S 68 x(Excess)S 14 x(precision)S 14 x(may)S 14 x(sometimes)S
14 x(be)S 14 x(used)S 14 x(when)S 14 x(not)S 14 x(required\320i.e.,)S
14 x(precision)S 14 x(may)S 14 x(be)S 14 x(wasted\320in)S 14 x
(order)S 14 x(to)S 50 y 493 X(keep)S 18 x(the)S 17 x(cases)S 18 x
(to)S 18 x(a)S 18 x(manageable)S 18 x(number.)S 49 y 410 X(\267)S 
68 x(Expensive)S 15 x(compromises)S 15 x(are)S 15 x(required)S 16 x
(to)S 16 x(\014t)S 16 x(some)S 16 x(of)S 16 x(the)S 16 x(steps)S 
15 x(of)S 15 x(the)S 15 x(typical)S 15 x(realization)S 15 x(of)S 
15 x(an)S 16 x(elementary)S 50 y 493 X(function)S 18 x(into)S 17 x
(the)S 17 x(case)S 17 x(structure.)S 28 x(The)S 17 x(approximation)S
17 x(step\320which)S 17 x(is)S 17 x(sandwiched)S 17 x(between)S 17 x
(the)S 17 x(ar)S -1 x(gument)S 50 y 493 X(reduction)S 10 x(step)S 
10 x(and)S 10 x(the)S 10 x(result)S 10 x(construction)S 10 x(step)S
(\320\014ts)S 10 x(into)S 10 x(the)S 10 x(case)S 10 x(structure)S 
10 x(well;)S 11 x(each)S 10 x(case)S 10 x(not)S 10 x(only)S 10 x
(provides)S 50 y 493 X(the)S 14 x(precision)S 14 x(to)S 15 x(be)S 
15 x(used)S 14 x(in)S 14 x(the)S 15 x(declarations)S 15 x(of)S 15 x
(its)S 15 x(local)S 15 x(working)S 15 x(variables,)S 15 x(but)S 14 x
(it)S 14 x(also)S 15 x(serves)S 15 x(as)S 15 x(the)S 14 x(locus)S 
50 y 493 X(within)S 15 x(which)S 15 x(the)S 15 x(chosen)S 15 x
(approximation)S 15 x(scheme)S 16 x(can)S 15 x(be)S 15 x(tailored)S
15 x(to)S 15 x(that)S 15 x(precision)S 15 x(\(for)S 16 x(example,)S
15 x(by)S 15 x(using)S 50 y 493 X(the)S 14 x(appropriate)S 15 x
(number)S 14 x(of)S 14 x(terms,)S 14 x(with)S 15 x(appropriate)S 
14 x(coef)S -1 x(\014cients,)S 15 x(in)S 15 x(a)S 15 x
(polynomial\).)S 20 x(On)S 15 x(the)S 15 x(other)S 15 x(hand,)S 14 x
(the)S 49 y 493 X(dependence)S 14 x(of)S 14 x(the)S 14 x(ar)S -1 x
(gument)S 14 x(reduction)S 14 x(and)S 14 x(result)S 14 x
(construction)S 14 x(steps)S 14 x(on)S 14 x(the)S 14 x(precision)S
14 x(required)S 14 x(is)S 14 x(con\014ned)S 50 y 493 X(to)S 13 x
(the)S 13 x(declarations)S 12 x(of)S 12 x(the)S 12 x(working)S 12 x
(variables)S 12 x(needed)S 12 x(in)S 12 x(those)S 12 x(steps;)S 13 x
(the)S 13 x(same)S 12 x(ar)S -1 x(gument)S 14 x(reduction)S 13 x
(algorithm)S 50 y 493 X(or)S 15 x(result)S 16 x(construction)S 16 x
(algorithm)S 16 x(can)S 16 x(be)S 16 x(used)S 16 x(in)S 15 x(each)S
16 x(of)S 16 x(the)S 16 x(cases.)S 25 x(T)S -3 x(o)S 16 x(avoid)S 
16 x(the)S 16 x(needless)S 16 x(duplication)S 15 x(of)S 50 y 493 X
(code)S 16 x(\(dif)S -1 x(fering)S 16 x(only)S 16 x(in)S 15 x(the)S
16 x(precision)S 16 x(of)S 16 x(variables\),)S 16 x(one)S 16 x(is)S
16 x(motivated)S 16 x(to)S 16 x(take)S 16 x(the)S 16 x(ar)S -1 x
(gument)S 16 x(reduction)S 16 x(and)S 50 y 493 X(result)S 15 x
(construction)S 15 x(steps)S 15 x(out)S 15 x(of)S 15 x(all)S 15 x
(the)S 15 x(cases)S 15 x(and)S 15 x(to)S 15 x(place)S 15 x(a)S 15 x
(common)S 15 x(ar)S -1 x(gument)S 15 x(reduction)S 15 x(step)S 15 x
(before)S 15 x(the)S 49 y 493 X(case-statement)S 16 x(and)S 16 x(a)S
16 x(common)S 16 x(result)S 16 x(construction)S 16 x(step)S 16 x
(after)S 16 x(the)S 16 x(case-statement.)S 25 x(The)S 16 x(only)S 
16 x(precision)S 16 x(that)S 50 y 493 X(suf)S -1 x(\014ces)S 14 x
(for)S 14 x(the)S 14 x(variables)S 14 x(used)S 14 x(in)S 14 x(these)S
14 x(steps)S 14 x(is)S 14 x(the)S 14 x(maximum)S 14 x(available)S 
14 x(precision.)S 19 x(When)S 15 x(that)S 14 x(precision)S 14 x(is)S
50 y 493 X(more)S 16 x(than)S 15 x(is)S 15 x(required)S 15 x
(\(e.g.,)S 16 x(because)S 15 x(a)S 15 x(case)S 16 x(corresponding)S
15 x(to)S 15 x(a)S 16 x(low)S 15 x(precision)S 16 x(is)S 15 x
(selected\),)S 16 x(this)S 15 x(tactic)S 15 x(can)S 50 y 493 X
(produce)S 13 x(an)S 13 x(unfortunate)S 13 x(performance)S 13 x
(degradation,)S 13 x(especially)S 13 x(in)S 13 x(Ada)S 13 x
(implementations)S 13 x(in)S 13 x(which)S 12 x(the)S 13 x(highest)S
50 y 493 X(precision)S 18 x(available)S 17 x(is)S 17 x(simulated)S
17 x(in)S 18 x(software.)S 73 y 410 X(The)S 19 x(magnitude)S 20 x
(of)S 20 x(the)S 19 x(performance)S 20 x(penalty)S 19 x(induced)S 
19 x(by)S 19 x(the)S 20 x(second)S 19 x(method,)S 21 x(which)S 19 x
(nevertheless)S 20 x(is)S 19 x(favored)S 50 y 327 X(by)S 22 x(some)S
23 x(implementors)S 22 x(because)S 22 x(it)S 22 x(is)S 22 x
(inherently)S 23 x(more)S 22 x(portable)S 23 x(than)S 22 x(the)S 
22 x(\014rst,)S 25 x(became)S 23 x(apparent)S 22 x(only)S 22 x
(recently,)S 50 y 327 X(as)S 23 x(implementation)S 23 x(experience)S
23 x(began)S 23 x(to)S 24 x(build.)S 47 x(Aided)S 24 x(by)S 24 x(a)S
24 x(growing)S 24 x(suspicion)S 24 x(that)S 24 x(the)S 24 x(desire)S
24 x(to)S 23 x(instantiate)S 50 y 327 X F53
(GENERIC_ELEMENTARY_FUNCTIONS)S 11 x F6(with)S 16 x(a)S 17 x
(range-constrained)S 17 x(generic)S 17 x(actual)S 16 x(type)S 16 x
(may)S 16 x(not)S 17 x(be)S 16 x(as)S 17 x(realistic)S 17 x(as)S 
17 x(once)S 50 y 327 X(thought,)S -16 y F54(2)S 16 y 12 x F6(the)S
11 x(realization)S 12 x(led)S 12 x(to)S 12 x(a)S 12 x(reevaluation)S
11 x(of)S 12 x(the)S 12 x(original)S 12 x(decision)S 12 x(on)S 12 x
(range)S 12 x(constraints,)S 12 x(and)S 12 x(to)S 12 x(a)S 12 x
(recommendation)S 49 y 327 X(from)S 10 x(the)S 10 x(Ada-Europe)S 
10 x(Numerics)S 10 x(W)S -3 x(orking)S 10 x(Group)S 10 x(that)S 10 x
(the)S 10 x(decision)S 10 x(be)S 10 x(partially)S 9 x(reversed)S 
10 x(by)S 10 x(allowing)S 10 x(an)S 9 x(implementation)S 50 y 327 X
(to)S 17 x(impose)S 16 x(a)S 17 x(restriction)S 16 x(against)S 16 x
(range)S 17 x(constraints)S 16 x(if)S 16 x(it)S 16 x(so)S 16 x
(wishes.)S 26 x(By)S 16 x(imposing)S 16 x(this)S 16 x(restriction,)S
17 x(an)S 16 x(implementation)S 50 y 327 X(can)S 14 x(use)S 15 x F53
(FLOAT_TYPE)S 12 x F6(directly)S 14 x(as)S 14 x(the)S 14 x(type)S 
15 x(mark)S 14 x(for)S 14 x(all)S 14 x(of)S 14 x(its)S 15 x(working)S
14 x(variables;)S 14 x(the)S 14 x(only)S 14 x(need)S 14 x(for)S 14 x
(a)S 15 x(case-statement)S 50 y 327 X(is)S 16 x(to)S 17 x(select)S
17 x(an)S 17 x(approximation)S 17 x(method)S 17 x(tailored)S 17 x
(to)S 17 x(the)S 16 x(precision)S 16 x(required,)S 18 x(and)S 16 x
(the)S 17 x(cases)S 16 x(will)S 17 x(furthermore)S 17 x(not)S 17 x
(need)S 50 y 327 X(to)S 19 x(contain)S 19 x(block-statements.)S 58 y 
410 X(A)S 18 x(programmer)S 18 x(who)S 18 x(requires)S 18 x
(portability)S 18 x(to)S 18 x(all)S 18 x(implementations)S 18 x
(must)S 18 x(avoid)S 18 x(instantiating)S 18 x F53(GENERIC_ELEMEN-)S
50 y 327 X(TARY_FUNCTIONS)S 14 x F6(with)S 17 x(a)S 17 x
(range-constrained)S 17 x(generic)S 17 x(actual)S 17 x(type.)S 27 x
(That)S 17 x(is)S 17 x(an)S 17 x(inconvenience,)S 17 x(but)S 16 x
(it)S 17 x(is)S 17 x(hardly)S 17 x(more)S 49 y 327 X(than)S 13 x
(that.)S 18 x(A)S 12 x(program)S 12 x(designed)S 12 x(around)S 13 x
(a)S 13 x(range-constrained)S 12 x(application)S 12 x(type)S 12 x
(or)S 12 x(subtype)S 13 x(named)S 13 x F53(APPLICATION_TYPE)S F6(,)S
50 y 327 X(used)S 15 x(both)S 15 x(to)S 15 x(declare)S 15 x
(variables)S 15 x(and)S 15 x(to)S 16 x(instantiate)S 15 x(a)S 15 x
(generic)S 15 x(math)S 16 x(package,)S 16 x(can)S 15 x(be)S 15 x
(systematically)S 15 x(modi\014ed)S 15 x(to)S 15 x(avoid)S 50 y 
327 X(instantiating)S 15 x F53(GENERIC_ELEMENTARY_FUNCTIONS)S 8 x 
F6(with)S 14 x(a)S 14 x(range-constrained)S 14 x(generic)S 15 x
(actual)S 14 x(type)S 14 x(as)S 15 x(follows:)S 74 y 410 X(\267)S 
68 x(Find)S 16 x(the)S 16 x(declaration)S 16 x(of)S 17 x(the)S 17 x
(type)S 16 x(or)S 16 x(subtype)S 16 x F53(APPLICATION_TYPE)S F6(.)S
49 y 410 X(\267)S 68 x(Change)S 12 x(the)S 12 x(declaration)S 12 x
(so)S 13 x(that)S 12 x(the)S 13 x(type)S 12 x(or)S 12 x(subtype)S 
12 x(has)S 13 x(a)S 13 x(new)S 12 x(name,)S 12 x(say)S 12 x F53
(ORIGINAL_TYPE)S F6(.)S 9 x(In)S 12 x(the)S 12 x(modi\014ed)S 50 y 
493 X(program,)S 14 x F53(ORIGINAL_TYPE)S 11 x F6(will)S 14 x(be)S
14 x(used)S 14 x F7(only)S 14 x F6(as)S 13 x(the)S 14 x(source)S 
14 x(of)S 13 x(properties)S 14 x(for)S 14 x(a)S 13 x(new)S 14 x
(type,)S 14 x F53(BASE_TYPE)S F6(,)S 12 x(and)S 50 y 493 X(a)S 18 x
(subtype)S 17 x(thereof)S 17 x(called)S 18 x F53(APPLICATION_TYPE)S
F6(.)S 50 y 410 X(\267)S 68 x(Declare)S 18 x(the)S 18 x(type)S 18 x 
F53(BASE_TYPE)S 16 x F6(as)S 18 x(\252)S F53(digits)S 21 x
(ORIGINAL_TYPE)S
(\015BASE\015DIGITS)S F6(.\272)S 13 x(Instantiate)S 17 x F53
(GENERIC_ELE-)S 50 y 493 X(MENTARY_FUNCTIONS)S 12 x F6(with)S 16 x 
F53(BASE_TYPE)S 14 x F6(instead)S 16 x(of)S 16 x F53
(APPLICATION_TYPE)S F6(.)S 49 y 410 X(\267)S 68 x(Declare)S 14 x
(the)S 13 x(subtype)S 13 x F53(APPLICATION_TYPE)S 11 x F6(as)S 13 x
(\252)S F53(BASE_TYPE)S 20 x(range)S 21 x(BASE_TYPE)S
XP /F53 40 22 6 -4 17 29 33 16 0
<00E0 01E0 07C0 0700 0F00 1E00 3C00 3800 7800 7000 7000 7000 F000
 E000 E000 E000 E000 E000 E000 E000 F000 7000 7000 7000 7800 3800
 3C00 1E00 0F00 0700 07C0 01E0 00E0>
PXLC RP
1818 2762 XY F53(\(ORIGINAL_TYPE\015FIRST)S
XP /F53 41 22 4 -4 15 29 33 16 0
<E000 F000 7C00 1C00 1E00 0F00 0780 0380 03C0 01C0 01C0 01C0 01E0
 00E0 00E0 00E0 00E0 00E0 00E0 00E0 01E0 01C0 01C0 01C0 03C0 0380
 0780 0F00 1E00 1C00 7C00 F000 E000>
PXLC RP
2254 2762 XY F53(\))S 50 y 493 X(..)S 21 x(BASE_TYPE\(ORIGINAL_TYPE)S
(\015LAST\))S F6(.\272)S 7 x(Use)S 13 x(it)S 12 x(in)S 13 x(the)S 
12 x(same)S 13 x(ways)S 13 x(as)S 13 x(in)S 12 x(the)S 12 x
(original)S 12 x(program,)S 13 x(except)S 13 x(for)S 50 y 493 X(the)S
17 x(instantiation)S 17 x(of)S 17 x F53
(GENERIC_ELEMENTARY_FUNCTIONS)S F6(.)S 327 2926 XY 600 2 R 25 y 
398 X F57(2)S 12 y F55(It)S 14 x(is)S 13 x(hard)S 13 x(to)S 13 x
(imagine)S 14 x(how)S 13 x(a)S
XP /F59 /CM-Times-Italic 33.209 12 DF RP
809 2963 XY F59(single)S 14 x F55(application-determined)S 13 x
(range)S 13 x(constraint)S 13 x(can)S 13 x(be)S 13 x(suitably)S 14 x
(applied)S 14 x(to)S 14 x(the)S 13 x(inputs)S 13 x(and)S 13 x
(outputs)S 13 x(of)S 13 x F59(all)S 13 x F55(the)S 37 y 327 X
(elementary)S 11 x(functions)S 11 x(without)S 11 x(causing)S 11 x(a)S
11 x(constraint)S 11 x(violation)S 11 x F59(somewher)S -1 x(e)S 11 x 
F55(on)S 11 x(a)S 11 x(call)S 11 x(or)S 11 x(a)S 11 x(return.)S 
3128 Y 1292 X F6(4)S
%%PageTrailer
/paper-automatic true SPS 1 PP EP
%%PageBoundingBox: 78 39 546 718

%%PageBoundingBox: (atend)
%%BeginPageSetup
1000 BP 3300 2550 PM /paper-automatic false SPS 327 0 XY
%%EndPageSetup
327 342 XY F6(The)S 23 x(foregoing)S 24 x(prescription)S 23 x
(caters)S 23 x(to)S 23 x(the)S 23 x(worst)S 24 x(case,)S 25 x(in)S
23 x(which)S 24 x(the)S 24 x(base)S 23 x(type)S 24 x(of)S 24 x F53
(APPLICATION_TYPE)S 20 x F6(in)S 23 x(the)S 49 y 327 X(original)S 
19 x(program)S 19 x(is)S 19 x(anonymous;)S 21 x(obviously,)S 21 x
(if)S 19 x(its)S 19 x(name)S 19 x(is)S 19 x(known,)S 21 x(that)S 
19 x(name)S 19 x(can)S 19 x(simply)S 19 x(be)S 19 x(used)S 19 x(to)S
19 x(instantiate)S 50 y 327 X F53(GENERIC_ELEMENTARY_FUNCTIONS)S F6
(.)S 15 x(Also,)S 24 x(the)S 21 x(foregoing)S 22 x(prescription)S 
22 x(assumes)S 22 x(that)S 22 x F53(APPLICATION_TYPE)S 18 x F6(in)S
21 x(the)S 50 y 327 X(original)S 15 x(program)S 15 x(is)S 15 x(not)S
14 x(a)S 14 x(generic)S 14 x(formal)S 14 x(type;)S 15 x(if)S 15 x
(it)S 14 x(is,)S 15 x(the)S 14 x(same)S 14 x(technique)S 14 x(can)S
14 x(be)S 15 x(applied)S 14 x(one)S 15 x(level)S 14 x(out.)S 65 y 
410 X(The)S 10 x(proposed)S 10 x(standard)S 10 x(also)S 10 x
(implies)S 11 x(that)S 10 x(implementations)S 10 x(imposing)S 10 x
(the)S 10 x(restriction)S 10 x(must)S 10 x(behave)S 10 x
(predictably)S 10 x(when)S 50 y 327 X(the)S 12 x(restriction)S 12 x
(is)S 12 x(violated;)S 13 x(it)S 12 x(says)S 12 x(that)S 12 x
(instantiation)S 11 x(of)S 12 x F53(GENERIC_ELEMENTARY_FUNCTIONS)S
6 x F6(with)S 11 x(a)S 12 x(generic)S 12 x(actual)S 12 x(type)S 50 y 
327 X(containing)S 14 x(a)S 14 x(range)S 14 x(constraint)S 14 x
(that)S 14 x(reduces)S 14 x(the)S 14 x(allowable)S 14 x(range)S 14 x
(of)S 14 x(values,)S 14 x(in)S 14 x(violation)S 14 x(of)S 14 x(the)S
14 x(restriction,)S 14 x(must)S 14 x(result)S 50 y 327 X(either)S 
11 x(in)S 12 x(the)S 11 x(rejection)S 12 x(of)S 12 x(the)S 11 x
(compilation)S 11 x(of)S 11 x(a)S 11 x(unit)S 11 x(containing)S 11 x
(an)S 12 x(instantiation)S 12 x(of)S 12 x F53
(GENERIC_ELEMENTARY_FUNCTIONS)S 50 y 327 X F6(or)S 25 x(in)S 25 x
(the)S 25 x(raising)S 26 x(of)S 25 x F53(CONSTRAINT_ERROR)S 23 x F6
(or)S 26 x F53(PROGRAM_ERROR)S 23 x F6(during)S 26 x(the)S 26 x
(elaboration)S 26 x(of)S 26 x(an)S 26 x(instantiation)S 25 x(of)S 
49 y 327 X F53(GENERIC_ELEMENTARY_FUNCTIONS)S F6(.)S 5 x(The)S 11 x
(\014rst)S 11 x(two)S 12 x(actions)S 11 x(are)S 11 x(consequences)S
11 x(of)S 11 x(the)S 11 x(semantics)S 11 x(of)S 12 x(Ada)S 11 x(and)S
11 x(are)S 11 x(beyond)S 50 y 327 X(the)S 11 x(implementor's)S 12 x
(ability)S 12 x(to)S 12 x(in\015uence;)S 13 x(if)S 12 x(neither)S 
12 x(of)S 12 x(these)S 12 x(occurs)S 12 x(\014rst,)S 12 x(the)S 12 x
(implementor)S 12 x(can)S 12 x(ensure)S 12 x(that)S 12 x(the)S 11 x
(last)S 12 x(action)S 50 y 327 X(takes)S 12 x(place)S 12 x(by)S 12 x
(coding)S 12 x(the)S 12 x(following)S 12 x(in)S 12 x(the)S 12 x
(statement-sequence)S 12 x(of)S 12 x(the)S 12 x(body)S 12 x(of)S 
12 x F53(GENERIC_ELEMENTARY_FUNCTIONS)S
XP /F53 58 22 8 0 13 18 18 8 0
<70 F8 F8 F8 70 00 00 00 00 00 00 00 00 70 F8 F8 F8 70>
PXLC RP
2243 905 XY F53(:)S 1019 Y 327 X(i)S
XP /F53 102 22 1 0 18 25 25 24 0
<001F00 007F80 00FF80 01E780 01C300 01C000 01C000 7FFF00 FFFF00
 FFFF00 01C000 01C000 01C000 01C000 01C000 01C000 01C000 01C000
 01C000 01C000 01C000 01C000 3FFE00 7FFF00 3FFE00>
PXLC RP
349 1019 XY F53(f)S 21 x(FLOAT_TYPE\015FIRST)S
XP /F53 62 22 2 2 19 23 21 24 0
<C00000 F00000 FC0000 3E0000 0F8000 07C000 01F000 00F800 003E00
 001F80 000780 001F80 003E00 00F800 01F000 07C000 0F8000 3E0000
 FC0000 F00000 C00000>
PXLC RP
763 1019 XY F53(>)S 21 x(FLOAT_TYPE\015BASE\015FIRST)S
XP /F53 111 22 2 0 19 18 18 24 0
<03E000 0FF800 1FFC00 3C1E00 780F00 700700 E00380 E00380 E00380
 E00380 E00380 F00780 700700 780F00 3C1E00 1FFC00 0FF800 03E000>
PXLC RP
1286 1019 XY F53(or)S 50 y 392 X(FLOAT_TYPE\015LAST)S
XP /F53 60 22 2 2 19 23 21 24 0
<000180 000780 001F80 003E00 00F800 01F000 07C000 0F8000 3E0000
 FC0000 F00000 FC0000 3E0000 0F8000 07C000 01F000 00F800 003E00
 001F80 000780 000180>
PXLC RP
763 1069 XY F53(<)S 21 x(FLOAT_TYPE\015BASE\015LAST)S 40 x(t)S
XP /F53 104 22 0 0 21 25 25 24 0
<7E0000 FE0000 7E0000 0E0000 0E0000 0E0000 0E0000 0E3C00 0EFF00
 0FFF80 0F8780 0F0380 0F0380 0E0380 0E0380 0E0380 0E0380 0E0380
 0E0380 0E0380 0E0380 0E0380 7FC7F0 FFE7F8 7FC7F0>
PXLC RP
1308 1069 XY F53(hen)S 50 y 392 X(raise)S 21 x(PROGRAM_ERROR)S
XP /F53 59 22 7 -6 13 18 24 8 0
<38 7C 7C 7C 38 00 00 00 00 00 00 00 00 38 7C 7C 7C 3C 1C 3C 38 F8 F0
 60>
PXLC RP
806 1119 XY F53(;)S 50 y 327 X(end)S 21 x(if;)S 1287 Y -70 x F6
(Finally,)S 14 x(since)S 13 x(the)S 14 x(Ada)S 13 x(9X)S 13 x
(Requirements)S 13 x(T)S -3 x(eam)S 14 x(has)S 13 x(already)S 14 x
(recognized)S 14 x(the)S 14 x(need)S 14 x(for)S 13 x(improvements)S
13 x(in)S 13 x(the)S 13 x(treat-)S 49 y 327 X(ment)S 12 x(of)S 12 x
(generics)S 12 x(that)S 12 x(would)S 12 x(eliminate)S 11 x(the)S 
12 x(problems)S 12 x(faced)S 11 x(by)S 11 x(implementors)S 11 x
(wishing)S 11 x(to)S 11 x(allow)S 12 x(range)S 12 x(constraints)S 
11 x(in)S 11 x(the)S 50 y 327 X(generic)S 13 x(actual)S 13 x(type)S
13 x(\([1],)S 13 x(User)S 12 x(Need)S 12 x(U4.4-A\),)S 13 x(it)S 
13 x(can)S 13 x(be)S 13 x(anticipated)S 13 x(that)S 12 x(there)S 
13 x(will)S 12 x(one)S 13 x(day)S 13 x(be)S 12 x(no)S 13 x(reason)S
13 x(to)S 12 x(allow)S 12 x(im-)S 50 y 327 X(plementations)S 11 x
(to)S 11 x(impose)S 12 x(a)S 12 x(restriction)S 12 x(against)S 12 x
(range)S 11 x(constraints;)S 12 x(at)S 12 x(that)S 11 x(time,)S 12 x
(the)S 12 x F53(GENERIC_ELEMENTARY_FUNCTIONS)S 50 y 327 X F6
(standard)S 15 x(will)S 15 x(be)S 15 x(revised)S 15 x(to)S 15 x
(revoke)S 15 x(the)S 15 x(right)S 15 x(of)S 15 x(an)S 15 x
(implementation)S 15 x(to)S 15 x(impose)S 15 x(such)S 15 x(a)S 15 x
(restriction.)S 1682 Y 327 X F52(What)S 22 x(functions)S 22 x(are)S
22 x(included?)S 1782 Y 410 X F6(Nineteen)S 17 x(functions)S 17 x
(and)S 17 x(one)S 17 x(operator)S 17 x(are)S 17 x(de\014ned)S 17 x
(in)S 17 x(the)S 16 x(elementary)S 17 x(functions)S 17 x(package.)S
27 x(These)S 17 x(are)S 17 x F53(SQRT)S F6(;)S 16 x(the)S 50 y 327 X
(two)S 15 x(functions)S 15 x(\()S F53(EXP)S 14 x F6(and)S 15 x F53
(LOG)S F6(\))S 15 x(and)S 15 x(one)S 15 x(operator)S 15 x(\()S
XP /F53 34 22 4 14 17 25 11 16 0
<E038 F078 F078 F078 F078 F078 F078 F078 E038 E038 6030>
PXLC RP
1155 1832 XY F53(")S
XP /F53 42 22 2 4 19 22 18 24 0
<01C000 01C000 01C000 01C000 71C700 F9CF80 7FFF00 1FFC00 07F000
 07F000 1FFC00 7FFF00 F9CF80 71C700 01C000 01C000 01C000 01C000>
PXLC RP
1177 1832 XY F53(**")S F6(\))S 14 x(of)S 15 x(the)S 15 x
(exponential)S 16 x(family;)S 15 x(the)S 15 x(four)S 15 x(commonly)S
15 x(encountered)S 50 y 327 X(functions)S 18 x(\()S F53(SIN)S F6(,)S
18 x F53(COS)S F6(,)S 18 x F53(TAN)S F6(,)S 18 x(and)S 18 x F53(COT)S
F6(\))S 18 x(of)S 19 x(the)S 18 x(trigonometric)S 19 x(family;)S 
20 x(their)S 18 x(inverses)S 18 x(\()S F53(ARCSIN)S F6(,)S 17 x F53
(ARCCOS)S F6(,)S 17 x F53(ARCTAN)S F6(,)S 17 x(and)S 50 y 327 X F53
(ARCCOT)S F6(\);)S 14 x(the)S 15 x(four)S 16 x(commonly)S 15 x
(encountered)S 16 x(functions)S 15 x(\()S F53(SIN)S
XP /F53 72 22 1 0 20 25 25 24 0
<7F1FC0 FFBFE0 7F1FC0 1C0700 1C0700 1C0700 1C0700 1C0700 1C0700
 1C0700 1FFF00 1FFF00 1FFF00 1C0700 1C0700 1C0700 1C0700 1C0700
 1C0700 1C0700 1C0700 1C0700 7F1FC0 FFBFE0 7F1FC0>
PXLC RP
1308 1932 XY F53(H)S F6(,)S 15 x F53(COSH)S F6(,)S 15 x F53(TANH)S
F6(,)S 14 x(and)S 16 x F53(COTH)S F6(\))S 14 x(of)S 16 x(the)S 15 x
(hyperbolic)S 15 x(family;)S 16 x(and)S 50 y 327 X(their)S 10 x
(inverses)S 11 x(\()S F53(ARCSINH)S F6(,)S 8 x F53(ARCCOSH)S F6(,)S
8 x F53(ARCTANH)S F6(,)S 9 x(and)S 11 x F53(ARCCOTH)S F6(\).)S 9 x
(They)S 10 x(were)S 10 x(chosen)S 10 x(because)S 11 x(of)S 10 x
(their)S 10 x(widespread)S 10 x(utility)S 11 x(in)S 49 y 327 X
(scienti)S
(\014c)S 12 x(and)S 11 x(engineering)S 12 x(applications.)S 18 x
(Actually,)S 12 x(the)S 12 x(trigonometric)S 11 x(functions)S 11 x
(and)S 12 x(their)S 12 x(inverses)S 12 x(are)S 12 x(each)S 12 x
(represented)S 50 y 327 X(by)S 12 x(a)S 12 x(pair)S 12 x(of)S 12 x
(overloaded)S 12 x(functions,)S 13 x(with)S 13 x(dif)S -1 x(ferent)S
12 x(numbers)S 13 x(of)S 12 x(parameters;)S 13 x(the)S 13 x(same)S
13 x(is)S 12 x(true)S 12 x(of)S 13 x(the)S 13 x F53(LOG)S 12 x F6
(function.)S 18 x(W)S -2 x(ith)S 50 y 327 X(overloadings)S 16 x
(included,)S 16 x(a)S 16 x(total)S 16 x(of)S 16 x(twenty-eight)S 
16 x(functions)S 16 x(and)S 16 x(one)S 16 x(operator)S 16 x(are)S 
15 x(de\014ned)S 16 x(in)S 16 x(the)S 16 x(elementary)S 15 x
(functions)S 50 y 327 X(package.)S 2377 Y 327 X F52(Why)S 11 x(were)S
11 x(the)S 11 x(names)S 11 x(X)S 11 x(and)S 11 x(Y)S 11 x(chosen)S
11 x(for)S 11 x(the)S 11 x(formal)S 12 x(parameters)S 11 x(of)S 12 x
(the)S 11 x(\201**\201)S 12 x(operator?)S 2477 Y 410 X F6(Whenever)S
21 x(one)S 22 x(overloads)S 22 x(an)S 21 x(operator,)S 23 x(one)S 
22 x(is)S 21 x(strongly)S 22 x(motivated)S 21 x(to)S 21 x(retain)S
21 x(the)S 21 x(existing)S 21 x(names)S 22 x(of)S 22 x(its)S 22 x
(for-)S 50 y 327 X(mal)S 26 x(parameters.)S 55 x(Had)S 26 x(this)S
26 x(practice)S 26 x(been)S 26 x(followed)S 26 x(with)S 26 x
(respect)S 26 x(to)S 26 x(the)S 26 x(overloading)S 26 x(of)S 26 x 
F53("**")S 25 x F6(contained)S 26 x(in)S 50 y 327 X F53
(GENERIC_ELEMENTARY_FUNCTIONS)S F6(,)S 8 x(the)S 14 x(names)S 15 x 
F53(LEFT)S 13 x F6(and)S 15 x F53(RIGHT)S 13 x F6(would)S 14 x(have)S
14 x(been)S 14 x(retained)S 14 x(for)S 14 x(its)S 15 x(formal)S 14 x
(parame-)S 50 y 327 X(ters.)S 22 x(However,)S 15 x(bowing)S 15 x(to)S
15 x(common)S 15 x(practice,)S 16 x(as)S 15 x(well)S 15 x(as)S 15 x
(to)S 15 x(the)S 15 x(precedent)S 15 x(set)S 15 x(by)S 15 x(other)S
15 x(standards)S 15 x(\(such)S 15 x(as)S 15 x(the)S 15 x(IEEE)S 49 y 
327 X(standards)S 14 x(for)S 14 x(\015oating-point)S 14 x
(arithmetic\),)S 14 x(the)S 14 x(committee)S 14 x(had)S 14 x
(already)S 14 x(chosen)S 15 x(the)S 15 x(name)S 14 x F53(X)S 14 x 
F6(for)S 14 x(the)S 14 x(formal)S 14 x(parameter)S 14 x(of)S 50 y 
327 X(the)S 16 x(one-place)S 16 x(functions,)S 17 x(and)S 16 x(the)S
16 x(names)S 16 x F53(X)S 16 x F6(and)S 16 x F53(Y)S 16 x F6(for)S
16 x(those)S 16 x(of)S 16 x(the)S 16 x(two-place)S 16 x(versions)S
16 x(of)S 16 x F53(ARCTAN)S 15 x F6(and)S 16 x F53(ARCCOT)S F6(.)S
15 x(For)S 50 y 327 X(uniformity)S 13 x(within)S 14 x(this)S 14 x
(package,)S 14 x(the)S 14 x(names)S 14 x F53(X)S 13 x F6(and)S 14 x 
F53(Y)S 13 x F6(were)S 14 x(therefore)S 13 x(also)S 14 x(used)S 14 x
(for)S 14 x(the)S 14 x(formal)S 14 x(parameters)S 14 x(of)S 13 x
(the)S 14 x F53("**")S 50 y 327 X F6(operator.)S 18 x(The)S 13 x
(decision)S 13 x(to)S 13 x(do)S 13 x(so)S 13 x(was)S 13 x(also)S 
13 x(in\015uenced)S 13 x(by)S 13 x(the)S 13 x(desire)S 14 x(to)S 
13 x(use)S 13 x(short)S 13 x(names)S 13 x(in)S 13 x(the)S 13 x
(accuracy)S 13 x(requirements,)S 50 y 327 X(which)S 16 x(in)S 16 x
(some)S 15 x(cases)S 15 x(are)S 16 x(expressed)S 16 x(in)S 16 x
(terms)S 16 x(of)S 16 x(the)S 15 x(values)S 16 x(of)S 15 x(the)S 
16 x(formal)S 16 x(parameters.)S 65 y 410 X(The)S 14 x(overloading)S
14 x(of)S 14 x F53("**")S 13 x F6(contained)S 14 x(in)S 14 x F53
(GENERIC_ELEMENTARY_FUNCTIONS)S 8 x F6(dif)S -1 x(fers)S 14 x(in)S
14 x(another)S 14 x(respect,)S 14 x(as)S 14 x(well,)S 50 y 327 X
(from)S 15 x(the)S 15 x(prede\014ned)S 15 x F53("**")S 15 x F6
(operator)S 15 x(\(see)S 15 x(the)S 15 x(question)S 15 x(on)S 16 x
(the)S 15 x(behavior)S 15 x(of)S 16 x F53(0.0**0.0)S -2 x F6(,)S 
16 x(below\).)S 3128 Y 1292 X(5)S
%%PageTrailer
/paper-automatic true SPS 1 PP EP
%%PageBoundingBox: 78 39 546 718

%%PageBoundingBox: (atend)
%%BeginPageSetup
1000 BP 3300 2550 PM /paper-automatic false SPS 327 0 XY
%%EndPageSetup
327 342 XY F52(Are)S 20 x(angles)S 20 x(measured)S 20 x(in)S 20 x
(radians,)S 20 x(degrees,)S 20 x(or)S 20 x(what?)S 419 Y 410 X F6
(Users)S 14 x(have)S 14 x(a)S 14 x(choice)S 14 x(of)S 15 x(units)S
15 x(in)S 15 x(which)S 15 x(angles)S 15 x(are)S 14 x(measured,)S 
14 x(and)S 15 x(the)S 14 x(overloadings)S 15 x(in)S 15 x(the)S 15 x
(trigonometric)S 15 x(family)S 50 y 327 X(and)S 17 x(their)S 17 x
(inverses)S 17 x(play)S 17 x(a)S 17 x(role)S 17 x(in)S 17 x(the)S 
17 x(exercise)S 17 x(of)S 17 x(that)S 17 x(choice.)S 58 y 410 X
(Most)S 16 x(often,)S 16 x(the)S 15 x(desired)S 15 x(angular)S 15 x
(measure)S 16 x(is)S 15 x(radians;)S 16 x(consequently,)S 15 x(it)S
15 x(is)S 15 x(the)S 15 x(easiest)S 15 x(to)S 16 x(specify.)S 23 x
(Thus,)S 16 x F53(SIN\(X\))S -1 x F6(,)S 49 y 327 X(for)S 13 x
(example,)S 12 x(yields)S 12 x(the)S 12 x(sine)S 12 x(of)S 12 x F53
(X)S F6(,)S 13 x(where)S 13 x F53(X)S 12 x F6(is)S 12 x(understood)S
13 x(to)S 12 x(be)S 12 x(measured)S 12 x(in)S 12 x(radians,)S 13 x
(and)S 12 x(similarly)S 12 x F53(ARCSIN\(X\))S 11 x F6(yields)S 50 y 
327 X(the)S 12 x(angle)S 12 x(\(in)S 13 x(radians\))S 12 x(whose)S
12 x(sine)S 13 x(is)S 13 x F53(X)S F6(.)S 11 x(T)S -3 x(o)S 14 x
(specify)S 12 x(some)S 12 x(other)S 13 x(angular)S 12 x(measure,)S
13 x(one)S 12 x(would)S 12 x(supply)S 12 x(a)S 12 x(value)S 12 x
(for)S 12 x F53(CYCLE)S 50 y 327 X F6(\(which)S 15 x(is)S 15 x(the)S
14 x(second)S 15 x(parameter,)S 15 x(except)S 15 x(in)S 14 x(the)S
15 x(case)S 15 x(of)S 15 x F53(ARCTAN)S 13 x F6(or)S 14 x F53
(ARCCOT)S F6(,)S 14 x(where)S 15 x(it)S 14 x(is)S 14 x(the)S 14 x
(third\).)S 20 x(For)S 15 x(example,)S 14 x(the)S 50 y 327 X(sine)S
12 x(of)S 12 x F53(X)S F6(,)S 11 x(where)S 12 x(now)S 12 x F53(X)S
12 x F6(is)S 12 x(understood)S 12 x(to)S 12 x(be)S 12 x(measured)S
12 x(in)S 13 x(degrees,)S 12 x(would)S 12 x(be)S 12 x(written)S 12 x
(as)S 12 x F53(SIN\(X)S
XP /F53 44 22 7 -6 14 5 11 8 0
<38 7C 7E 7E 3E 0E 1E 3C 7C F8 60>
PXLC RP
1878 726 XY F53(,)S 20 x(360.0\))S -1 x F6(;)S 12 x(by)S 12 x(the)S
12 x(same)S 50 y 327 X(token,)S 12 x(the)S 12 x(angle)S 11 x(\(in)S
12 x(degrees\))S 12 x(whose)S 11 x(sine)S 12 x(is)S 12 x F53(X)S 
11 x F6(is)S 11 x F53(ARCSIN\(X,)S 19 x(360.0\))S -1 x F6(.)S 18 x
(Other)S 11 x(angular)S 11 x(measures)S 12 x(can)S 11 x(be)S 12 x
(accommodated)S 50 y 327 X(by)S 13 x(using)S 14 x(the)S 14 x
(appropriate)S 13 x(value)S 14 x(for)S 14 x F53(CYCLE)S F6
(\320e.g.,)S 12 x F53(6400.0)S 12 x F6(for)S 13 x(mils,)S 14 x F53
(400.0)S 12 x F6(for)S 13 x(grads.)S 18 x(From)S 13 x(these)S 13 x
(examples)S 14 x(it)S 13 x(should)S 49 y 327 X(be)S 16 x(clear)S 
16 x(that)S 16 x(the)S 15 x(numerical)S 16 x(value)S 16 x(of)S 16 x 
F53(CYCLE)S 14 x F6(has)S 16 x(the)S 16 x(following)S 16 x
(interpretation:)S 22 x(an)S 16 x(angle)S 16 x F53(X)S 16 x F6
(numerically)S 16 x(equal)S 16 x(to)S 16 x(the)S 50 y 327 X(value)S
16 x(of)S 16 x F53(CYCLE)S 15 x F6(represents)S 16 x(one)S 16 x
(complete)S 16 x(cycle)S 16 x(of)S 16 x(revolution)S 16 x(\(i.e.,)S
16 x(one)S 16 x(period)S 16 x(of)S 16 x(the)S 16 x(function\).)S 
-15 y F54(3)S 15 y 25 x F6(It)S 16 x(should)S 16 x(also)S 16 x(be)S
50 y 327 X(clear)S 12 x(that)S 13 x(when)S 13 x(the)S 13 x F53
(CYCLE)S 12 x F6(parameter)S 12 x(is)S 13 x(omitted,)S 13 x(as)S 
13 x(in)S 13 x F53(SIN\(X\))S -2 x F6(,)S 13 x(the)S 12 x(ef)S -1 x
(fect)S 13 x(is)S 12 x(as)S 13 x(if)S 13 x(a)S 13 x F53(CYCLE)S 12 x 
F6(of)S 12 x(2)S
XP /F21 /cmmi10 300 41.5 41.5 128 [-1 -10 43 31] PXLNF RP
XP /F21 25 24 2 0 23 18 18 24 0
<0FFFF8 1FFFF8 3FFFF0 608400 408400 808C00 010C00 010C00 030C00
 030C00 020C00 061C00 061C00 0E1C00 0C1C00 1C0E00 1C0E00 180C00>
PXLC RP
1917 975 XY F21(\031)S 14 x F6(had)S 13 x(been)S 13 x(speci\014ed.)S
58 y 410 X(A)S 15 x(similar)S 15 x(choice)S 15 x(exists)S 15 x(with)S
14 x(respect)S 15 x(to)S 14 x(the)S 15 x(base)S 14 x(of)S 15 x(the)S
15 x F53(LOG)S 14 x F6(function.)S 21 x F53(LOG\(X\))S 13 x F6
(means)S 15 x(the)S 15 x(natural)S 15 x(or)S 14 x(Napierian)S 50 y 
327 X(logarithm)S 17 x(\(i.e.,)S 17 x(base)S
XP /F21 101 19 2 0 16 18 18 16 0
<01F0 0708 0C08 1804 3808 3008 7030 7FC0 E000 E000 E000 E000 E000
 E004 6008 6010 3060 0F80>
PXLC RP
687 1083 XY F21(e)S F6(\);)S 18 x(for)S 16 x(other)S 16 x(bases,)S
17 x(such)S 17 x(as)S 16 x F53(2.0)S 16 x F6(or)S 16 x F53(10.0)S 
-1 x F6(,)S 16 x(which)S 16 x(are)S 16 x(perhaps)S 17 x(the)S 17 x
(most)S 17 x(common)S 16 x(after)S 16 x F21(e)S F6(,)S 18 x(one)S 
50 y 327 X(writes)S 13 x F53(LOG\(X,)S 20 x(2.0\))S -1 x F6(,)S 13 x 
F53(LOG\(X,)S 19 x(10.0\))S -1 x F6(,)S 13 x(etc.)S 18 x(The)S 12 x
(optional)S 12 x(parameter)S 13 x(is)S 13 x(called)S 13 x F53(BASE)S
F6(,)S 12 x(and)S 12 x(when)S 13 x(it)S 12 x(is)S 13 x(omitted)S 
13 x(the)S 12 x(ef)S -1 x(fect)S 50 y 327 X(is)S 16 x(as)S 16 x(if)S
16 x(a)S 16 x F53(BASE)S 16 x F6(of)S 17 x F21(e)S 17 x F6(had)S 
16 x(been)S 16 x(speci\014ed.)S 27 x(There)S 16 x(is)S 16 x(no)S 
16 x F53(BASE)S 16 x F6(parameter)S 17 x(for)S 17 x(the)S 17 x F53
(EXP)S 16 x F6(function,)S 18 x(which)S 17 x(is)S 17 x(the)S 16 x
(inverse)S 49 y 327 X(of)S 14 x F53(LOG)S F6(,)S 15 x(since)S 15 x
(that)S 15 x(functionality)S 15 x(can)S 15 x(be)S 15 x(obtained)S 
15 x(with)S 14 x(the)S 15 x(exponentiation)S 14 x(operator:)S 21 x
(the)S 15 x(number)S 15 x(whose)S 15 x(logarithm)S 15 x(to)S 50 y 
327 X(the)S 18 x(base)S 18 x F53(B)S 18 x F6(is)S 18 x F53(X)S 18 x 
F6(can)S 18 x(be)S 18 x(computed)S 18 x(as)S 18 x F53(B**X)S -1 x 
F6(.)S 1421 Y 327 X F52(Why)S 17 x(is)S 17 x(the)S 16 x(optionality)S
17 x(of)S 16 x(the)S 17 x(CYCLE)S 17 x(and)S 16 x(BASE)S 16 x
(parameters)S 16 x(handled)S 17 x(by)S 62 y 327 X(subprogram)S 17 x
(overloading)S 18 x(instead)S 17 x(of)S 18 x(simply)S 17 x(using)S
17 x(default)S 18 x(values)S 17 x(for)S 17 x(them?)S 1560 Y 410 X 
F6(The)S 24 x(preceding)S 25 x(discussion)S 24 x(suggests)S 25 x
(that)S 24 x(the)S 24 x(optionality)S 24 x(of)S 25 x(the)S 24 x F53
(CYCLE)S 24 x F6(and)S 24 x F53(BASE)S 23 x F6(parameters)S 24 x
(could)S 25 x(have)S 50 y 327 X(been)S 24 x(handled)S 24 x(very)S 
24 x(simply)S 23 x(by)S 23 x(de\014ning)S 24 x(appropriate)S 23 x
(default)S 24 x(values)S 23 x(for)S 23 x(these)S 24 x(parameters,)S
26 x(and)S 24 x(yet)S 24 x(subprogram)S 50 y 327 X(overloading)S 
22 x(was)S 21 x(used)S 22 x(instead,)S 24 x(which)S 22 x
(unfortunately)S 21 x(adds)S 22 x(nine)S 22 x(subprogram)S 22 x
(declarations)S 21 x(to)S 21 x(the)S 22 x(speci\014cation)S 21 x(of)S
50 y 327 X F53(GENERIC_ELEMENTARY_FUNCTIONS)S F6(.)S 11 x(What)S 
18 x(is)S 17 x(so)S 18 x(disadvantageous)S 18 x(about)S 18 x(the)S
18 x(default-value)S 17 x(method)S 17 x(to)S 18 x(warrant)S 18 x
(this)S 50 y 327 X(increase)S 16 x(in)S 16 x(the)S 16 x(size)S 16 x
(of)S 16 x(the)S 16 x(speci\014cation)S 16 x(of)S 15 x F53
(GENERIC_ELEMENTARY_FUNCTIONS)S F6(?)S 58 y 410 X(The)S 16 x(answer)S
16 x(is)S 16 x(rather)S 16 x(subtle,)S 17 x(and)S 16 x(it)S 16 x
(required)S 16 x(much)S 16 x(debate)S 16 x(during)S 16 x(the)S 17 x
(development)S 16 x(of)S 16 x(this)S 16 x(proposed)S 16 x(standard.)S
50 y 327 X(The)S 17 x(problem)S 18 x(is)S 17 x(essentially)S 17 x
(that)S 18 x(2)S F21(\031)S 19 x F6(and)S 17 x F21(e)S F6(,)S 18 x
(being)S 17 x(irrational,)S 18 x(are)S 18 x(not)S 17 x
(representable)S 17 x(exactly)S 18 x(in)S 17 x(any)S 18 x
(implementation,)S 49 y 327 X(so)S 16 x(the)S 16 x(best)S 16 x(that)S
15 x(could)S 15 x(possibly)S 15 x(be)S 15 x(done)S 16 x(would)S 16 x
(be)S 16 x(to)S 16 x(use)S 16 x(a)S 16 x(default)S 16 x(value)S 16 x
(that)S 16 x(is)S 16 x(a)S 16 x(close)S 16 x(approximation)S 16 x
(to)S 16 x(2)S F21(\031)S 16 x F6(or)S 16 x F21(e)S 50 y 327 X F6
(\(implicit)S 13 x(conversion)S 14 x(of)S 14 x(2)S F21(\031)S 15 x 
F6(or)S 14 x F21(e)S F6(,)S 14 x(expressed)S 13 x(as)S 14 x(a)S 13 x
(numeric)S 14 x(literal)S 13 x(with)S 13 x(an)S 14 x(arbitrarily)S
13 x(lar)S -1 x(ge)S 13 x(number)S 14 x(of)S 13 x(trailing)S 14 x
(digits,)S 14 x(to)S 50 y 327 X(the)S 14 x(type)S 14 x F53
(FLOAT_TYPE)S 12 x F6(is)S 14 x(only)S 14 x(required)S 14 x(to)S 
14 x(yield)S 14 x(a)S 14 x(value)S 14 x(in)S 14 x(the)S 14 x(same)S
13 x(safe)S 14 x(interval)S 14 x(as)S 14 x(the)S 14 x(literal\).)S
18 x(The)S 13 x(use)S 14 x(of)S 14 x(such)S 14 x(an)S 50 y 327 X
(approximation)S 13 x(to)S 13 x(2)S F21(\031)S 14 x F6(in)S 13 x
(the)S 13 x(computation)S 12 x(of)S 13 x(the)S 12 x(trigonometric)S
13 x(functions,)S 13 x(as)S 13 x(if)S 12 x(it)S 13 x(were)S 13 x
(the)S 13 x(true)S 12 x(period,)S 13 x(would)S 12 x(produce)S 50 y 
327 X(results)S 13 x(with)S 13 x(unacceptable)S 13 x(accuracy.)S 
19 x(The)S 13 x(error)S 13 x(is)S 13 x(not)S 13 x(like)S 13 x(a)S 
13 x(simple)S 13 x(roundof)S -1 x(f)S 13 x(error)S 13 x(but)S 13 x
(has)S 12 x(the)S 13 x(nature)S 13 x(of)S 13 x(a)S 13 x(cumulative)S
49 y 327 X(phase)S 14 x(shift)S 14 x(that)S 15 x(increases)S 14 x
(as)S 14 x(the)S 14 x(number)S 14 x(of)S 14 x(periods,)S 14 x(or)S
14 x(cycles,)S 15 x(represented)S 14 x(by)S 14 x F53(X)S 14 x F6
(increases.)S 20 x(For)S 14 x(suf)S -1 x(\014ciently)S 14 x(lar)S 
-1 x(ge)S 15 x F53(X)S F6(,)S 50 y 327 X(there)S 17 x(will)S 17 x
(be)S 18 x(no)S 18 x(correct)S 17 x(digits)S 18 x(whatsoever)S 17 x
(in)S 18 x(the)S 18 x(result.)S 58 y 410 X(Better)S 14 x(results)S
13 x(can)S 13 x(be)S 13 x(obtained,)S 14 x(and)S 13 x(this)S 13 x
(problem)S 13 x(ameliorated)S 13 x(somewhat,)S 13 x(if)S 13 x(the)S
13 x(implementation)S 13 x(uses)S 14 x(an)S 13 x(internal)S 50 y 
327 X(representation)S 17 x(of)S 17 x(2)S F21(\031)S 18 x F6(that)S
17 x(has)S 17 x(more)S 17 x(precision)S 17 x(than)S 17 x F53
(FLOAT_TYPE)S 15 x F6(has.)S 28 x(The)S 17 x(necessary)S 18 x
(additional)S 17 x(precision)S 17 x(may)S 17 x(be)S 50 y 327 X
(obtained)S 10 x(from)S 10 x(hardware,)S 11 x(if)S 10 x(it)S 11 x
(is)S 10 x(available;)S 11 x(if)S 10 x(not,)S 11 x(there)S 10 x(are)S
10 x(techniques)S 10 x(for)S 10 x(\252simulating\272)S 10 x(extra)S
10 x(precision)S 10 x(\(see,)S 11 x(e.g.,)S 11 x([25]\).)S 50 y 
327 X(But)S 16 x(using)S 15 x(extra)S 16 x(precision)S 16 x(only)S
15 x(pushes)S 16 x(the)S 15 x(\252phase)S 16 x(shift\272)S 16 x
(problem,)S 16 x(wherein)S 15 x(all)S 15 x(accuracy)S 16 x(is)S 16 x
(lost,)S 16 x(farther)S 16 x(away\320i.e.,)S 50 y 327 X(to)S 15 x
(lar)S -1 x(ger)S 14 x(values)S 14 x(of)S 14 x F53(X)S F6(;)S 14 x
(it)S 15 x(does)S 14 x(not)S 15 x(eliminate)S 15 x(it)S 15 x
(entirely.)S 20 x(Therefore,)S 15 x(the)S 14 x(amount)S 15 x(of)S 
15 x(extra)S 14 x(precision)S 15 x(required)S 15 x(is)S 15 x
(related)S 49 y 327 X(to)S 14 x(the)S 14 x(range)S 14 x(of)S 14 x
(values)S 14 x(of)S 14 x F53(X)S 13 x F6(for)S 14 x(which)S 14 x
(some)S 14 x(stated)S 14 x(accuracy)S 14 x(is)S 14 x(to)S 14 x(be)S
14 x(achieved.)S 19 x(Since)S 14 x(the)S 14 x(required)S 14 x
(accuracy)S 14 x(and)S 14 x(the)S 50 y 327 X(minimum)S 13 x(domain)S
13 x(over)S 13 x(which)S 13 x(it)S 12 x(must)S 12 x(be)S 13 x
(achieved)S 13 x(are)S 13 x(both)S 13 x(spelled)S 13 x(out)S 12 x
(in)S 13 x(the)S 13 x(proposed)S 12 x(standard,)S 13 x(implementors)S
13 x(have)S 50 y 327 X(the)S 11 x(information)S 11 x(they)S 12 x
(need)S 11 x(to)S 11 x(satisfy)S 11 x(the)S 11 x(standard's)S 12 x
(requirements.)S 17 x(\(Outside)S 11 x(the)S 11 x(range)S 11 x(of)S
11 x F53(X)S 11 x F6(for)S 12 x(which)S 11 x(the)S 11 x
(trigonometric)S 50 y 327 X(functions)S 11 x(with)S 12 x(natural)S
12 x(cycle)S 12 x(must)S 12 x(meet)S 12 x(the)S 12 x(accuracy)S 12 x
(requirements,)S 13 x(degraded)S 12 x(accuracy\320but)S 12 x(not)S
12 x(other)S 12 x(behavior,)S 12 x(such)S 50 y 327 X(as)S 12 x(the)S
12 x(raising)S 12 x(of)S 12 x(an)S 12 x(exception\320is)S 13 x
(allowed.)S 18 x(An)S 13 x(implementation)S 13 x(must)S 13 x
(document)S 13 x(the)S 12 x(accuracy)S 13 x(it)S 12 x(achieves)S 
13 x(for)S 12 x(extreme)S 49 y 327 X(values)S 15 x(of)S 15 x F53(X)S
F6(,)S 15 x(along)S 15 x(with)S 15 x(the)S 15 x(threshold)S 14 x
(where)S 15 x(degradation)S 15 x(below)S 14 x(the)S 15 x(required)S
15 x(accuracy)S 15 x(commences.\))S 327 2815 XY 600 2 R 24 y 398 X 
F57(3)S 12 y F55(The)S 8 x(usage)S 8 x(notes)S 8 x(in)S 9 x(drafts)S
8 x(of)S 8 x(the)S 8 x(proposed)S 8 x(standard)S 8 x(preceding)S 
9 x(Draft)S 8 x(1.2)S 9 x(showed)S 9 x(examples)S 8 x(involving)S 
8 x(a)S
XP /F58 67 21 2 0 19 25 25 24 0
<01F180 07FF80 0FFF80 1F0F80 3C0780 780780 780380 700380 F00000
 E00000 E00000 E00000 E00000 E00000 E00000 E00000 F00000 700380
 780380 780380 3C0780 1F0F00 0FFE00 07FC00 01F000>
PXLC RP
1756 2851 XY F58(CYCLE)S 10 x F55(of)S 8 x F58(1.0)S 2 x F55(,)S 
9 x(allegedly)S 8 x(corresponding)S 37 y 327 X(to)S 8 x(angular)S 
8 x(measure)S 9 x(in)S 9 x(bams)S 9 x(\(\252binary)S 9 x(angular)S
9 x(measure\272\).)S 14 x(It)S 8 x(was)S 8 x(tardily)S 9 x
(discovered)S 9 x([11])S 9 x(that)S 8 x(this)S 8 x(obscure)S 8 x
(invention)S 8 x(is)S 9 x(primarily)S 9 x(useful)S 9 x(in)S 9 x F59
(\014xed-point)S 37 y 327 X F55(implementations,)S 11 x(where)S 11 x
(the)S 11 x(primary)S 12 x(range)S 11 x(of)S 12 x(the)S 12 x(angle)S
11 x(is)S 11 x(taken)S 12 x(to)S 12 x(be)S
XP /F28 /cmr10 300 41.5 33.2 128 [-3 -11 41 31] PXLNF RP
XP /F28 91 11 4 -10 11 31 41 8 0
<FE FE C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0
 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 FE FE>
PXLC RP
1284 2925 XY F28([)S
XP /F56 /cmsy8 300 33.2 33.2 128 [-1 -32 38 26] PXLNF RP
XP /F56 0 27 3 7 23 9 2 24 0
<FFFFF0 FFFFF0>
PXLC RP
1294 2925 XY F56(\000)S
PF 
XP /F58 /cmtt10 300 41.5 33.2 128 [0 -10 22 29] PXLNF RP
XP /F58 49 21 4 0 18 25 25 16 0
<0180 0380 0380 0780 0F80 7F80 FF80 7380 0380 0380 0380 0380 0380
 0380 0380 0380 0380 0380 0380 0380 0380 0380 7FF8 7FFC 7FF8>
PXLC RP
1321 2925 XY F58(1)S
XP /F87 /cmmi8 300 33.2 33.2 128 [0 -8 36 25] PXLNF RP
XP /F87 59 10 3 -6 7 4 10 8 0
<60 F0 F0 70 10 10 20 20 40 40>
PXLC RP
1338 2925 XY F87(;)S 6 x F58(1)S
XP /F28 /cmr10 300 41.5 33.2 128 [-3 -11 41 31] PXLNF RP
XP /F28 41 16 2 -11 12 31 42 16 0
<8000 4000 2000 1000 1800 0C00 0C00 0600 0600 0300 0300 0380 0180
 0180 0180 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0
 01C0 0180 0180 0180 0380 0300 0300 0600 0600 0C00 0C00 1800 1000
 2000 4000 8000>
PXLC RP
1371 2925 XY F28(\))S
XP /F55 /CM-Times-Roman 33.209 11 DNF RP
1396 2925 XY F55(bams,)S 11 x(corresponding)S 12 x(to)S
XP /F28 91 11 4 -10 11 31 41 8 0
<FE FE C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0
 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 FE FE>
PXLC RP
1724 2925 XY F28([)S
XP /F56 /cmsy8 300 33.2 33.2 128 [-1 -32 38 26] PXLNF RP
XP /F56 0 27 3 7 23 9 2 24 0
<FFFFF0 FFFFF0>
PXLC RP
1733 2925 XY F56(\000)S
XP /F87 25 20 1 0 19 14 14 24 0
<0FFFC0 1FFFC0 210800 411000 811000 021000 021000 021000 061000
 041000 0C1000 0C1800 181800 180800>
PXLC RP
1761 2925 XY F87(\031)S 1 x(;)S 6 x(\031)S 1 x F28(\))S 11 x F55
(radians,)S 11 x(and)S 11 x(scaled)S 11 x(to)S 12 x(make)S 12 x(use)S
38 y 327 X(of)S 11 x(all)S 11 x(the)S 12 x(bits)S 11 x(in)S 11 x(an)S
11 x(integer)S 11 x(word\320for)S 11 x(example,)S 11 x(scaled)S 11 x
(to)S 11 x F28([)S F56(\000)S
XP /F58 51 21 2 0 19 25 25 24 0
<07E000 1FFC00 7FFE00 781F00 780F00 780700 000700 000F00 000F00
 003E00 07FC00 07F800 07FC00 001E00 000700 000780 000380 000380
 F00380 F00780 F00700 F81F00 7FFE00 3FFC00 07E000>
PXLC RP
1154 2963 XY F58(3)S
XP /F58 50 21 2 0 19 25 25 24 0
<07E000 1FF800 7FFE00 783F00 F00F00 F00780 F00380 F00380 000380
 000380 000780 000700 000F00 001E00 003C00 007800 00F000 03E000
 078000 0F0000 1E0380 3C0380 7FFF80 FFFF80 7FFF80>
PXLC RP
1171 2963 XY F58(2)S
XP /F58 55 21 2 0 19 26 26 24 0
<E00000 FFFF80 FFFF80 FFFF80 E00F00 E01E00 001C00 003800 007800
 007000 00E000 00E000 01C000 01C000 01C000 038000 038000 038000
 038000 070000 070000 070000 070000 070000 070000 070000>
PXLC RP
1188 2963 XY F58(7)S
XP /F58 54 21 2 0 19 25 25 24 0
<00F800 03FE00 0FFF00 1F0F00 3E0F00 3C0F00 780600 700000 F00000
 F3F800 EFFE00 FFFE00 F80F00 F00780 F00780 E00380 F00380 F00380
 700380 780780 780F00 3C1F00 1FFE00 0FF800 03E000>
PXLC RP
1206 2963 XY F58(6)S
XP /F58 56 21 2 0 19 25 25 24 0
<07F000 1FFC00 3FFE00 7C1F00 F00780 E00380 E00380 E00380 700700
 7C1F00 1FFC00 07F000 1FFC00 3C1E00 700700 F00780 E00380 E00380
 E00380 F00780 700700 7C1F00 3FFE00 1FFC00 07F000>
PXLC RP
1223 2963 XY F58(8)S 1 x F87(;)S 5 x F58(32767)S
XP /F28 93 11 0 -10 7 31 41 8 0
<FE FE 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 FE FE>
PXLC RP
1344 2963 XY F28(])S F55(.)S 15 x(Thus,)S 11 x(a)S 11 x(full)S 11 x
(cycle)S 11 x(in)S 11 x(bams)S 11 x(is)S 11 x F58(2)S
XP /F58 46 21 8 0 13 5 5 8 0
<70 F8 F8 F8 70>
PXLC RP
1794 2963 XY F58(.)S
XP /F58 48 21 2 0 19 25 25 24 0
<03E000 0FF800 1FFC00 1E3C00 380E00 780F00 700700 700700 E00380
 E00380 E00380 E00380 E00380 E00380 E00380 E00380 F00780 700700
 700700 780F00 3C1E00 1E3C00 1FFC00 0FF800 03E000>
PXLC RP
1812 2963 XY F58(0)S F55(,)S 11 x(not)S 11 x F58(1.0)S 1 x F55(.)S
15 x(Since)S 11 x(a)S
XP /F58 67 21 2 0 19 25 25 24 0
<01F180 07FF80 0FFF80 1F0F80 3C0780 780780 780380 700380 F00000
 E00000 E00000 E00000 E00000 E00000 E00000 E00000 F00000 700380
 780380 780380 3C0780 1F0F00 0FFE00 07FC00 01F000>
PXLC RP
2088 2963 XY F58(C)S
XP /F58 89 21 1 0 20 25 25 24 0
<FE0FE0 FF1FE0 FE0FE0 1C0700 1C0700 0E0E00 0E0E00 071C00 071C00
 071C00 03B800 03B800 01F000 01F000 00E000 00E000 00E000 00E000
 00E000 00E000 00E000 00E000 03F800 07FC00 03F800>
PXLC RP
2105 2963 XY F58(YC)S
XP /F58 76 21 1 0 20 25 25 24 0
<FFC000 FFC000 FFC000 1C0000 1C0000 1C0000 1C0000 1C0000 1C0000
 1C0000 1C0000 1C0000 1C0000 1C0000 1C0000 1C0000 1C0000 1C0040
 1C00E0 1C00E0 1C00E0 1C00E0 FFFFE0 FFFFE0 FFFFE0>
PXLC RP
2140 2963 XY F58(L)S
XP /F58 69 21 1 0 20 25 25 24 0
<7FFFC0 FFFFC0 7FFFC0 1C01C0 1C01C0 1C01C0 1C01C0 1C0000 1C0000
 1C1C00 1C1C00 1FFC00 1FFC00 1FFC00 1C1C00 1C1C00 1C0000 1C00E0
 1C00E0 1C00E0 1C00E0 1C00E0 7FFFE0 FFFFE0 7FFFE0>
PXLC RP
2158 2963 XY F58(E)S 11 x F55(of)S 11 x F58(2.0)S 37 y 327 X F55
(does)S 11 x(not)S 11 x(begin)S 11 x(to)S 11 x(suggest)S 11 x(the)S
12 x(real)S 11 x(utility)S 11 x(of)S 11 x(bams,)S 11 x(the)S 11 x
(examples)S 11 x(involving)S 11 x(bams)S 11 x(were)S 11 x(omitted)S
11 x(in)S 11 x(Draft)S 11 x(1.2)S 12 x(instead)S 11 x(of)S 11 x
(being)S 11 x(corrected.)S
XP /F6 /CM-Times-Roman 41.511 11 DF RP
1292 3128 XY F6(6)S
%%PageTrailer
/paper-automatic true SPS 1 PP EP
%%PageBoundingBox: 78 39 546 718

%%PageBoundingBox: (atend)
%%BeginPageSetup
1000 BP 3300 2550 PM /paper-automatic false SPS 410 0 XY
%%EndPageSetup
410 342 XY F6(It)S 16 x(turns)S 16 x(out,)S 17 x(in)S 16 x(fact,)S
17 x(that)S 16 x(if)S 16 x(the)S 16 x(default-value)S 16 x(method)S
16 x(had)S 16 x(been)S 16 x(employed)S 16 x(for)S
XP /F53 /cmtt10 300 41.5 41.5 128 [0 -10 22 29] PXLF RP
XP /F53 67 22 2 0 19 25 25 24 0
<01F180 07FF80 0FFF80 1F0F80 3C0780 780780 780380 700380 F00000
 E00000 E00000 E00000 E00000 E00000 E00000 E00000 F00000 700380
 780380 780380 3C0780 1F0F00 0FFE00 07FC00 01F000>
PXLC RP
1745 342 XY F53(C)S
XP /F53 89 22 1 0 20 25 25 24 0
<FE0FE0 FF1FE0 FE0FE0 1C0700 1C0700 0E0E00 0E0E00 071C00 071C00
 071C00 03B800 03B800 01F000 01F000 00E000 00E000 00E000 00E000
 00E000 00E000 00E000 00E000 03F800 07FC00 03F800>
PXLC RP
1767 342 XY F53(YC)S
XP /F53 76 22 1 0 20 25 25 24 0
<FFC000 FFC000 FFC000 1C0000 1C0000 1C0000 1C0000 1C0000 1C0000
 1C0000 1C0000 1C0000 1C0000 1C0000 1C0000 1C0000 1C0000 1C0040
 1C00E0 1C00E0 1C00E0 1C00E0 FFFFE0 FFFFE0 FFFFE0>
PXLC RP
1810 342 XY F53(L)S
XP /F53 69 22 1 0 20 25 25 24 0
<7FFFC0 FFFFC0 7FFFC0 1C01C0 1C01C0 1C01C0 1C01C0 1C0000 1C0000
 1C1C00 1C1C00 1FFC00 1FFC00 1FFC00 1C1C00 1C1C00 1C0000 1C00E0
 1C00E0 1C00E0 1C00E0 1C00E0 7FFFE0 FFFFE0 7FFFE0>
PXLC RP
1832 342 XY F53(E)S 16 x F6(in)S 16 x(this)S 16 x(standard,)S 17 x
(and)S 16 x(an)S 49 y 327 X(implementation)S 17 x(used)S 17 x(that)S
17 x(value)S 17 x(as)S 17 x(if)S 17 x(it)S 17 x(were)S 17 x(the)S 
17 x(true)S 17 x(period,)S 18 x(then)S 17 x(the)S 17 x(range)S 17 x
(of)S 17 x(values)S 17 x(of)S
XP /F53 88 22 1 0 20 25 25 24 0
<7F1F80 7F3F80 7F1F80 0E1E00 0E1C00 073C00 073800 03B800 03F000
 01F000 01E000 00E000 01E000 01F000 03F000 03B800 07B800 071C00
 071C00 0E0E00 0E0E00 1C0700 7F1FC0 FF1FE0 7F1FC0>
PXLC RP
1890 391 XY F53(X)S 17 x F6(for)S 17 x(which)S 16 x(the)S 17 x
(stated)S 50 y 327 X(accuracy)S 19 x(could)S 18 x(be)S 19 x
(achieved)S 18 x(would)S 18 x(not)S 18 x(even)S 18 x(extend)S 18 x
(as)S 18 x(far)S 18 x(as)S 18 x(one)S 18 x(complete)S 18 x(period)S
18 x(away)S 18 x(from)S 18 x(the)S 18 x(origin.)S 31 x(This)S 50 y 
327 X(also)S 17 x(means)S 17 x(that)S 17 x(an)S 17 x(implementation)S
17 x(that)S 18 x(calculates)S
XP /F53 83 22 2 0 19 25 25 24 0
<07E300 1FFF00 7FFF00 781F00 F00F00 E00700 E00700 E00000 F00000
 780000 7F8000 1FF000 07FC00 00FE00 000F00 000780 000380 000380
 E00380 E00380 F00780 F80F00 FFFE00 FFFC00 C7F000>
PXLC RP
1208 491 XY F53(S)S
XP /F53 73 22 3 0 18 25 25 16 0
<FFFE FFFE FFFE 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380
 0380 0380 0380 0380 0380 0380 0380 0380 0380 FFFE FFFE FFFE>
PXLC RP
1230 491 XY F53(I)S
XP /F53 78 22 1 0 20 25 25 24 0
<7E1FC0 FF3FE0 7F1FC0 1D0700 1D8700 1D8700 1D8700 1DC700 1DC700
 1CC700 1CC700 1CE700 1CE700 1CE700 1C6700 1C6700 1C7700 1C7700
 1C3700 1C3700 1C3700 1C1700 7F1F00 FF9F00 7F0F00>
PXLC RP
1252 491 XY F53(N)S
XP /F53 40 22 6 -4 17 29 33 16 0
<00E0 01E0 07C0 0700 0F00 1E00 3C00 3800 7800 7000 7000 7000 F000
 E000 E000 E000 E000 E000 E000 E000 F000 7000 7000 7000 7800 3800
 3C00 1E00 0F00 0700 07C0 01E0 00E0>
PXLC RP
1274 491 XY F53(\(X)S
XP /F53 41 22 4 -4 15 29 33 16 0
<E000 F000 7C00 1C00 1E00 0F00 0780 0380 03C0 01C0 01C0 01C0 01E0
 00E0 00E0 00E0 00E0 00E0 00E0 00E0 01E0 01C0 01C0 01C0 03C0 0380
 0780 0F00 1E00 1C00 7C00 F000 E000>
PXLC RP
1317 491 XY F53(\))S 17 x F6(by)S 17 x(calling)S 17 x F53(SIN\(X)S
XP /F53 44 22 7 -6 14 5 11 8 0
<38 7C 7E 7E 3E 0E 1E 3C 7C F8 60>
PXLC RP
1654 491 XY F53(,)S
XP /F53 80 22 1 0 19 25 25 24 0
<7FF800 FFFE00 7FFF00 1C0F80 1C0380 1C03C0 1C01C0 1C01C0 1C01C0
 1C03C0 1C0380 1C0F80 1FFF00 1FFE00 1FF800 1C0000 1C0000 1C0000
 1C0000 1C0000 1C0000 1C0000 7F0000 FF8000 7F0000>
PXLC RP
1697 491 XY F53(P\))S 17 x F6(for)S 17 x(some)S 17 x(value)S 17 x
(of)S 17 x F53(P)S 17 x F6(meant)S 18 x(to)S 50 y 327 X(approximate)S
13 x(2)S
XP /F21 /cmmi10 300 41.5 41.5 128 [-1 -10 43 31] PXLNF RP
XP /F21 25 24 2 0 23 18 18 24 0
<0FFFF8 1FFFF8 3FFFF0 608400 408400 808C00 010C00 010C00 030C00
 030C00 020C00 061C00 061C00 0E1C00 0C1C00 1C0E00 1C0E00 180C00>
PXLC RP
569 541 XY F21(\031)S 1 x F6(,)S 14 x(including)S 13 x(a)S 14 x
(literal)S 14 x(with)S 14 x(an)S 14 x(arbitrarily)S 14 x(lar)S -1 x
(ge)S 15 x(number)S 13 x(of)S 14 x(digits,)S 14 x(will)S 14 x(fail)S
14 x(to)S 14 x(meet)S 14 x(the)S 14 x(speci\014cations.)S 59 y 410 X
(All)S 14 x(of)S 14 x(the)S 15 x(other)S 14 x(standard)S 14 x
(periods)S 15 x(are)S 15 x(given)S 14 x(by)S 14 x F53(CYCLE)S 14 x 
F6(values)S 14 x(that)S 15 x(are)S 15 x(representable)S 15 x(on)S 
14 x(all)S 14 x(machines.)S 21 x(W)S -2 x(ith)S 14 x(the)S 50 y 
327 X(aid)S 16 x(of)S 16 x(an)S 16 x(appropriate)S 17 x
(\252exact-remainder)S
(\272)S 16 x(algorithm,)S 17 x(implementations)S 16 x(of)S 16 x(the)S
16 x(explicit-)S F53(CYCLE)S 16 x F6(forms)S 17 x(of)S 17 x(the)S 
16 x(functions)S 50 y 327 X(will)S 11 x(have)S 11 x(no)S 12 x(dif)S
-1 x(\014culty)S 12 x(reducing)S 12 x(arbitrarily)S 12 x(lar)S -1 x
(ge)S 13 x(values)S 11 x(of)S 12 x F53(X)S 11 x F6(to)S 11 x(the)S
12 x(primary)S 12 x(interval)S 12 x(near)S 12 x(the)S 11 x(origin)S
12 x(without)S 12 x(error.)S 18 x(\(In)S 50 y 327 X(fact,)S 14 x
(the)S 15 x(exact-remainder)S 14 x(function)S 14 x(is)S 15 x
(included)S 14 x(in)S 14 x(a)S 14 x(generic)S 14 x(package)S 15 x
(of)S 14 x(\015oating-point)S 15 x(manipulation)S 15 x(functions)S
15 x(called)S
XP /F53 71 22 2 0 20 25 25 24 0
<03E300 07FF00 1FFF00 3E1F00 3C0F00 780F00 780700 700700 F00000
 E00000 E00000 E00000 E00000 E03F80 E07FC0 E03F80 F00700 700700
 780F00 780F00 3C0F00 3E1F00 1FFF00 07FF00 03E700>
PXLC RP
327 799 XY F53(GENE)S
XP /F53 82 22 1 0 21 25 25 24 0
<7FE000 FFF800 7FFC00 1C1E00 1C0F00 1C0700 1C0700 1C0700 1C0700
 1C0F00 1C1E00 1FFC00 1FF800 1FFC00 1C1C00 1C0E00 1C0E00 1C0E00
 1C0E00 1C0E20 1C0E70 1C0E70 7F07E0 FF87E0 7F03C0>
PXLC RP
414 799 XY F53(RIC)S
XP /F53 95 22 2 -4 19 -1 3 24 0
<FFFF80 FFFF80 FFFF80>
PXLC RP
480 799 XY F53(_PRI)S
XP /F53 77 22 1 0 20 25 25 24 0
<FC07E0 FE0FE0 FE0FE0 3A0B80 3B1B80 3B1B80 3B1B80 3B1B80 3B1B80
 3BBB80 39B380 39B380 39B380 39B380 39F380 38E380 38E380 380380
 380380 380380 380380 380380 FE0FE0 FE0FE0 FE0FE0>
PXLC RP
567 799 XY F53(MI)S
XP /F53 84 22 1 0 20 25 25 24 0
<7FFFE0 FFFFE0 FFFFE0 E0E0E0 E0E0E0 E0E0E0 E0E0E0 00E000 00E000
 00E000 00E000 00E000 00E000 00E000 00E000 00E000 00E000 00E000
 00E000 00E000 00E000 00E000 07FC00 0FFE00 07FC00>
PXLC RP
610 799 XY F53(TI)S
XP /F53 86 22 1 0 20 25 25 24 0
<FE0FE0 FF1FE0 FE0FE0 380380 1C0700 1C0700 1C0700 1C0700 0E0E00
 0E0E00 0E0E00 0E0E00 060C00 071C00 071C00 071C00 071C00 031800
 03B800 03B800 03B800 01B000 01F000 01F000 00E000>
PXLC RP
654 799 XY F53(VE_)S
XP /F53 70 22 1 0 20 25 25 24 0
<FFFFE0 FFFFE0 FFFFE0 1C00E0 1C00E0 1C00E0 1C00E0 1C0000 1C0000
 1C1C00 1C1C00 1FFC00 1FFC00 1FFC00 1C1C00 1C1C00 1C0000 1C0000
 1C0000 1C0000 1C0000 1C0000 FF8000 FFC000 FF8000>
PXLC RP
719 799 XY F53(F)S
XP /F53 85 22 0 0 21 25 25 24 0
<7F07F0 FF8FF8 7F07F0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0
 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0
 1C01C0 0E0380 0E0380 070700 07FF00 03FE00 00F800>
PXLC RP
741 799 XY F53(UNCTI)S
XP /F53 79 22 2 0 19 25 25 24 0
<1FFC00 3FFE00 7FFF00 780F00 F00780 E00380 E00380 E00380 E00380
 E00380 E00380 E00380 E00380 E00380 E00380 E00380 E00380 E00380
 E00380 F00780 F00780 780F00 7FFF00 3FFE00 1FFC00>
PXLC RP
850 799 XY F53(ONS)S 17 x F6(also)S 18 x(being)S 17 x(proposed)S 
17 x(for)S 17 x(standardization;)S 19 x(see)S 18 x([18].\))S 30 x
(That)S 18 x(is)S 18 x(why)S 17 x(the)S 18 x(explicit-)S 50 y 327 X 
F53(CYCLE)S 14 x F6(forms)S 16 x(of)S 16 x(the)S 15 x(trigonometric)S
16 x(functions)S 16 x(have)S 16 x(no)S 16 x(restrictions)S 16 x(on)S
16 x(the)S 15 x(range)S 16 x(of)S 16 x(values)S 16 x(of)S 16 x F53
(X)S 15 x F6(for)S 16 x(which)S 16 x(the)S 15 x(stated)S 50 y 327 X
(accuracy)S 19 x(requirements)S 19 x(must)S 19 x(hold.)S 60 y 410 X
(It)S 15 x(might)S 15 x(have)S 15 x(been)S 15 x(reasonable)S 15 x
(to)S 15 x(employ)S 15 x(the)S 15 x(default-value)S 15 x(method)S 
15 x(for)S 15 x F53(CYCLE)S 14 x F6(and)S 15 x(expect)S 15 x
(implementations)S 15 x(to)S 49 y 327 X(meet)S 15 x(the)S 15 x
(accuracy)S 15 x(requirements)S 15 x(over)S 15 x(the)S 15 x(given)S
15 x(range)S 16 x(of)S 16 x(values)S 15 x(for)S 16 x F53(X)S 15 x 
F6(by)S 15 x(recognizing)S 15 x(when)S 16 x F53(CYCLE)S 14 x F6(has)S
16 x(the)S 16 x(default)S 50 y 327 X(value)S 18 x(but)S 19 x(not)S
18 x(using)S 18 x(it)S 19 x(\(in)S 18 x(that)S 19 x(case\))S 18 x
(as)S 18 x(if)S 19 x(it)S 18 x(were)S 18 x(the)S 18 x(true)S 18 x
(period)S
(\320i.e.,)S 19 x(by)S 18 x(using)S 18 x(the)S 18 x(default)S 18 x
(value)S 18 x(merely)S 19 x(as)S 19 x(a)S
XP /F7 /CM-Times-Italic 41.511 12 DNF RP
327 1108 XY F7(signal)S 16 x F6(that)S 15 x(a)S 16 x(dif)S -1 x
(ferent)S 16 x(ar)S -1 x(gument-reduction)S 16 x(technique)S 15 x
(should)S 16 x(be)S 16 x(used.)S 25 x(This)S 15 x(was)S 16 x
(actually)S 16 x(considered)S 16 x(but)S 16 x(ultimately)S 50 y 
327 X(abandoned)S 15 x(because)S 16 x(of)S 15 x(the)S 15 x
(possibility)S 15 x(of)S 15 x(non-monotonic)S 15 x(behavior)S 16 x
(as)S 15 x F53(CYCLE)S 14 x F6(sweeps)S 16 x(through)S 15 x(the)S 
15 x(default)S 15 x(value,)S 15 x(and)S 50 y 327 X(because)S 18 x
(of)S 18 x(potential)S 18 x(surprises)S 18 x(that)S 17 x(could)S 
18 x(occur)S 18 x(should)S 18 x(users)S 18 x(supply)S 18 x(an)S 18 x
(explicit)S 18 x F53(CYCLE)S 17 x F6(that)S 18 x(they)S 18 x
(believe)S 18 x(to)S 18 x(be)S 18 x(a)S 49 y 327 X(close)S 16 x
(approximation)S 15 x(to)S 15 x(2)S F21(\031)S 16 x F6(but)S 16 x
(that)S 16 x(is)S 16 x(not)S 15 x(identical)S 16 x(to)S 15 x(the)S
16 x(default)S 15 x(value.)S 23 x(Making)S 16 x F53(CYCLE)S 14 x F6
(an)S 16 x(enumeration)S 16 x(type)S 15 x(was)S 50 y 327 X(also)S 
18 x(considered,)S 19 x(but)S 18 x(that,)S 19 x(too,)S 19 x(was)S 
18 x(abandoned,)S 19 x(lar)S -1 x(gely)S 19 x(because)S 18 x(it)S 
18 x(would)S 18 x(have)S 18 x(limited)S 18 x(the)S 18 x(available)S
17 x(periods)S 17 x(to)S 18 x(a)S 50 y 327 X(\014xed)S 16 x(set;)S
17 x(furthermore,)S 16 x(obtaining)S 15 x(a)S 15 x(numerical)S 16 x
(value)S 15 x(of)S 15 x(the)S 16 x(period)S 15 x(denoted)S 15 x(by)S
15 x(the)S 16 x(enumeration)S 16 x(value)S 16 x(represents)S 16 x
(an)S 50 y 327 X(unnecessary)S 19 x(overhead.)S 59 y 410 X(V)S -5 x
(arious)S 15 x(other)S 15 x(solutions)S 16 x(of)S 16 x(\252the)S 
16 x F53(CYCLE)S 14 x F6(problem\272)S 16 x(were)S 16 x(also)S 16 x
(investigated,)S 16 x(such)S 15 x(as)S 15 x(packaging)S 16 x(the)S
16 x(trigonometric)S 50 y 327 X(functions)S 19 x(and)S 19 x(their)S
20 x(inverses)S 19 x(in)S 19 x(an)S 20 x(inner)S 20 x(generic)S 19 x
(package)S 20 x(having)S 19 x F53(CYCLE)S 18 x F6(as)S 20 x(a)S 19 x
(generic)S 19 x(formal)S 19 x(parameter)S 20 x(\(e.g.,)S 21 x(a)S 
50 y 327 X(generic)S 17 x(formal)S 16 x(object)S 16 x(of)S 17 x
(mode)S 16 x(\252)S
XP /F53 105 22 3 0 19 26 26 16 0
<0180 03C0 03C0 0180 0000 0000 0000 0000 7FC0 7FC0 7FC0 01C0 01C0
 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 7FFF FFFF 7FFF>
PXLC RP
890 1566 XY F53(i)S
XP /F53 110 22 0 0 21 18 18 24 0
<7E3C00 FEFF00 7FFF80 0F8780 0F0380 0F0380 0E0380 0E0380 0E0380
 0E0380 0E0380 0E0380 0E0380 0E0380 0E0380 7FC7F0 FFE7F8 7FC7F0>
PXLC RP
912 1566 XY F53(n)S F6(\272\).)S 26 x(While)S 16 x(these)S 16 x(of)S
-1 x(fered)S 17 x(some)S 16 x(elegant)S 17 x(advantages,)S 17 x
(they)S 17 x(also)S 17 x(had)S 16 x(unacceptable)S 50 y 327 X
(disadvantages.)S 59 y 410 X(The)S 12 x(inverses)S 13 x(of)S 13 x
(the)S 13 x(trigonometric)S 12 x(functions)S 12 x(do)S 12 x(not)S 
13 x(exhibit)S 13 x(the)S 13 x(\252phase)S 12 x(shift\272)S 12 x
(phenomenon)S 12 x(with)S 12 x(respect)S 12 x(to)S 12 x(errors)S 
50 y 327 X(in)S 12 x(their)S 12 x(periods.)S 18 x(For)S 11 x(them,)S
12 x(it)S 12 x(is)S 12 x(suf)S -1 x(\014cient)S 11 x(to)S 11 x
(compute)S 12 x(the)S 11 x(result)S 11 x(as)S 11 x(\(for)S 11 x
(example\))S 11 x(a)S 11 x(fraction)S 11 x(of)S 11 x(a)S 12 x
(period)S 11 x(and)S 12 x(then)S 12 x(scale)S 50 y 327 X(that)S 15 x
(by)S 14 x(multiplying)S 15 x(by)S 15 x F53(CYCLE)S F6(.)S 13 x(The)S
15 x(default-value)S 14 x(method)S 15 x(for)S 15 x(handling)S 15 x
(the)S 15 x(optionality)S 14 x(of)S 15 x F53(CYCLE)S 13 x F6(would)S
15 x(have)S 15 x(posed)S 50 y 327 X(no)S 17 x(problems,)S 18 x(but)S
18 x(subprogram)S 18 x(overloading)S 17 x(was)S 17 x(preferred)S 
17 x(simply)S 18 x(for)S 17 x(reasons)S 17 x(of)S 17 x(uniformity.)S
30 x(The)S 18 x(same)S 18 x(reasoning)S 50 y 327 X(applies)S 18 x
(to)S
XP /F53 66 22 1 0 19 25 25 24 0
<7FF800 FFFE00 7FFF00 1C0F00 1C0780 1C0380 1C0380 1C0380 1C0780
 1C0700 1FFF00 1FFE00 1FFE00 1C1F00 1C0380 1C03C0 1C01C0 1C01C0
 1C01C0 1C01C0 1C03C0 1C0780 7FFF80 FFFF00 7FFC00>
PXLC RP
514 1875 XY F53(B)S
XP /F53 65 22 1 0 20 25 25 24 0
<00E000 01F000 01F000 01B000 01B000 03B800 03B800 03B800 031800
 071C00 071C00 071C00 071C00 071C00 0E0E00 0E0E00 0FFE00 0FFE00
 1FFF00 1C0700 1C0700 1C0700 7F1FC0 FF1FE0 7F1FC0>
PXLC RP
536 1875 XY F53(ASE)S F6(,)S 18 x(in)S 19 x(the)S 19 x(case)S 19 x
(of)S 19 x F53(LOG)S F6(.)S
XP /F52 /CM-Helvetica-BoldOblique 49.813 12 DNF RP
327 2029 XY F52(What)S 16 x(purposes)S 16 x(do)S 17 x(the)S 17 x
(accuracy)S 17 x(requirements)S 17 x(serve,)S 16 x(and)S 16 x(how)S
17 x(were)S 17 x(they)S 63 y 327 X(determined?)S 2175 Y 410 X F6
(One)S 19 x(of)S 19 x(the)S 19 x(signi\014cant)S 19 x(advances)S 
19 x(represented)S 19 x(by)S 19 x(this)S 19 x(proposal)S 19 x(is)S
19 x(its)S 20 x(inclusion)S 19 x(of)S 19 x(accuracy)S 19 x
(requirements)S 19 x(for)S 49 y 327 X(implementations)S 19 x(of)S 
19 x(the)S 19 x(elementary)S 19 x(functions.)S 36 x(Not)S 19 x
(usually)S 20 x(considered)S 20 x(in)S 20 x(formal)S 20 x
(speci\014cations)S 19 x(of)S 19 x(mathematical)S 50 y 327 X
(software,)S 12 x(accuracy)S 11 x(requirements)S 11 x(are)S 11 x
(made)S 11 x(possible)S 11 x(lar)S -1 x(gely)S 12 x(by)S 11 x(the)S
11 x(model)S 11 x(\(adapted)S 11 x(from)S 11 x(Brown)S 12 x([3]\))S
11 x(of)S 11 x(real)S 12 x(arithmetic)S 50 y 327 X(incorporated)S 
10 x(into)S 10 x(Ada,)S 11 x(and)S 10 x(the)S 10 x(form)S 10 x(they)S
10 x(take)S 10 x(is)S 10 x(in\015uenced)S 10 x(by)S 10 x(the)S 10 x
(availability)S 10 x(of)S 9 x(attributes)S 10 x(that)S 10 x
(characterize)S 10 x(properties)S 50 y 327 X(of)S 17 x(Ada)S 17 x
(implementations)S 17 x(relative)S 17 x(to)S 17 x(that)S 17 x
(model.)S 29 x(Because)S 17 x(the)S 17 x(accuracy)S 18 x
(requirements)S 17 x(will)S 17 x(have)S 18 x(an)S 17 x(ef)S -1 x
(fect)S 17 x(on)S 17 x(what)S 50 y 327 X(implementors)S 15 x(can)S
15 x(do,)S 15 x(they)S 15 x(will)S 15 x(translate)S 15 x(into)S 15 x
(some)S 15 x(assurance)S 15 x(of)S 15 x(quality)S 15 x(for)S 15 x
(the)S 15 x(user;)S 15 x(in)S 15 x(addition,)S 15 x(they)S 15 x
(will)S 15 x(permit)S 49 y 327 X(users)S 15 x(to)S 14 x(carry)S 15 x
(out)S 15 x(error)S 15 x(analyses)S 15 x(of)S 15 x(programs)S 15 x
(containing)S 15 x(references)S 15 x(to)S 15 x(the)S 15 x
(elementary)S 15 x(functions.)S 60 y 410 X(T)S -3 x(wo)S 13 x(kinds)S
14 x(of)S 13 x(accuracy)S 13 x
(requirements\320maximum-relative-error)S 14 x(bounds)S 13 x(and)S
13 x(\252prescribed)S 13 x(results\272\320are)S 14 x(included.)S 
50 y 327 X(All)S 15 x(of)S 15 x(the)S 15 x(functions)S 15 x(have)S
15 x(maximum-relative-error)S 15 x(bounds)S 15 x(that)S 14 x(limit)S
15 x(the)S 15 x(relative)S 15 x(error)S 15 x(in)S 15 x(the)S 15 x
(computed)S 15 x(result,)S 15 x(over)S 50 y 327 X(the)S 12 x(whole)S
12 x(range)S 12 x(of)S 12 x(valid)S 13 x(ar)S -1 x(guments)S 14 x
(\(or,)S 12 x(in)S 12 x(some)S 13 x(cases,)S 12 x(over)S 13 x(a)S 
13 x(stated)S 12 x(portion)S 13 x(of)S 13 x(the)S 12 x(range\).)S 
18 x(In)S 13 x(addition,)S 13 x(the)S 13 x(required)S 49 y 327 X
(results)S 15 x(at)S 15 x(certain)S 15 x(key)S 15 x(ar)S -1 x
(gument)S 16 x(values)S 15 x(are)S 15 x(prescribed)S 15 x(more)S 
15 x(precisely)S 15 x(for)S 15 x(some)S 15 x(of)S 15 x(the)S 15 x
(functions.)S 60 y 410 X(The)S 22 x(maximum-relative-error)S 23 x
(bounds)S 22 x(were)S 23 x(determined)S 23 x(by)S 22 x(numerical)S
23 x(analysts)S 23 x(having)S 23 x(broad)S 23 x(knowledge)S 22 x(of)S
50 y 327 X(algorithms)S 21 x(and)S 21 x(implementation)S 21 x
(techniques)S 21 x(for)S 21 x(the)S 21 x(elementary)S 21 x
(functions.)S 40 x(They)S 21 x(are,)S 23 x(of)S 21 x(course,)S 23 x
(tailored)S 21 x(to)S 21 x(the)S 49 y 327 X(speci\014c)S 17 x
(properties)S 17 x(of)S 17 x(each)S 17 x(function.)S 28 x(They)S 
17 x(are)S 17 x(considered)S 17 x(to)S 17 x(be)S 17 x(realistic)S 
17 x(and)S 17 x(to)S 17 x(give)S 17 x(implementors)S 17 x(some)S 
17 x(leeway)S 50 y 327 X(for)S 18 x(creativity)S 17 x(and)S 18 x
(individualism)S 18 x(in)S 17 x(regard)S 18 x(to)S 18 x(the)S 17 x
(trade-of)S -1 x(f)S 17 x(between)S 18 x(accuracy)S 18 x(and)S 18 x
(ef)S -1 x(\014ciency.)S 29 x(While)S 17 x(they)S 17 x(do)S 17 x
(rule)S 50 y 327 X(out)S 14 x(na)S -1 x(\177)S -13 x(\020ve)S 14 x
(implementations,)S 14 x(they)S 15 x(have)S 14 x(proven)S 14 x(to)S
14 x(be)S 14 x(conservative)S 14 x(in)S 14 x(the)S 14 x(sense)S 15 x
(that)S 14 x(it)S 14 x(is)S 14 x(not)S 15 x(especially)S 14 x(dif)S
-1 x(\014cult)S 14 x(for)S 15 x(a)S 50 y 327 X(knowledgeable)S 15 x
(implementor)S 15 x(to)S 15 x(produce)S 15 x(implementations)S 15 x
(exceeding)S 15 x(the)S 15 x(accuracy)S 15 x(requirements.)S 3127 Y 
1292 X(7)S
%%PageTrailer
/paper-automatic true SPS 1 PP EP
%%PageBoundingBox: 78 39 546 718

%%PageBoundingBox: (atend)
%%BeginPageSetup
1000 BP 3300 2550 PM /paper-automatic false SPS 410 0 XY
%%EndPageSetup
410 342 XY F6(The)S 24 x(maximum-relative-error)S 24 x(bounds)S 24 x
(are)S 24 x(based)S 24 x(on)S 24 x(the)S 24 x(implemented)S 24 x
(precision)S 24 x(of)S 24 x(the)S 24 x(generic)S 25 x(actual)S 24 x
(pa-)S 49 y 327 X(rameter)S 23 x(associated)S 23 x(with)S 23 x F53
(FLOAT_TYPE)S 21 x F6(rather)S 23 x(than)S 23 x(on)S 23 x(its)S 23 x
(declared)S 23 x(precision.)S 47 x(This)S 23 x(is)S 23 x
(re\015ected)S 23 x(in)S 23 x(the)S 23 x(use)S 23 x(of)S 50 y 327 X 
F53(FLOAT_TYPE)S
XP /F53 13 22 8 14 13 26 12 8 0
<20 70 F8 70 70 70 70 70 70 70 70 70>
PXLC RP
545 441 XY F53(\015BASE\015EPSILON)S -3 x F6(,)S 21 x(rather)S 20 x
(than)S 20 x F53(FLOAT_TYPE\015EPSILON)S -4 x F6(,)S 21 x(in)S 20 x
(the)S 21 x(formulas)S 20 x(for)S 20 x(maximum)S 20 x(relative)S 
20 x(error.)S 50 y 327 X(Ef)S -1 x(fectively,)S 16 x(those)S 15 x
(formulas)S 15 x(constrain)S 16 x(the)S 16 x(computed)S 15 x(result)S
16 x(to)S 16 x(lie)S 16 x(within)S 15 x(an)S 16 x(appropriate)S 15 x
(number)S 16 x(of)S 16 x(safe)S 15 x(intervals)S 15 x(of)S 50 y 
327 X(the)S 18 x(mathematical)S 18 x(result,)S 20 x(just)S 18 x(as)S
18 x(Ada)S 18 x(does)S 19 x(for)S 19 x(the)S 19 x(prede\014ned)S 
19 x(arithmetic)S 19 x(operators,)S 20 x(which)S 18 x(is)S 18 x
(what)S 19 x(motivated)S 18 x(the)S 50 y 327 X(use)S 16 x(of)S 16 x
(the)S 16 x F53(BASE)S 15 x F6(attribute)S 16 x(in)S 16 x(these)S 
16 x(formulas.)S 24 x(In)S 16 x(practice,)S 16 x(it)S 16 x(means)S
16 x(that)S 16 x(the)S 16 x(approximation)S 16 x(technique)S 16 x
(employed)S 15 x(by)S 49 y 327 X(the)S 15 x(implementation)S 15 x
(must)S 15 x(be)S 15 x(appropriate)S 15 x(for)S 15 x(the)S 16 x
(precision)S 15 x(of)S 15 x(the)S 15 x(base)S 15 x(type)S 15 x(of)S
15 x F53(FLOAT_TYPE)S 13 x F6(rather)S 15 x(than)S 15 x(just)S 15 x
(that)S 15 x(of)S 50 y 327 X F53(FLOAT_TYPE)S 12 x F6
(itself\320i.e.,)S 14 x(it)S 14 x(must)S 14 x(be)S 14 x(capable)S 
14 x(of)S 14 x(exploiting)S 14 x(all)S 14 x(the)S 14 x(precision)S
14 x(inherent)S 14 x(in)S 14 x(the)S 14 x(underlying)S 14 x(base)S
14 x(type.)S 62 y 410 X(Error)S 14 x(analyses)S 15 x(of)S 15 x
(programs)S 15 x(containing)S 15 x(the)S 14 x(elementary)S 14 x
(functions,)S 15 x(using)S 15 x(the)S 15 x(maximum-relative-error)S
15 x(bounds)S 14 x(as)S 49 y 327 X(given)S 15 x(in)S 14 x(the)S 15 x
(speci)S
(\014cations)S 14 x(of)S 14 x F53(GENERIC_ELEMENTARY_FUNCTIONS)S F6
(,)S 8 x(are)S 14 x(qualitatively)S 14 x(portable)S 15 x(in)S 15 x
(the)S 15 x(sense)S 14 x(that)S 15 x(their)S 50 y 327 X(form)S 11 x
(does)S 11 x(not)S 11 x(change)S 11 x(from)S 11 x(one)S 11 x(Ada)S
11 x(implementation)S 11 x(to)S 11 x(another.)S 18 x(They)S 11 x
(are)S 11 x(not)S 11 x(quantitatively)S 11 x(portable,)S 12 x
(however,)S 12 x(since)S 50 y 327 X(the)S 14 x(numerical)S 15 x
(size)S 14 x(of)S 15 x(the)S 15 x(maximum-relative-error)S 15 x
(bounds)S 14 x(depends)S 15 x(on)S 14 x(the)S 15 x(Ada)S 14 x
(implementation's)S 15 x(mapping)S 15 x(between)S 50 y 327 X
(user-declared)S 12 x(\015oating-point)S 11 x(subtypes)S 12 x(and)S
12 x(the)S 12 x(prede\014ned)S 12 x(\015oating-point)S 12 x(types.)S
18 x(Nevertheless,)S 12 x(a)S 12 x(quantitatively)S 12 x(portable)S
50 y 327 X(error)S 9 x(analysis)S 9 x(can)S 9 x(also)S 9 x(be)S 9 x
(carried)S 9 x(out)S 9 x(merely)S 10 x(by)S 10 x(substituting)S 10 x 
F53(FLOAT_TYPE\015EPSILON)S 5 x F6(for)S 10 x F53
(FLOAT_TYPE\015BASE)S
(\015EPSILON)S 49 y 327 X F6(wherever)S 15 x(it)S 15 x(arises)S 15 x
(in)S 15 x(the)S 15 x(analysis.)S 21 x(The)S 15 x(choice)S 15 x(is)S
14 x(equivalent)S 15 x(to)S 15 x(carrying)S 15 x(out)S 14 x(the)S 
15 x(error)S 15 x(analysis)S 14 x(either)S 14 x(at)S 15 x(the)S 14 x
(level)S 14 x(of)S 50 y 327 X(safe)S 14 x(numbers)S 14 x(or)S 14 x
(at)S 14 x(the)S 15 x(level)S 14 x(of)S 14 x(model)S 14 x(numbers;)S
15 x(both)S 15 x(are)S 14 x(qualitatively)S 14 x(portable,)S 15 x
(but)S 14 x(only)S 14 x(the)S 14 x(latter)S 14 x(is)S 14 x
(quantitatively)S 50 y 327 X(portable.)S 19 x(Ada)S 13 x(gives)S 
13 x(analysts)S 13 x(that)S 13 x(choice)S 14 x(when)S 13 x(they)S 
13 x(can)S 13 x(\252see\272)S 13 x(all)S 13 x(the)S 13 x(way)S 14 x
(down)S 13 x(to)S 13 x(the)S 13 x(level)S 13 x(of)S 13 x(the)S 13 x
(basic)S 13 x(operations)S 50 y 327 X(and)S 14 x(prede\014ned)S 15 x
(operators)S 14 x(in)S 14 x(their)S 14 x(Ada)S 15 x(programs;)S 14 x
(the)S 14 x(proposed)S 14 x(standard)S 15 x(for)S 14 x(the)S 14 x
(elementary)S 14 x(functions)S 15 x(preserves)S 15 x(that)S 50 y 
327 X(choice\320without)S 17 x(requiring)S 17 x(one)S 18 x(to)S 17 x
(look)S 17 x(inside)S 17 x(implementations)S 17 x(of)S 17 x(the)S 
17 x(elementary)S 17 x(functions\320by)S 18 x(constraining)S 17 x
(and)S 50 y 327 X(describing)S 16 x(their)S 16 x(behavior)S 17 x(at)S
16 x(the)S 17 x(level)S 16 x(of)S 16 x(safe)S 16 x(numbers)S 16 x
(\(from)S 16 x(which)S 16 x(their)S 16 x(behavior)S 16 x(at)S 16 x
(the)S 16 x(level)S 16 x(of)S 16 x(model)S 16 x(numbers)S 49 y 327 X
(can)S 19 x(be)S 19 x(trivially)S 19 x(inferred\).)S 62 y 410 X(A)S
12 x(considerable)S 12 x(amount)S 11 x(of)S 11 x(debate)S 11 x(was)S
12 x(necessary)S 12 x(to)S 12 x(reach)S 12 x(consensus)S 12 x(on)S
11 x(this)S 12 x(form)S 11 x(of)S 11 x(the)S 12 x
(maximum-relative-error)S 50 y 327 X(bounds.)S 24 x(Some)S 16 x(of)S
16 x(the)S 15 x(contributors)S 15 x(to)S 15 x(this)S 16 x(proposal)S
15 x(felt,)S 16 x(and)S 15 x(still)S 16 x(feel,)S 16 x(that)S 15 x
(an)S 16 x(implementation)S 16 x(should)S 15 x(be)S 16 x(permitted)S
49 y 327 X(to)S 18 x(use)S 18 x(coarser)S 18 x(and)S 18 x(coarser)S
18 x(approximation)S 18 x(methods)S 18 x(as)S 18 x(the)S 18 x
(precision)S 18 x(of)S 18 x F53(FLOAT_TYPE)S 16 x F6(decreases)S 
18 x(\(e.g.,)S 19 x(in)S 18 x(dif)S -1 x(ferent)S 50 y 327 X
(instantiations\),)S 17 x(even)S 17 x(when)S 17 x(the)S 17 x
(precision)S 16 x(of)S 17 x(its)S 17 x(base)S 17 x(type)S 17 x
(remains)S 17 x(the)S 17 x(same.)S 28 x(For)S 17 x(example,)S 18 x
(a)S 17 x(graphics)S 17 x(application)S 50 y 327 X(might)S 12 x
(well)S 12 x(not)S 13 x(need)S 13 x(6-digit)S 13 x(accuracy)S 13 x
(in)S 12 x(the)S 13 x(elementary)S 12 x(functions)S 12 x(when)S 13 x
(the)S 13 x(user's)S 12 x(generic)S 12 x(actual)S 13 x(subtype)S 
12 x(is)S 12 x(declared)S 50 y 327 X(as)S 17 x(\252)S
XP /F53 100 22 1 0 21 25 25 24 0
<003F00 007F00 003F00 000700 000700 000700 000700 03C700 0FF700
 3FFF00 3C1F00 780F00 F00700 F00700 E00700 E00700 E00700 E00700
 F00700 F00F00 781F00 7C3F00 3FFFE0 1FF7F0 07C7E0>
PXLC RP
398 1660 XY F53(di)S
XP /F53 103 22 1 -10 20 18 28 24 0
<03E3C0 0FFFE0 1FFFE0 1E3CC0 3C1E00 380E00 380E00 380E00 3C1E00
 1E3C00 1FFC00 1FF800 3BE000 380000 380000 1FFC00 1FFF00 3FFFC0
 7803C0 F001E0 E000E0 E000E0 E000E0 F001E0 7C07C0 3FFF80 0FFE00
 03F800>
PXLC RP
441 1660 XY F53(gi)S
XP /F53 116 22 1 0 18 23 23 24 0
<030000 070000 070000 070000 070000 7FFF00 FFFF00 FFFF00 070000
 070000 070000 070000 070000 070000 070000 070100 070380 070380
 070780 078780 03FF00 03FE00 00F800>
PXLC RP
485 1660 XY F53(t)S
XP /F53 115 22 3 0 18 18 18 16 0
<0FEC 3FFC 7FFC F03C E01C E01C F000 7F80 1FF0 07FC 003E E00E E00E
 F00E F81E FFFC FFF8 C7E0>
PXLC RP
507 1660 XY F53(s)S
XP /F53 50 22 2 0 19 25 25 24 0
<07E000 1FF800 7FFE00 783F00 F00F00 F00780 F00380 F00380 000380
 000380 000780 000700 000F00 001E00 003C00 007800 00F000 03E000
 078000 0F0000 1E0380 3C0380 7FFF80 FFFF80 7FFF80>
PXLC RP
557 1660 XY F53(2)S F6(\272,)S 18 x(and)S 18 x(the)S 18 x(user)S 
18 x(might)S 18 x(not)S 18 x(be)S 18 x(willing)S 18 x(to)S 18 x(pay)S
18 x(for)S 18 x(the)S 17 x(unneeded)S 18 x(accuracy)S 18 x(in)S 18 x
(the)S 18 x(form)S 18 x(of)S 18 x(additional)S 50 y 327 X
(iterations)S 12 x(through)S 12 x(some)S 12 x(loop,)S 13 x(or)S 12 x
(additional)S 12 x(terms)S 13 x(in)S 12 x(an)S 12 x(approximating)S
12 x(polynomial,)S 12 x(inside)S 12 x(the)S 12 x(body)S 12 x(of)S 
12 x(an)S 13 x(elementary)S 49 y 327 X(function.)S 17 x(A)S 12 x
(majority)S 12 x(of)S 12 x(the)S 12 x(contributors)S 12 x(felt)S 
11 x(that)S 11 x(it)S 12 x(was)S 11 x(better)S 11 x(to)S 11 x
(require)S 11 x(software)S 11 x(to)S 12 x(get)S 11 x(the)S 11 x
(most)S 11 x(out)S 12 x(of)S 11 x(the)S 12 x(hardware)S 50 y 327 X
(it)S 14 x(is)S 14 x(given)S 13 x(to)S 13 x(work)S 14 x(with,)S 14 x
(at)S 13 x(least)S 14 x(for)S 14 x(standard-conforming)S 13 x
(implementations,)S 14 x(reasoning)S 14 x(that)S 13 x(special)S 13 x
(requirements)S 13 x(can)S 50 y 327 X(always)S 16 x(be)S 16 x(met)S
16 x(by)S 16 x(additional)S 16 x(implementations)S 16 x(not)S 16 x
(conforming)S 16 x(to)S 16 x(the)S 16 x(standard.)S 61 y 410 X
(There)S 13 x(was)S 13 x(also)S 13 x(a)S 13 x(question)S 13 x(as)S
13 x(to)S 13 x(whether)S 13 x(the)S 13 x(use)S 13 x(of)S 13 x(the)S
13 x F53(BASE)S 12 x F6(attribute)S 13 x(in)S 13 x(the)S 13 x
(accuracy)S 13 x(requirements)S 13 x(adequately)S 50 y 327 X
(re\015ects)S 18 x(the)S 18 x F7(implemented)S 18 x F6(precision)S
19 x(of)S 19 x(the)S 19 x(user's)S 18 x(generic)S 19 x(actual)S 18 x
(subtype)S 18 x(\(for)S 19 x(example,)S 19 x(in)S 18 x(the)S 18 x
(case)S 18 x(of)S 18 x(a)S 19 x(reduced-)S 50 y 327 X(accuracy)S 
19 x(subtype,)S 19 x(perhaps)S 18 x(combined)S 19 x(with)S 19 x(the)S
18 x(in\015uence)S 18 x(of)S 19 x(representation)S 18 x(clauses\).)S
31 x(Ada)S 18 x(Commentary)S 19 x(AI-00407)S 50 y 327 X([14])S 17 x
(implies)S 17 x(that)S 17 x(the)S 16 x(implemented)S 17 x(precision)S
17 x(of)S 17 x(a)S 16 x(reduced-accuracy)S 17 x(subtype,)S 18 x(as)S
17 x(it)S 17 x(af)S -1 x(fects)S 18 x(the)S 17 x(storage)S 17 x(of)S
17 x(variables)S 50 y 327 X(of)S 15 x(the)S 15 x(subtype)S 15 x(as)S
15 x(well)S 15 x(as)S 15 x(parameter)S 15 x(associations)S 15 x(and)S
15 x(function)S 15 x(returns)S 15 x(involving)S 15 x(the)S 15 x
(subtype,)S 15 x(may)S 15 x(be)S 15 x(less)S 15 x(than)S 15 x(the)S
49 y 327 X(precision)S 12 x(of)S 12 x(the)S 12 x(subtype's)S 12 x
(base)S 12 x(type.)S 18 x(Because)S 12 x(that)S 12 x(decision)S 13 x
(has)S 12 x(profoundly)S 12 x(undesirable)S 13 x(consequences)S 12 x
(\(including)S 12 x(the)S 50 y 327 X(obfuscation)S 13 x(of)S 13 x
(the)S 14 x(concept)S 13 x(of)S 13 x(\252representation)S 14 x(of)S
14 x(a)S 14 x(type\272;)S 14 x(the)S 13 x(loss)S 13 x(of)S 13 x(the)S
14 x(ability)S 13 x(to)S 13 x(specify)S 14 x(and)S 13 x(analyze)S 
13 x(the)S 14 x(behavior)S 50 y 327 X(of)S 16 x(composite)S 17 x
(operations,)S 18 x(represented)S 17 x(by)S 17 x(functions,)S 17 x
(using)S 17 x(the)S 17 x(same)S 17 x(abstractions\320including)S 
17 x(safe)S 17 x(intervals\320as)S 17 x(are)S 50 y 327 X(applicable)S
14 x(to)S 14 x(the)S 14 x(basic)S 14 x(and)S 14 x(prede\014ned)S 
14 x(operations;)S 14 x(and)S 14 x(the)S 14 x(rendering)S 15 x(of)S
14 x(certain)S 14 x(classes)S 14 x(of)S 14 x(attributes)S 14 x
(nearly)S 14 x(useless\),)S 50 y 327 X(and)S 17 x(because)S 18 x(it)S
17 x(appears)S 17 x(to)S 17 x(con\015ict)S 17 x(with)S 17 x(other)S
17 x(requirements)S 17 x(or)S 17 x(implications)S 17 x(of)S 17 x
(the)S 17 x(language)S 17 x([27],)S 18 x(some)S 17 x(observers)S 
50 y 327 X(feel)S 15 x(that)S 15 x(it)S 14 x(is)S 14 x(ill)S 15 x
(advised.)S 20 x(Accordingly,)S 15 x(Ada)S 15 x(Commentary)S 15 x
(AI-00571,)S 15 x(which)S 15 x(calls)S 14 x(for)S 14 x(the)S 14 x
(reevaluation)S 14 x(of)S 14 x(AI-00407,)S 49 y 327 X(was)S 14 x
(submitted)S 15 x(in)S 14 x(July)S 14 x(of)S 14 x(1988.)S 20 x(WG9)S
15 x(returned)S 14 x(AI-00407)S 14 x(to)S 14 x(the)S 14 x(Ada)S 14 x
(Rapporteur)S 14 x(Group)S 14 x(for)S 14 x(reconsideration)S 15 x
(in)S 14 x(June)S 50 y 327 X(of)S 13 x(1989,)S 14 x(and)S 14 x(the)S
14 x(ARG)S 14 x(completed)S 13 x(its)S 14 x(reconsideration)S 14 x
(four)S 14 x(months)S 13 x(later)S 14 x(by)S 13 x(approving)S 14 x
(AI-00571)S 14 x(\(thereby)S 14 x(rescinding)S 50 y 327 X
(AI-00407\).)S 24 x(Thus,)S 17 x(it)S 16 x(is)S 16 x(now)S 16 x
(known)S 15 x(that)S 15 x(the)S 16 x(accuracy)S 15 x(laboriously)S
16 x(achieved)S 15 x(in)S 16 x(the)S 16 x(body)S 16 x(of)S 15 x(an)S
15 x(elementary)S 16 x(function)S 50 y 327 X(will)S 14 x(not)S 14 x
(be)S 14 x(thrown)S 14 x(away)S 14 x(at)S 14 x(the)S 14 x(return,)S
14 x(even)S 15 x(when)S 14 x(the)S 14 x(generic)S 14 x(actual)S 14 x
(subtype)S 14 x(is)S 14 x(a)S 14 x(reduced-accuracy)S 14 x(subtype.)S
61 y 410 X(\252Prescribed)S 15 x(results\272)S 16 x(are)S 16 x(used)S
16 x(in)S 16 x(some)S 16 x(cases)S 15 x(to)S 16 x(constrain)S 16 x
(the)S 16 x(computed)S 16 x(result)S 16 x(even)S 16 x(more)S 16 x
(than)S 16 x(the)S 16 x(maximum-)S 50 y 327 X(relative-error)S 19 x
(bounds)S 18 x(constrain)S 18 x(it.)S 33 x(For)S 19 x(example,)S 
20 x F53(EXP\()S
XP /F53 48 22 2 0 19 25 25 24 0
<03E000 0FF800 1FFC00 1E3C00 380E00 780F00 700700 700700 E00380
 E00380 E00380 E00380 E00380 E00380 E00380 E00380 F00780 700700
 700700 780F00 3C1E00 1E3C00 1FFC00 0FF800 03E000>
PXLC RP
1276 2729 XY F53(0)S
XP /F53 46 22 8 0 13 5 5 8 0
<70 F8 F8 F8 70>
PXLC RP
1298 2729 XY F53(.0\))S 18 x F6(is)S 18 x(prescribed)S 19 x(to)S 
19 x(yield)S 19 x(exactly)S
XP /F53 49 22 4 0 18 25 25 16 0
<0180 0380 0380 0780 0F80 7F80 FF80 7380 0380 0380 0380 0380 0380
 0380 0380 0380 0380 0380 0380 0380 0380 0380 7FF8 7FFC 7FF8>
PXLC RP
1912 2729 XY F53(1.0)S -1 x F6(.)S 34 x(The)S 19 x(prescribed)S 50 y 
327 X(results)S 15 x(re\015ect)S 15 x(behavior)S 15 x(that)S 15 x
(is)S 15 x(both)S 15 x(highly)S 15 x(desirable)S 15 x(from)S 14 x(a)S
15 x(numerical)S 15 x(point)S 15 x(of)S 15 x(view)S 15 x(and)S 14 x
(easy)S 15 x(to)S 15 x(achieve.)S 22 x(In)S 15 x(most)S 50 y 327 X
(cases,)S 17 x(sensible)S 17 x(algorithms)S 16 x(will)S 16 x
(achieve)S 16 x(the)S 16 x(required)S 16 x(behavior)S 16 x(without)S
16 x(extra)S 16 x(ef)S -1 x(fort;)S 17 x(when)S 16 x(necessary,)S 
17 x(it)S 16 x(can)S 16 x(always)S 49 y 327 X(be)S 17 x(achieved)S
17 x(with)S 17 x(a)S 17 x(test)S 17 x(for)S 18 x(the)S 18 x(special)S
17 x(ar)S -1 x(gument)S 18 x(values.)S 62 y 410 X(Some)S 10 x(of)S
11 x(the)S 11 x(prescribed)S 11 x(results)S 11 x(appear)S 11 x(to)S
11 x(require)S 10 x(the)S 11 x(function)S 11 x(to)S 11 x(deliver)S
11 x(a)S 11 x(value)S 11 x(that)S 11 x(cannot)S 11 x(be)S 11 x
(computed)S 11 x(exactly;)S 50 y 327 X(for)S 18 x(example,)S 18 x
(one)S 17 x(of)S 17 x(the)S 18 x(prescribed)S 17 x(results)S 17 x
(reads)S 17 x(\252)S F53(ARCSIN\(1.0\))S
XP /F20 /cmr10 300 41.5 41.5 128 [-3 -11 41 31] PXLF RP
XP /F20 61 32 2 4 29 16 12 32 0
<7FFFFFC0 FFFFFFE0 00000000 00000000 00000000 00000000 00000000
 00000000 00000000 00000000 FFFFFFE0 7FFFFFC0>
PXLC RP
1455 2990 XY F20(=)S 17 x F21(\031)S
XP /F21 61 21 2 -10 18 31 41 16 0
<0003 0003 0007 0006 0006 000E 000C 001C 0018 0018 0038 0030 0030
 0070 0060 0060 00E0 00C0 00C0 01C0 0180 0380 0300 0300 0700 0600
 0600 0E00 0C00 0C00 1C00 1800 1800 3800 3000 7000 6000 6000 E000
 C000 C000>
PXLC RP
1529 2990 XY F21(=)S
XP /F20 50 21 2 0 18 28 28 16 0
<07C0 1830 201C 400C 400E F00F F80F F807 F807 7007 000F 000E 000E
 001C 001C 0038 0070 0060 00C0 0180 0300 0601 0C01 1801 1002 3FFE
 7FFE FFFE>
PXLC RP
1550 2990 XY F20(2)S F6(\272.)S 28 x(What)S 17 x(does)S 17 x(this)S
17 x(mean?)S 29 x(The)S 17 x(proposed)S 3128 Y 1292 X(8)S
%%PageTrailer
/paper-automatic true SPS 1 PP EP
%%PageBoundingBox: 78 39 546 718

%%PageBoundingBox: (atend)
%%BeginPageSetup
1000 BP 3300 2550 PM /paper-automatic false SPS 327 0 XY
%%EndPageSetup
327 342 XY F6(standard)S 12 x(says)S 13 x(that)S 13 x(a)S 13 x
(prescribed)S 13 x(result)S 13 x(that)S 13 x(is)S 13 x(a)S 12 x
(safe)S 13 x(number)S 13 x(must)S 13 x(be)S 13 x(delivered)S 13 x
(exactly;)S 13 x(in)S 13 x(the)S 13 x(case)S 13 x(of)S 13 x(one)S 
13 x(that)S 13 x(is)S 13 x(not,)S 49 y 327 X(such)S 13 x(as)S 13 x
(this)S 12 x(one,)S 13 x(the)S 13 x(implementation)S 13 x(may)S 13 x
(deliver)S 13 x(any)S 13 x(value)S 12 x(in)S 13 x(the)S 13 x
(surrounding)S 13 x(safe)S 13 x(interval.)S 18 x(The)S 13 x
(required)S 13 x(behavior)S 50 y 327 X(can)S 16 x(be)S 17 x
(achieved)S 17 x(without)S 16 x(dif)S -1 x(\014culty,)S 18 x(even)S
16 x(in)S 17 x(portable)S 16 x(implementations.)S 60 y 410 X
(Consideration)S 13 x(was)S 14 x(given)S 13 x(to)S 13 x(allowing)S
14 x(the)S 13 x(trigonometric)S 14 x(functions)S 14 x(with)S 13 x
(natural)S 14 x(cycle)S 13 x(to)S 14 x(raise)S 14 x F53
(ARGUMENT_ERROR)S 50 y 327 X F6(for)S 13 x(suf)S -1 x(\014ciently)S
13 x(lar)S -1 x(ge)S 13 x F53(X)S F6(,)S 12 x(where)S 13 x(it)S 13 x
(is)S 13 x(impractical)S 13 x(to)S 13 x(avoid)S 13 x(accuracy)S 13 x
(degradation.)S 18 x(However,)S 13 x(this)S 13 x(would)S 13 x(have)S
13 x(weakened)S 49 y 327 X(the)S 11 x(signi\014cance)S 11 x(of)S 
11 x F53(ARGUMENT_ERROR)S 8 x F6(as)S 11 x(an)S 11 x
(implementation-independent)S 11 x(indicator)S 11 x(of)S 11 x
(mathematical)S 11 x(domain)S 11 x(violation.)S 50 y 327 X(Raising)S
11 x(a)S 11 x(dif)S -1 x(ferent)S 11 x(exception)S 11 x(was)S 11 x
(also)S 11 x(considered,)S 11 x(but)S 12 x(in)S 11 x(the)S 11 x(end)S
11 x(the)S 11 x(committee)S 11 x(thought)S 11 x(that)S 11 x(most)S
11 x(users)S 11 x(would)S 11 x(prefer)S 50 y 327 X(continuation)S 
14 x(with)S 15 x(a)S 14 x(result)S 14 x(that)S 14 x(falls)S 14 x
(short)S 15 x(of)S 14 x(the)S 14 x(accuracy)S 14 x(requirements)S 
15 x(by)S 14 x(a)S 14 x(known)S 14 x(amount)S 14 x(to)S 14 x(no)S 
15 x(result)S 14 x(at)S 14 x(all.)S 856 Y 327 X F52(What)S 20 x(is)S
20 x(the)S 21 x(role)S 21 x(of)S 20 x(the)S 21 x(range)S 21 x(de)S
(\014nitions?)S 940 Y 410 X F6(Range)S 17 x(de\014nitions)S 17 x
(\(or)S 17 x(restrictions\))S 17 x(are)S 17 x(included)S 17 x(with)S
17 x(some)S 17 x(of)S 17 x(the)S 17 x(functions)S 17 x(for)S 17 x
(several)S 17 x(reasons.)S 29 x(In)S 18 x(the)S 18 x(case)S 50 y 
327 X(of)S 15 x(functions)S 16 x(that)S 15 x(are)S 15 x
(mathematically)S 15 x(multivalued,)S 16 x(they)S 16 x(serve)S 16 x
(to)S 15 x(de\014ne)S 15 x(the)S 15 x(principal)S 16 x(range)S 15 x
(for)S 15 x(the)S 15 x(implementation,)S 50 y 327 X(enabling)S 13 x
(it)S 13 x(to)S 13 x(be)S 13 x(single-valued)S 13 x(without)S 13 x
(ambiguity.)S 18 x(In)S 13 x(other)S 13 x(cases,)S 13 x(they)S 13 x
(impose)S 13 x(highly)S 13 x(desirable)S 13 x(and)S 13 x(easily)S 
13 x(achieved)S 49 y 327 X(numerical)S 13 x(constraints)S 13 x(on)S
13 x(the)S 13 x(results\320constraints)S 13 x(that)S 13 x(do)S 13 x
(not)S 13 x(automatically)S 13 x(follow)S 13 x(from)S 13 x(the)S 
13 x(maximum-relative-error)S 50 y 327 X(requirements.)S 28 x(In)S
17 x(this)S 17 x(latter)S 17 x(context,)S 17 x(they)S 17 x(behave)S
18 x(like)S 17 x(additional)S 17 x(prescribed)S 17 x(results)S 17 x
(\(in)S 17 x(the)S 17 x(form)S 17 x(of)S 17 x(an)S 17 x(inequality,)S
50 y 327 X(rather)S 16 x(than)S 16 x(an)S 16 x(equality\).)S 27 x
(And)S 17 x(like)S 17 x(prescribed)S 17 x(results,)S 17 x(range)S 
17 x(limits)S 17 x(are)S 16 x(sometimes)S 16 x(given)S 16 x(by)S 
16 x(values)S 17 x(that)S 17 x(cannot)S 17 x(be)S 50 y 327 X
(computed)S 15 x(exactly.)S 22 x(In)S 15 x(analogy)S 15 x(to)S 15 x
(the)S 15 x(meaning)S 15 x(of)S 15 x(prescribed)S 15 x(results,)S 
15 x(the)S 15 x(proposed)S 15 x(standard)S 15 x(de\014nes)S 15 x
(the)S 15 x(meaning)S 15 x(of)S 50 y 327 X(range)S 17 x(limits)S 
17 x(like)S 17 x(this:)S 26 x(When)S 17 x(a)S 18 x(range)S 17 x
(limit)S 17 x(is)S 18 x(a)S 17 x(safe)S 17 x(number,)S 18 x(the)S 
18 x(implementation)S 18 x(must)S 18 x(not)S 17 x(exceed)S 17 x(it;)S
19 x(when)S 17 x(it)S 17 x(is)S 49 y 327 X(not,)S 15 x(the)S 15 x
(implementation)S 14 x(may)S 15 x(exceed)S 15 x(it,)S 15 x(but)S 
15 x(it)S 15 x(may)S 14 x(not)S 15 x(exceed)S 15 x(the)S 15 x(next)S
15 x(safe)S 15 x(number)S 14 x(beyond)S 14 x(the)S 15 x(range)S 15 x
(limit)S 15 x(in)S 15 x(the)S 50 y 327 X(direction)S 16 x(away)S 
16 x(from)S 16 x(the)S 16 x(interior)S 16 x(of)S 16 x(the)S 16 x
(range.)S 25 x(The)S 16 x(required)S 16 x(behavior)S 16 x(can)S 16 x
(be)S 16 x(achieved)S 16 x(without)S 16 x(dif)S -1 x(\014culty,)S 
16 x(even)S 16 x(in)S 50 y 327 X(portable)S 15 x(implementations.)S
21 x(\(For)S 15 x(more)S 15 x(on)S 15 x(range)S 15 x(de\014nitions,)S
15 x(see)S 15 x(the)S 15 x(question)S 15 x(on)S 15 x(under\015ow,)S
15 x(below.\))S 1594 Y 327 X F52(How)S 21 x(are)S 20 x(exceptional)S
21 x(conditions)S 21 x(treated?)S 1678 Y 410 X F6(T)S -3 x(wo)S 11 x
(types)S 10 x(of)S 11 x(exceptional)S 11 x(condition)S 10 x(are)S 
11 x(explicitly)S 11 x(recognized)S 10 x(by)S 11 x(the)S 11 x
(proposed)S 11 x(standard;)S 12 x(in)S 11 x(each)S 11 x(case,)S 11 x
(the)S 11 x(de\014ned)S 50 y 327 X(action)S 13 x(is)S 12 x(to)S 12 x
(raise)S 12 x(an)S 12 x(exception.)S 18 x(Equally)S 12 x(important,)S
13 x(an)S 12 x(implementation)S 12 x(is)S 12 x(prohibited)S 12 x
(from)S 12 x(raising)S 13 x(spurious)S 12 x(exceptions)S 50 y 327 X
(if)S 19 x(it)S 19 x(is)S 19 x(to)S 19 x(conform)S 19 x(to)S 19 x
(the)S 18 x(standard.)S 59 y 410 X(The)S 12 x(\014rst)S 12 x(type)S
12 x(of)S 12 x(exceptional)S 12 x(condition)S 12 x(under)S 12 x
(which)S 12 x(an)S 12 x(implementation)S 12 x(is)S 12 x(allowed)S 
12 x(to)S 13 x(raise)S 13 x(an)S 13 x(exception)S 12 x(instead)S 
50 y 327 X(of)S 13 x(delivering)S 14 x(a)S 13 x(result)S 14 x
(occurs)S 14 x(when)S 13 x(the)S 14 x(ar)S -1 x(guments)S 13 x(of)S
14 x(one)S 13 x(of)S 13 x(the)S 14 x(elementary)S 14 x(functions)S
14 x(are)S 14 x(such)S 14 x(that)S 14 x(its)S 13 x(mathematical)S 
50 y 327 X(result)S 16 x(is)S 16 x(not)S 16 x(de\014ned\320in)S 16 x
(other)S 16 x(words,)S 17 x(when)S 16 x(its)S 16 x(ar)S -1 x
(guments)S 17 x(are)S 16 x(invalid.)S 25 x(A)S 16 x(familiar)S 16 x
(example,)S 16 x(given)S 16 x(that)S 16 x(ar)S -1 x(guments)S 50 y 
327 X(and)S 15 x(results)S 15 x(in)S 15 x(this)S 14 x(package)S 15 x
(are)S 14 x(restricted)S 14 x(to)S 14 x(the)S 15 x(real)S 15 x
(domain)S 15 x(\(as)S 15 x(opposed)S 15 x(to)S 15 x(the)S 15 x
(complex)S 15 x(domain\),)S 15 x(is)S 15 x(an)S 15 x(attempt)S 15 x
(to)S 50 y 327 X(compute)S 13 x(the)S 13 x(square)S 13 x(root)S 12 x
(of)S 12 x(a)S 12 x(negative)S 13 x(number.)S 18 x(The)S 13 x
(validity)S 12 x(or)S 12 x(invalidity)S 12 x(of)S 12 x(ar)S -1 x
(guments)S 12 x(is)S 12 x(completely)S 12 x(de\014ned)S 12 x(by)S 
12 x(the)S 49 y 327 X(\252domain)S 15 x(de\014nitions\272)S 15 x
(included)S 15 x(with)S 15 x(the)S 15 x(description)S 15 x(of)S 15 x
(each)S 15 x(function)S 15 x(in)S 16 x(the)S 15 x(proposed)S 15 x
(standard.)S 60 y 410 X(When)S 19 x(faced)S 19 x(with)S 18 x
(invalid)S 19 x(ar)S -1 x(guments,)S 20 x(an)S 19 x(implementation)S
19 x(is)S 19 x(not)S 19 x(merely)S 19 x(allowed)S 19 x(to)S 19 x
(raise)S 19 x(an)S 19 x(exception;)S 21 x(it)S 19 x(is)S 50 y 327 X
(required)S 18 x(to)S 17 x(do)S 17 x(so.)S 29 x(The)S 17 x(standard)S
17 x(prescribes)S 17 x(the)S 18 x(raising)S 17 x(of)S 18 x(the)S 
18 x F53(ARGUMENT_ERROR)S 14 x F6(exception,)S 18 x(which)S 18 x(it)S
17 x(de\014nes)S 17 x(and)S 50 y 327 X(reserves)S 19 x(for)S 19 x
(this)S 19 x(situation.)S 59 y 410 X(The)S 12 x(validity)S 12 x(of)S
12 x(given)S 12 x(ar)S -1 x(guments)S 12 x(is)S 12 x(never)S 13 x
(in)S
(\015uenced)S 12 x(by)S 12 x(hardware)S 12 x(properties;)S 13 x(if)S
12 x F53(ARGUMENT_ERROR)S 9 x F6(is)S 12 x(raised)S 12 x(by)S 12 x
(a)S 50 y 327 X(function)S 14 x(for)S 14 x(certain)S 13 x(ar)S -1 x
(guments)S 13 x(in)S 13 x(one)S 14 x(implementation,)S 13 x(it)S 
14 x(will)S 13 x(be)S 14 x(raised)S 14 x(for)S 14 x(those)S 14 x(ar)S
-1 x(guments)S 14 x(in)S 13 x(any)S 14 x(implementation.)S 50 y 
327 X(Ar)S -1 x(gument)S 21 x(validity)S 21 x(can)S 21 x(reliably)S
21 x(be)S 21 x(established)S 21 x(by)S 21 x(inspection)S 21 x(of)S
21 x(the)S 21 x(ar)S -1 x(guments,)S 23 x(that)S 21 x(is,)S 23 x(by)S
21 x(subjecting)S 21 x(them)S 21 x(to)S 50 y 327 X(appropriate)S 
16 x(tests.)S 23 x(While)S 15 x(it)S 15 x(will)S 15 x(usually)S 16 x
(be)S 15 x(most)S 16 x(convenient)S 15 x(for)S 15 x(an)S 15 x
(implementation)S 15 x(to)S 15 x(check)S 16 x(for)S 16 x(ar)S -1 x
(gument)S 15 x(validity)S 50 y 327 X(before)S 15 x(attempting)S 15 x
(to)S 14 x(compute)S 15 x(a)S 15 x(result,)S 14 x(other)S 14 x
(strategies)S 14 x(may)S 14 x(be)S 14 x(possible)S 15 x(and)S 14 x
(appropriate)S 15 x(in)S 15 x(some)S 15 x(cases.)S 59 y 410 X(The)S
17 x(second)S 17 x(type)S 18 x(of)S 18 x(exceptional)S 18 x
(condition)S 18 x(under)S 18 x(which)S 17 x(an)S 17 x
(implementation)S 18 x(is)S 18 x(allowed)S 17 x(to)S 17 x(raise)S 
18 x(an)S 18 x(exception)S 50 y 327 X(instead)S 18 x(of)S 18 x
(delivering)S 18 x(a)S 18 x(result)S 18 x(occurs)S 19 x(when)S 19 x
(the)S 19 x(mathematical)S 18 x(result)S 19 x(is)S 18 x(well)S 18 x
(de)S
(\014ned)S 19 x(for)S 19 x(the)S 18 x(given)S 18 x(ar)S -1 x
(guments)S 20 x(but)S 50 y 327 X(something)S 18 x(else)S 18 x
(\(from)S 18 x(among)S 18 x(a)S 18 x(limited)S 19 x(list)S 19 x(of)S
19 x(things\))S 18 x(unavoidably)S 19 x(stands)S 19 x(in)S 18 x(the)S
18 x(way)S 19 x(of)S 18 x(actually)S 18 x(delivering)S 19 x(that)S
50 y 327 X(result.)S 18 x(There)S 13 x(are)S 14 x(in)S 13 x(fact)S
13 x(three)S 13 x(misfortunes)S 14 x(that)S 13 x(can)S 13 x(befall)S
13 x(an)S 13 x(implementation,)S 13 x(interfering)S 13 x(with)S 13 x
(its)S 14 x(ability)S 13 x(to)S 13 x(deliver)S 14 x(a)S 50 y 327 X
(numerical)S 15 x(result)S 14 x(that)S 14 x(is)S 15 x(close)S 15 x
(enough)S 14 x(to)S 14 x(the)S 15 x(mathematical)S 15 x(result)S 
15 x(to)S 15 x(satisfy)S 15 x(the)S 14 x(accuracy)S 14 x
(requirements:)S 2841 Y 410 X(\267)S 68 x(It)S 18 x(may)S 18 x
(happen)S 18 x(that)S 17 x(the)S 18 x(given)S 18 x(ar)S -1 x
(guments)S 17 x(fail)S 17 x(to)S 17 x(satisfy)S 18 x(range)S 18 x
(constraints)S 17 x(inherent)S 18 x(in)S 18 x(the)S 17 x(user's)S 
18 x(generic)S 50 y 493 X(actual)S 15 x(subtype,)S 15 x(or)S 15 x
(that)S 14 x(the)S 15 x(function's)S 15 x(computed)S 15 x(result)S
15 x(fails)S 15 x(to)S 15 x(satisfy)S 15 x(those)S 15 x
(constraints.)S 50 y 410 X(\267)S 68 x(It)S 17 x(may)S 17 x(happen)S
16 x(that)S 17 x(the)S 16 x(function)S 17 x(that)S 17 x(is)S 17 x
(invoked)S 16 x(is)S 16 x(unable)S 16 x(to)S 16 x(obtain)S 16 x(the)S
16 x(storage)S 17 x(it)S 16 x(needs)S 16 x(to)S 16 x(perform)S 16 x
(the)S 50 y 493 X(requested)S 19 x(computation.)S 3128 Y 1292 X(9)S
%%PageTrailer
/paper-automatic true SPS 1 PP EP
%%PageBoundingBox: 78 39 546 718

%%PageBoundingBox: (atend)
%%BeginPageSetup
1000 BP 3300 2550 PM /paper-automatic false SPS 410 0 XY
%%EndPageSetup
410 342 XY F6(\267)S 68 x(It)S 23 x(may)S 23 x(happen)S 23 x(that)S
23 x(the)S 23 x(computed)S 23 x(result)S 23 x(is)S 23 x(so)S 23 x
(lar)S -1 x(ge,)S 26 x(in)S 23 x(magnitude,)S 25 x(that)S 23 x(it)S
23 x(exceeds)S 23 x(the)S 23 x(hardware's)S 49 y 493 X
(representational)S 17 x(capabilities\320i.e.,)S 18 x(it)S 18 x
(over)S
(\015ows.)S 75 y 410 X(The)S 14 x(\014rst)S 15 x(of)S 15 x(these)S
15 x(misfortunes)S 14 x(can)S 15 x(occur)S 15 x(during)S 15 x(any)S
14 x(parameter)S 15 x(association)S 15 x(or)S 14 x(on)S 14 x(any)S
15 x(function)S 15 x(return;)S 15 x(it)S 15 x(is)S 15 x(not)S 50 y 
327 X(peculiar)S 11 x(to)S 12 x(the)S 12 x(functions)S 11 x(in)S 
11 x(this)S 11 x(package.)S 18 x(It)S 12 x(is)S 12 x(a)S 11 x(fact)S
11 x(of)S 12 x(life)S 11 x(of)S 11 x(Ada,)S 11 x(calling)S 12 x(for)S
11 x(the)S 11 x(raising)S 11 x(of)S 11 x(the)S 11 x F53
(CONSTRAINT_ERROR)S 50 y 327 X F6(exception)S 11 x(at)S 10 x(the)S
10 x(place)S 10 x(of)S 10 x(the)S 11 x(call)S 10 x(when)S 10 x(it)S
11 x(occurs)S 11 x(during)S 10 x(a)S 10 x(parameter)S 11 x
(association,)S 12 x(or)S 11 x(at)S 10 x(the)S 10 x(place)S 10 x(of)S
10 x(the)S 10 x(return)S 11 x(statement)S 50 y 327 X(when)S 10 x(it)S
11 x(occurs)S 11 x(during)S 10 x(a)S 10 x(function)S 10 x(return.)S
17 x(In)S 10 x(the)S 10 x(former)S 10 x(case)S 10 x(the)S 11 x
(function)S 10 x(is)S 10 x(never)S 10 x(entered,)S 11 x(so)S 10 x
(clearly)S 10 x(a)S 10 x(numerical)S 11 x(result)S 50 y 327 X
(cannot)S 12 x(be)S 13 x(delivered.)S 18 x(In)S 12 x(the)S 12 x
(latter)S 12 x(case)S 12 x(the)S 13 x(function)S 13 x(has)S 13 x
(computed)S 13 x(an)S 13 x(appropriate)S 12 x(numerical)S 13 x
(result)S 13 x(and)S 12 x(has)S 12 x(attempted)S 49 y 327 X(to)S 
14 x(deliver)S 13 x(it)S 14 x(but)S 13 x(has)S 14 x(failed,)S 13 x
(because)S 14 x(of)S 14 x(the)S 14 x(range)S 13 x(constraints)S 13 x
(that)S 13 x(the)S 13 x(user)S 13 x(has)S 13 x(imposed)S 13 x(on)S
14 x(the)S 13 x(ar)S -1 x(guments)S 13 x(and)S 14 x(results)S 50 y 
327 X(of)S 14 x(all)S 15 x(the)S 14 x(elementary)S 15 x(functions.)S
20 x(In)S 15 x(mar)S -1 x(ginal)S 15 x(cases,)S 14 x(other)S 14 x
(\(slightly)S 14 x(dif)S -1 x(ferent\))S 14 x(results)S 14 x(might)S
14 x(have)S 14 x(been)S 15 x(produced)S 15 x(that)S 50 y 327 X(do)S
14 x(satisfy)S 15 x(the)S 15 x(range)S 14 x(constraints)S 15 x
(while)S 14 x(still)S 14 x(satisfying)S 14 x(the)S 14 x(accuracy)S
14 x(requirements,)S 15 x(but)S 14 x(it)S 15 x(is)S 15 x(not)S 14 x
(highly)S 15 x(likely.)S 20 x(So,)S 15 x(for)S 50 y 327 X(all)S 14 x
(practical)S 14 x(purposes,)S 15 x(it)S 14 x(may)S 15 x(be)S 14 x
(assumed)S 15 x(that)S 14 x(it)S 15 x(is)S 15 x(just)S 14 x(not)S 
14 x(possible)S 15 x(to)S 14 x(deliver)S 14 x(a)S 15 x(satisfactory)S
15 x(numerical)S 14 x(result.)S 20 x(The)S 50 y 327 X(proposed)S 
14 x(standard)S 14 x(for)S 14 x F53(GENERIC_ELEMENTARY_FUNCTIONS)S
F6(,)S 8 x(by)S 14 x(allowing)S 13 x F53(CONSTRAINT_ERROR)S 10 x F6
(to)S 13 x(be)S 14 x(raised)S 13 x(naturally)S 49 y 327 X(when)S 
14 x(this)S 14 x(misfortune)S 14 x(occurs,)S 14 x(does)S 14 x(not)S
14 x(impose)S 14 x(any)S 15 x(special)S 14 x(design)S 14 x
(requirements)S 14 x(on)S 14 x(implementations.)S 19 x(Indeed,)S 
14 x(in)S 14 x(the)S 50 y 327 X(case)S 17 x(of)S 16 x(parameter)S 
17 x(associations,)S 17 x(there)S 16 x(is)S 16 x(nothing)S 17 x
(else)S 17 x(that)S 17 x(it)S 16 x(could)S 17 x(do.)S 59 y 410 X
(The)S 16 x(second)S 16 x(of)S 16 x(the)S 16 x(three)S 16 x
(misfortunes)S 16 x(can)S 16 x(occur)S 16 x(during)S 16 x(any)S 16 x
(subprogram)S 16 x(invocation,)S 17 x(or)S 16 x(during)S 16 x(the)S
16 x(elaboration)S 49 y 327 X(of)S 14 x(a)S 15 x(subprogram's)S 14 x
(declarative)S 15 x(part)S 15 x(just)S 14 x(after)S 14 x(its)S 15 x
(invocation;)S 14 x(it,)S 14 x(too,)S 15 x(is)S 14 x(not)S 14 x
(peculiar)S 14 x(to)S 14 x(the)S 14 x(functions)S 15 x(in)S 14 x
(this)S 15 x(package.)S 50 y 327 X(Thus)S 16 x(it,)S 17 x(too,)S 
16 x(is)S 16 x(a)S 16 x(fact)S 16 x(of)S 15 x(life)S 16 x(of)S 16 x
(Ada,)S 17 x(calling)S 16 x(for)S 16 x(the)S 16 x(raising)S 16 x(of)S
15 x(the)S 16 x F53(STORAGE_ERROR)S 13 x F6(exception)S 16 x(at)S 
16 x(the)S 16 x(place)S 16 x(of)S 16 x(the)S 50 y 327 X(call)S 14 x
(\(for)S 14 x(all)S 14 x(practical)S 14 x(purposes\))S 14 x(when)S
14 x(it)S 14 x(occurs)S 14 x(for)S 14 x(either)S 14 x(of)S 14 x
(these)S 14 x(reasons.)S 19 x(Clearly,)S 14 x(it)S 14 x(is)S 14 x
(just)S 14 x(not)S 14 x(possible)S 14 x(to)S 14 x(deliver)S 50 y 
327 X(a)S 16 x(numerical)S 15 x(result,)S 16 x(since)S 16 x(the)S 
16 x(function)S 16 x(either)S 16 x(has)S 15 x(never)S 15 x(been)S 
15 x(entered)S 16 x(or)S 16 x(has)S 15 x(not)S 15 x(\014nished)S 
16 x(elaborating)S 15 x(its)S 16 x(declarative)S 50 y 327 X(part.)S
25 x(Since)S 17 x(storage)S 17 x(requirements)S 16 x(for)S 16 x
(elementary)S 16 x(function)S 16 x(implementations)S 16 x(\(of)S 
16 x(scalar)S 16 x(ar)S -1 x(guments\))S 17 x(are)S 16 x(modest,)S
17 x(it)S 16 x(is)S 49 y 327 X(highly)S 14 x(likely)S 14 x(that)S 
14 x(the)S 14 x(application)S 14 x(was)S 14 x(running)S 14 x(near)S
14 x(the)S 14 x(limit)S 14 x(of)S 14 x(available)S 14 x(storage)S 
14 x(at)S 14 x(the)S 14 x(point)S 14 x(where)S 14 x(the)S 14 x
(elementary)S 50 y 327 X(function)S 12 x(was)S 12 x(invoked,)S 12 x
(and)S 12 x(that)S 12 x(it)S 12 x(is)S 12 x(merely)S 12 x(an)S 12 x
(accident)S 12 x(that)S 11 x(the)S 12 x(raising)S 12 x(of)S 12 x F53
(STORAGE_ERROR)S 9 x F6(occurred)S 12 x(there)S 12 x(instead)S 11 x
(of)S 50 y 327 X(somewhere)S 10 x(else.)S 17 x(The)S 10 x(proposed)S
10 x(standard)S 10 x(for)S 10 x F53(GENERIC_ELEMENTARY_FUNCTIONS)S
F6(,)S 5 x(by)S 10 x(allowing)S 10 x F53(STORAGE_ERROR)S 7 x F6(to)S
10 x(be)S 50 y 327 X(raised)S 13 x(naturally)S 13 x(when)S 12 x
(this)S 13 x(misfortune)S 13 x(occurs,)S 13 x(does)S 13 x(not)S 12 x
(impose)S 13 x(any)S 13 x(special)S 12 x(design)S 12 x(requirements)S
13 x(on)S 13 x(implementations.)S 50 y 327 X(Indeed,)S 15 x(since)S
14 x(a)S 14 x(handler)S 14 x(for)S 15 x F53(STORAGE_ERROR)S 11 x F6
(established)S 14 x(by)S 15 x(the)S 15 x(function)S 14 x(will)S 14 x
(not)S 15 x(be)S 14 x(entered)S 14 x(in)S 14 x(the)S 14 x(cases)S 
14 x(described)S 50 y 327 X(above,)S 17 x(there)S 17 x(is)S 17 x
(nothing)S 17 x(else)S 17 x(that)S 17 x(it)S 17 x(could)S 17 x(do.)S
28 x(\()S F53(STORAGE_ERROR)S 15 x F6(can)S 17 x(also)S 17 x(be)S 
17 x(raised)S 17 x(by)S 17 x(evaluation)S 17 x(of)S 17 x(an)S 17 x
(allocator)S 49 y 327 X(in)S 17 x(the)S 16 x(sequence)S 17 x(of)S 
17 x(statements)S 17 x(of)S 17 x(the)S 17 x(function's)S 17 x(body.)S
27 x(Although)S 17 x(in)S 17 x(that)S 16 x(case)S 16 x(the)S 17 x
(propagation)S 16 x(of)S 17 x(the)S 17 x(exception)S 17 x(to)S 50 y 
327 X(the)S 15 x(caller)S 16 x(is)S 15 x F7(not)S 16 x F6
(inevitable,)S 15 x(it)S 15 x(seemed)S 15 x(hardly)S 16 x(practical)S
16 x(or)S 16 x(appropriate)S 15 x(for)S 15 x(the)S 16 x(proposed)S
15 x(standard)S 15 x(to)S 15 x(distinguish)S 16 x(that)S 50 y 327 X
(case)S 19 x(from)S 19 x(the)S 19 x(earlier)S 19 x(ones.\))S 58 y 
410 X(The)S 15 x(last)S 15 x(of)S 15 x(the)S 15 x(three)S 15 x
(misfortunes,)S 15 x(a)S 15 x(computed)S 15 x(result)S 15 x(whose)S
15 x(magnitude)S 15 x(is)S 15 x(so)S 15 x(big)S 15 x(that)S 15 x(it)S
15 x(cannot)S 15 x(be)S 15 x(represented)S 50 y 327 X(in)S 20 x(the)S
20 x(hardware,)S 22 x(is)S 20 x(commonly)S 21 x(called)S 20 x(over)S
(\015ow.)S 37 x(Since)S 20 x(the)S 20 x(over\015ow)S 21 x(threshold)S
20 x(is)S 20 x(a)S 20 x(hardware)S 20 x(property,)S 22 x(exactly)S
50 y 327 X(which)S 17 x(results)S 17 x(are)S 16 x(\252too)S 16 x
(big)S
(\272)S 16 x(cannot)S 16 x(be)S 16 x(predicted)S 16 x(with)S 16 x
(certainty)S 16 x(without)S 17 x(reference)S 17 x(to)S 16 x(the)S 
17 x(hardware.)S 27 x(The)S 16 x(model)S 16 x(of)S 50 y 327 X(real)S
18 x(arithmetic)S 18 x(in)S 18 x(Ada)S 18 x(allows)S 18 x(one)S 18 x
(to)S 18 x(say)S 18 x(with)S 18 x(certainty,)S 19 x(however,)S 19 x
(that)S 18 x(a)S 18 x(computed)S 18 x(result)S 18 x(whose)S 18 x
(absolute)S 18 x(value)S 49 y 327 X(is)S 16 x(less)S 16 x(than)S 
16 x(or)S 16 x(equal)S 16 x(to)S 16 x F53(FLOAT_TYPE\015SAFE_LARGE)S
12 x F6(is)S 16 x(always)S 16 x(capable)S 16 x(of)S 16 x(being)S 
16 x(represented.)S 25 x(Thus)S 16 x(it)S 16 x(is)S 15 x(reasonable)S
50 y 327 X(to)S 21 x(insist)S 20 x(that,)S 22 x(whenever)S 20 x(all)S
21 x(possible)S 20 x(results)S 20 x(permitted)S 20 x(by)S 20 x(the)S
21 x(accuracy)S 21 x(requirements)S 20 x(are)S 21 x(less)S 21 x
(than)S 21 x(or)S 21 x(equal)S 21 x(to)S 50 y 327 X F53(FLOAT_TYPE)S
(\015SAFE_LARGE)S 7 x F6(in)S 12 x(absolute)S 12 x(value,)S 12 x
(the)S 12 x(implementation)S 12 x(must)S 12 x(deliver)S 12 x(one)S
11 x(of)S 12 x(them)S 12 x(\(if)S 12 x(it)S 11 x(does)S 11 x(not)S
12 x(suf)S -1 x(fer)S 12 x(one)S 50 y 327 X(of)S 14 x(the)S 14 x
(earlier)S 14 x(misfortunes\).)S 20 x(On)S 14 x(the)S 14 x(other)S
14 x(hand,)S 14 x(if)S 14 x(any)S 14 x(result)S 15 x(permitted)S 
14 x(by)S 14 x(the)S 14 x(accuracy)S 15 x(requirements)S 15 x(would)S
15 x(exceed)S 50 y 327 X F53(FLOAT_TYPE\015SAFE_LARGE)S 10 x F6(in)S
14 x(absolute)S 14 x(value,)S 15 x(then)S 14 x(it)S 14 x(is)S 14 x
(possible)S 14 x(that)S 15 x(that)S 15 x(result)S 15 x(is)S 14 x
(the)S 15 x(one)S 15 x(that)S 15 x(the)S 14 x(implementation)S 50 y 
327 X(might)S 13 x(try)S 13 x(to)S 14 x(compute,)S 14 x(and)S 14 x
(that)S 13 x(it)S 14 x(would)S 13 x(also)S 14 x(exceed)S 14 x(the)S
14 x(hardware's)S 14 x(over\015ow)S 14 x(threshold.)S 18 x(Thus,)S
13 x(whenever)S 13 x(any)S 14 x(result)S 49 y 327 X(permitted)S 16 x
(by)S 16 x(the)S 16 x(accuracy)S 16 x(requirements)S 16 x(exceeds)S
16 x F53(FLOAT_TYPE\015SAFE_LARGE)S 11 x F6(in)S 16 x(absolute)S 
16 x(value,)S 16 x(an)S 15 x(implementation)S 50 y 327 X(is)S 13 x
(permitted)S 13 x(to)S 14 x(signal)S 13 x(over\015ow)S 13 x(instead)S
14 x(of)S 13 x(delivering)S 13 x(a)S 13 x(result.)S 18 x(That)S 14 x
(does)S 13 x(not)S 13 x(mean)S 13 x(that)S 14 x(it)S 13 x F7(must)S
F6(,)S 13 x(of)S 14 x(course;)S 13 x(the)S 13 x(actual)S 50 y 327 X
(result)S 18 x(that)S 17 x(it)S 18 x(computes)S 17 x(could)S 17 x
(be)S 18 x(some)S 18 x(other)S 17 x(permitted)S 18 x(result)S 17 x
(that)S 17 x(does)S 18 x(not)S 17 x(exceed)S 18 x F53(FLOAT_TYPE)S
(\015SAFE_LARGE)S 13 x F6(in)S 50 y 327 X(absolute)S 18 x
(value\320and)S 17 x(therefore)S 18 x(does)S 17 x(not)S 17 x(exceed)S
17 x(the)S 17 x(hardware's)S 18 x(over\015ow)S 18 x(threshold\320or)S
18 x(it)S 17 x(could)S 18 x(be)S 17 x(one)S 17 x(that)S 17 x(does)S
50 y 327 X(exceed)S 13 x F53(FLOAT_TYPE\015SAFE_LARGE)S 8 x F6(but)S
13 x(still)S 13 x(does)S 13 x(not)S 12 x(exceed)S 12 x(the)S 13 x
(hardware's)S 13 x(over\015ow)S 13 x(threshold.)S 18 x(By)S 13 x
(the)S 12 x(same)S 12 x(token,)S 49 y 327 X(the)S 17 x(fact)S 18 x
(that)S 17 x(some)S 17 x(of)S 17 x(the)S 17 x(permitted)S 18 x
(results)S 17 x(do)S 17 x(not)S 17 x(exceed)S 17 x F53(FLOAT_TYPE)S
(\015SAFE_LARGE)S 13 x F6(in)S 18 x(absolute)S 17 x(value)S 18 x
(does)S 17 x(not)S 50 y 327 X(oblige)S 12 x(the)S 12 x
(implementation)S 12 x(to)S 12 x(deliver)S 12 x(a)S 12 x(result)S 
12 x(in)S 12 x(the)S 12 x(case)S 12 x(that)S 12 x(others)S 12 x(do)S
12 x(exceed)S 12 x(it.)S 18 x(This)S 12 x(is)S 12 x(the)S 12 x
(rationale)S 12 x(for)S 12 x(the)S 12 x(variety)S 50 y 327 X(of)S 
14 x(behaviors)S 14 x(that)S 14 x(an)S 14 x(implementation)S 15 x
(is)S 15 x(allowed)S 14 x(to)S 14 x(exhibit)S 14 x(in)S 15 x(the)S
15 x(vicinity)S 15 x(of)S 15 x(the)S 14 x(over\015ow)S 15 x
(threshold.)S 58 y 410 X(If)S 9 x(over\015ow)S 10 x(needs)S 10 x(to)S
10 x(be)S 10 x(signaled,)S 10 x(the)S 10 x(proposed)S 10 x(standard)S
10 x(calls)S 10 x(for)S 10 x(that)S 10 x(to)S 10 x(be)S 10 x(done)S
10 x(in)S 10 x(the)S 10 x(way)S 10 x(that)S 10 x(Ada)S 10 x
(mandates)S 10 x(for)S 50 y 327 X(its)S 13 x(prede\014ned)S 13 x
(operators)S
(\320i.e.,)S 13 x(by)S 13 x(raising)S 12 x F53(NUMERIC_ERROR)S 10 x 
F6(\(which)S 13 x(is)S 12 x(changed)S 12 x(to)S 13 x F53
(CONSTRAINT_ERROR)S 9 x F6(by)S 12 x(AI-00387\).)S 58 y 410 X
(Implementors)S 17 x(have)S 18 x(a)S 18 x(choice)S 17 x(of)S 17 x
(ways)S 17 x(to)S 18 x(deal)S 17 x(with)S 17 x(possible)S 18 x(over)S
(\015ows)S 18 x(in)S 17 x(the)S 18 x(\014nal)S 18 x(result.)S 29 x
(On)S 18 x(the)S 18 x(one)S 17 x(hand,)S 50 y 327 X(implementors)S
10 x(can)S 10 x(use)S 10 x(a)S 10 x(predictive)S 10 x
(technique\320that)S 10 x(is,)S 10 x(examine)S 10 x(the)S 10 x(ar)S
-1 x(guments)S 10 x(before)S 10 x(using)S 10 x(them)S 10 x(to)S 10 x
(compute)S 10 x(the)S 10 x(result)S 50 y 327 X(and)S 12 x(raise)S 
12 x(the)S 12 x(appropriate)S 12 x(exception)S 12 x(\(by)S 12 x(a)S
12 x(\252)S
XP /F53 114 22 1 0 20 18 18 24 0
<FF0FC0 FF3FE0 FF7FE0 07F040 07E000 07C000 078000 078000 070000
 070000 070000 070000 070000 070000 070000 FFFC00 FFFC00 FFFC00>
PXLC RP
1040 2941 XY F53(r)S
XP /F53 97 22 2 0 21 18 18 24 0
<1FE000 7FF800 7FFC00 783C00 301E00 000E00 000E00 03FE00 1FFE00
 7E0E00 F00E00 E00E00 E00E00 F01E00 F83E00 7FFFE0 3FE7E0 0F83E0>
PXLC RP
1062 2941 XY F53(ais)S
XP /F53 101 22 3 0 19 18 18 16 0
<03E0 0FF8 1FFC 3C1E 780E 7007 E007 FFFF FFFF FFFF E000 E000 7007
 7807 3C0F 1FFE 0FFC 03F0>
PXLC RP
1128 2941 XY F53(e)S F6(\272)S 10 x(statement\))S 12 x(if)S 12 x
(one)S 12 x(of)S 12 x(the)S 11 x(permitted)S 11 x(results)S 11 x
(\(i.e.,)S 12 x(any)S 12 x(value)S 11 x(dif)S -1 x(fering)S 50 y 
327 X(from)S 10 x(the)S 11 x(mathematical)S 11 x(result)S 11 x(by)S
11 x(no)S 11 x(more)S 11 x(than)S 11 x(the)S 10 x(maximum)S 11 x
(relative)S 10 x(error\))S 10 x(would)S 11 x(exceed)S 10 x F53
(FLOAT_TYPE)S
(\015SAFE_LARGE)S 3128 Y 1281 X F6(10)S
%%PageTrailer
/paper-automatic true SPS 1 PP EP
%%PageBoundingBox: 78 39 546 718

%%PageBoundingBox: (atend)
%%BeginPageSetup
1000 BP 3300 2550 PM /paper-automatic false SPS 327 0 XY
%%EndPageSetup
327 342 XY F6(in)S 16 x(absolute)S 15 x(value.)S 23 x(Or,)S 16 x
(implementors)S 16 x(can)S 16 x(omit)S 15 x(the)S 15 x(ar)S -1 x
(gument)S 17 x(prescreening)S 15 x(and)S 15 x(just)S 16 x(go)S 16 x
(ahead)S 15 x(and)S 15 x(compute,)S 15 x(relying)S 49 y 327 X(on)S
15 x(the)S 16 x(hardware)S 16 x(to)S 16 x(detect)S 15 x(and)S 16 x
(signal)S 16 x(in)S 16 x(the)S 16 x(natural)S 16 x(way)S 16 x(an)S
16 x(over\015ow)S 16 x(in)S 16 x(the)S 15 x(\014nal)S 16 x(result)S
(\320or)S 16 x(an)S 15 x(over\015ow)S 16 x(\(or)S 16 x(other)S 50 y 
327 X(exceptional)S 18 x(condition\))S 17 x(that)S 17 x(presages)S
17 x(over\015ow)S 17 x(in)S 17 x(the)S 17 x(\014nal)S 17 x(result,)S
18 x(even)S 17 x(though)S 17 x(it)S 17 x(may)S 17 x(occur)S 17 x
(well)S 17 x(before)S 17 x(the)S 17 x(\014nal)S 50 y 327 X(step)S 
15 x(in)S 15 x(the)S 16 x(process)S 16 x(of)S 16 x(obtaining)S 15 x
(that)S 15 x(result.)S 23 x(The)S 16 x(latter)S 15 x(technique)S 
15 x(entails)S 15 x(a)S 15 x(more)S 15 x(sophisticated)S 16 x
(analysis)S 16 x(on)S 15 x(the)S 15 x(part)S 50 y 327 X(of)S 15 x
(the)S 16 x(implementor,)S 16 x(who)S 15 x(must)S 16 x(be)S 16 x
(certain)S 16 x(that)S 16 x(extreme)S 16 x(ar)S -1 x(guments)S 16 x
(do)S 16 x(not)S 16 x(violate)S 16 x(some)S 16 x(implicit)S 16 x
(assumption)S 16 x(of)S 16 x(the)S 50 y 327 X(algorithm,)S 13 x
(causing)S 12 x(it)S 13 x(to)S 13 x(misbehave)S 12 x(and)S 13 x
(leading)S 13 x(to)S 13 x(an)S 13 x(unacceptable)S 13 x(numerical)S
13 x(result)S 13 x(rather)S 13 x(than)S 13 x(to)S 13 x(over\015ow,)S
13 x(but)S 13 x(that)S 49 y 327 X(extra)S 16 x(ef)S -1 x(fort)S 16 x
(is)S 15 x(usually)S 16 x(rewarded)S 16 x(by)S 16 x(a)S 15 x(mar)S
-1 x(ginally)S 16 x(more)S 16 x(ef)S -1 x(\014cient)S 17 x(and)S 
16 x(useful)S 16 x(product.)S 59 y 410 X(Recall)S 18 x(that,)S 19 x
(whenever)S 18 x(all)S 17 x(possible)S 18 x(results)S 17 x
(permitted)S 18 x(by)S 17 x(the)S 18 x(accuracy)S 18 x(requirements)S
17 x(are)S 18 x(less)S 18 x(than)S 18 x(or)S 18 x(equal)S 18 x(to)S
49 y 327 X F53(FLOAT_TYPE\015SAFE_LARGE)S 7 x F6(in)S 12 x(absolute)S
12 x(value,)S 12 x(the)S 12 x(implementation)S 12 x(must)S 12 x
(deliver)S 12 x(one)S 11 x(of)S 12 x(them)S 12 x(\(if)S 12 x(it)S 
11 x(does)S 11 x(not)S 12 x(suf)S -1 x(fer)S 12 x(one)S 50 y 327 X
(of)S 10 x(the)S 10 x(earlier)S 10 x(misfortunes\).)S 17 x(Through)S
11 x(that)S 10 x(provision)S 10 x(the)S 10 x(proposed)S 11 x
(standard)S 10 x(imposes)S 10 x(on)S 10 x(implementors)S 10 x(the)S
10 x(responsibility)S 50 y 327 X(of)S 18 x(ensuring)S 19 x(either)S
19 x(that)S 19 x(their)S 19 x(chosen)S 19 x(algorithm)S 19 x(does)S
19 x(not)S 18 x(inadvertently)S 18 x(over\015ow)S 19 x(\(or)S 19 x
(suf)S -1 x(fer)S 19 x(some)S 19 x(other)S 19 x(numerical)S 50 y 
327 X(exception\))S 15 x(in)S 15 x(the)S 15 x(calculation)S 15 x(of)S
15 x(an)S 15 x(intermediate)S 15 x(result)S 15 x(or)S 15 x(that,)S
15 x(if)S 15 x(it)S 15 x(does,)S 15 x(it)S 15 x(handles)S 14 x(the)S
15 x(exception)S 15 x(locally)S 15 x(and)S 15 x(goes)S 50 y 327 X
(on)S 12 x(to)S 13 x(compute)S 12 x(and)S 13 x(deliver)S 12 x(an)S
13 x(acceptable)S 13 x(result.)S 18 x(T)S -3 x(o)S 12 x(conform)S 
13 x(to)S 13 x(this)S 13 x(standard,)S 13 x(an)S 13 x
(implementation)S 13 x(cannot)S 13 x(be)S 13 x(so)S 13 x(na)S -1 x
(\177)S -13 x(\020ve)S 49 y 327 X(that)S 19 x(it)S 19 x(raises)S 
19 x(spurious)S 18 x(exceptions.)S 59 y 410 X(The)S 13 x(three)S 
13 x(\252misfortunes\272)S 13 x(described)S 14 x(above)S 13 x(share)S
13 x(two)S 14 x(characteristics:)S 18 x(\(1\))S 14 x(they)S 13 x
(are)S 13 x(not)S 13 x(peculiar)S 13 x(to)S 14 x(the)S 14 x
(elementary)S 49 y 327 X(functions)S 9 x(and)S 9 x(can)S 10 x
(indeed)S 10 x(occur)S 9 x(in)S 9 x(many)S 10 x(places)S 9 x(in)S 
10 x(arbitrary)S 9 x(Ada)S 10 x(programs,)S 10 x(and)S 10 x(\(2\))S
10 x(Ada)S 9 x(provides)S 10 x(prede\014ned)S 9 x(exceptions)S 50 y 
327 X(to)S 13 x(be)S 12 x(used)S 12 x(to)S 12 x(signal)S 12 x(their)S
13 x(occurrence.)S 18 x(It)S 13 x(seemed)S 13 x(inappropriate)S 12 x
(for)S 12 x(this)S 12 x(standard)S 12 x(to)S 13 x(distinguish)S 12 x
(their)S 12 x(occurrence)S 13 x(in)S 12 x(the)S 50 y 327 X(context)S
11 x(of)S 11 x(the)S 11 x(elementary)S 11 x(functions)S 12 x(by)S 
11 x(prescribing)S 11 x(the)S 11 x(raising)S 11 x(of)S 11 x(a)S 11 x
(new)S 11 x(exception)S 11 x(\(a)S 11 x(possibility)S 12 x(that)S 
11 x(was)S 11 x(considered\);)S 50 y 327 X(it)S 16 x(would)S 15 x
(not)S 16 x(have)S 15 x(been)S 15 x(possible)S 16 x(to)S 16 x(do)S
15 x(so)S 16 x(uniformly)S 16 x(and)S 16 x(consistently,)S 17 x(in)S
16 x(any)S 16 x(case.)S 58 y 410 X(In)S 12 x(fact,)S 13 x
(consideration)S 13 x(was)S 12 x(even)S 12 x(given)S 12 x(to)S 12 x
(carrying)S 12 x(the)S 12 x(preceding)S 12 x(decision)S 12 x(to)S 
12 x(its)S 12 x(extreme,)S 12 x(viz.,)S 12 x(to)S 13 x(dispensing)S
12 x(with)S 50 y 327 X(the)S 14 x F53(ARGUMENT_ERROR)S 12 x F6
(exception)S 15 x(and)S 15 x(instead)S 15 x(prescribing)S 14 x(the)S
14 x(raising)S 15 x(of)S 14 x F53(CONSTRAINT_ERROR)S 12 x F6(for)S
15 x(invalid)S 14 x(ar)S -1 x(guments,)S 49 y 327 X(on)S 17 x(the)S
17 x(grounds)S 17 x(that)S 17 x(an)S 17 x(invalid)S 18 x(ar)S -1 x
(gument)S 17 x(represents)S 17 x(the)S 17 x(violation)S 17 x(of)S 
17 x(a)S 17 x(constraint)S 17 x(in)S 18 x(the)S 18 x(broad)S 17 x
(sense)S 18 x(of)S 18 x(the)S 18 x(term.)S 50 y 327 X(While)S 15 x
(that)S 14 x(treatment)S 14 x(of)S 15 x(invalid)S 14 x(ar)S -1 x
(guments)S 15 x(would)S 14 x(parallel)S 14 x(the)S 14 x(handling)S
14 x(of)S 14 x(division)S 14 x(by)S 14 x(zero)S 14 x(\(which)S 14 x
(originally)S 14 x(raised)S 50 y 327 X F53(NUMERIC_ERROR)S F6(,)S 
9 x(but)S 12 x(under)S 13 x(the)S 13 x(in\015uence)S 13 x(of)S 12 x
(AI-00387)S 13 x(now)S 13 x(raises)S 13 x F53(CONSTRAINT_ERROR)S F6
(\),)S 10 x(it)S 13 x(was)S 13 x(felt)S 13 x(that)S 13 x
(prescribing)S 50 y 327 X(the)S 16 x(use)S 17 x(of)S 17 x(a)S 17 x
(new)S 17 x(exception)S 17 x(to)S 17 x(report)S 17 x(exceptional)S
17 x(conditions)S 17 x F7(uniquely)S 15 x(r)S -2 x(elated)S 15 x(to)S
15 x(the)S 14 x(functionality)S 15 x(of)S 14 x(this)S 15 x(package)S
F6(,)S 50 y 327 X(following)S 15 x(the)S 15 x(precedent)S 14 x(set)S
14 x(by)S 14 x(the)S 14 x(prede\014ned)S 14 x(I/O)S 14 x(packages,)S
15 x(was)S 14 x(more)S 14 x(useful)S 15 x(to)S 14 x(the)S 14 x
(application)S 15 x(programmer.)S 58 y 410 X(The)S 15 x(name)S 15 x 
F53(ARGUMENT_ERROR)S 12 x F6(exported)S 15 x(by)S 15 x
(instantiations)S 15 x(of)S 15 x F53(GENERIC_ELEMENTARY_FUNCTIONS)S
10 x F6(is)S 16 x(a)S 15 x(renaming)S 50 y 327 X(of)S 15 x(the)S 
16 x(exception)S 16 x(of)S 16 x(the)S 15 x(same)S 15 x(name)S 16 x
(declared)S 16 x(in)S 16 x(the)S 15 x(package)S 16 x F53
(ELEMENTARY_FUNCTIONS_EXCEPTIONS)S F6(,)S 10 x(whose)S 15 x(spec-)S
49 y 327 X(i\014cation)S 19 x(is)S 18 x(also)S 19 x(contained)S 19 x
(in)S 19 x(this)S 19 x(proposed)S 19 x(standard.)S 33 x(Therefore,)S
20 x(multiple)S 19 x(instantiations,)S 20 x(should)S 18 x(they)S 
19 x(be)S 18 x(needed)S 50 y 327 X(in)S 18 x(the)S 18 x(same)S 18 x
(application,)S 18 x(do)S 18 x(not)S 18 x(give)S 18 x(rise)S 18 x
(to)S 18 x(multiple)S 18 x F53(ARGUMENT_ERROR)S 15 x F6(exceptions.)S
30 x(Thus)S 18 x(it)S 18 x(is)S 18 x(not)S 18 x(necessary)S 18 x(to)S
50 y 327 X(establish)S 19 x(a)S 18 x(handler)S 18 x(for)S 19 x
(multiple)S 18 x(instances)S 19 x(of)S 19 x(this)S 18 x(exception;)S
20 x(one)S 18 x(handler)S 18 x(suf)S -1 x(\014ces)S 19 x(for)S 18 x
(all)S 18 x(the)S 18 x(instantiations.)S 31 x(Un-)S 50 y 327 X
(fortunately,)S 18 x(this)S 18 x(convenience)S 18 x(is)S 17 x
(partially)S 17 x(of)S -1 x(fset)S 18 x(by)S 18 x(the)S 18 x(fact)S
17 x(that)S 17 x(the)S 18 x(name)S 17 x F53(ARGUMENT_ERROR)S 15 x 
F6(will)S 18 x(not)S 17 x(be)S 18 x(directly)S 50 y 327 X(visible)S
19 x(in)S 19 x(the)S 19 x(case)S 19 x(of)S 19 x(multiple)S 19 x
(instantiations,)S 21 x(and)S 19 x(an)S 19 x(expanded)S 19 x(name)S
18 x(will)S 19 x(have)S 19 x(to)S 19 x(be)S 19 x(used.)S 34 x(The)S
19 x(alternative)S 19 x(of)S 50 y 327 X(not)S 18 x(exporting)S 17 x
(the)S 17 x(name)S 18 x F53(ARGUMENT_ERROR)S 14 x F6(from)S 18 x
(instantiations,)S 18 x(and)S 17 x(requiring)S 17 x(the)S 17 x(user)S
17 x(to)S 18 x(\252)S
XP /F53 119 22 1 0 20 18 18 24 0
<FF1FE0 FFBFE0 FF1FE0 380380 380380 380380 380380 38E380 19F300
 19F300 19B300 1DB700 1DB700 1DB700 1DB700 0F1E00 0F1E00 0F1E00>
PXLC RP
1891 2019 XY F53(wit)S
XP /F53 104 22 0 0 21 25 25 24 0
<7E0000 FE0000 7E0000 0E0000 0E0000 0E0000 0E0000 0E3C00 0EFF00
 0FFF80 0F8780 0F0380 0F0380 0E0380 0E0380 0E0380 0E0380 0E0380
 0E0380 0E0380 0E0380 0E0380 7FC7F0 FFE7F8 7FC7F0>
PXLC RP
1957 2019 XY F53(h)S F6(\272)S 16 x(and)S 18 x(\252)S
XP /F53 117 22 0 0 21 18 18 24 0
<7E1F80 FE3F80 7E1F80 0E0380 0E0380 0E0380 0E0380 0E0380 0E0380
 0E0380 0E0380 0E0380 0E0380 0E0780 0F0F80 0FFFF0 07FFF8 03E3F0>
PXLC RP
2110 2019 XY F53(use)S F6(\272)S 18 x F53(EL)S
XP /F53 45 22 2 11 19 14 3 24 0
<FFFF80 FFFF80 FFFF80>
PXLC RP
2255 2019 XY F53(-)S 49 y 327 X(EMENTARY_FUNCTIONS_EXCEPTIONS)S 10 x 
F6(to)S 16 x(gain)S 16 x(direct)S 16 x(visibility)S 16 x(of)S 16 x
(the)S 15 x(name)S 16 x F53(ARGUMENT_ERROR)S F6(,)S 12 x(was)S 16 x
(considered,)S 16 x(but)S 50 y 327 X(it)S 17 x(was)S 17 x(rejected)S
17 x(on)S 17 x(the)S 16 x(grounds)S 16 x(that)S 16 x(the)S 17 x
(present)S 17 x(proposal)S 17 x(is)S 17 x(more)S 17 x(convenient)S
16 x(for)S 16 x(the)S 17 x(user)S 16 x(when)S 17 x(there)S 16 x(is)S
17 x(only)S 17 x(one)S 50 y 327 X(instantiation,)S 17 x(as)S 17 x
(is)S 17 x(expected)S 16 x(to)S 16 x(be)S 16 x(the)S 17 x(common)S
17 x(case.)S 27 x(The)S 17 x(precedent)S 17 x(set)S 17 x(by)S 17 x
(the)S 16 x(exporting)S 16 x(of)S 17 x(renamed)S 16 x(exceptions)S
50 y 327 X(by)S 15 x(some)S 16 x(of)S 16 x(the)S 16 x(prede\014ned)S
16 x(I/O)S 16 x(packages,)S 16 x(which)S 16 x(unfortunately)S 16 x
(suf)S -1 x(fer)S 16 x(from)S 15 x(the)S 16 x(same)S 16 x
(name-visibility)S 16 x(problem,)S 16 x(also)S 50 y 327 X(\014gured)S
19 x(in)S 19 x(this)S 20 x(decision.)S 2407 Y 327 X F52(If)S 18 x
(over)S
(\015ow)S 17 x(is)S 17 x(signaled)S 18 x(by)S 17 x(an)S 18 x
(exception,)S 18 x(why)S 18 x(isn't)S 18 x(under\015ow)S 17 x(so)S
18 x(signaled?)S 2484 Y 410 X F6(The)S 18 x(proposed)S 18 x
(standard)S 19 x(does)S 19 x(not)S 19 x(call)S 19 x(for)S 19 x(the)S
19 x(raising)S 19 x(of)S 19 x(an)S 19 x(exception)S 19 x(upon)S 19 x
(under)S
(\015ow)S 19 x(primarily)S 19 x(because)S 18 x(of)S 50 y 327 X(the)S
17 x(precedent)S 18 x(set)S 17 x(by)S 18 x(Ada,)S 18 x(which)S 17 x
(does)S 17 x(not)S 18 x(have)S 17 x(a)S 17 x(prede\014ned)S 17 x
(exception)S 17 x(for)S 18 x(under\015ow.)S 29 x(In)S 17 x(fact,)S
18 x(under\015ow)S 17 x(is)S 17 x(not)S 50 y 327 X(considered)S 12 x
(an)S 12 x(exceptional)S 12 x(condition)S 12 x(by)S 12 x(Ada,)S 13 x
(by)S 12 x(virtue)S 12 x(of)S 12 x(the)S 12 x(fact)S 12 x(that)S 
12 x(the)S 12 x(interval)S 12 x(between)S 12 x(zero)S 13 x(and)S 
12 x F53(T\015SAFE_SMALL)S 50 y 327 X F6(\(for)S 18 x(any)S 17 x
(real)S 18 x(subtype)S 18 x F53(T)S F6(\))S 17 x(is)S 17 x(a)S 17 x
(normal)S 17 x(safe)S 18 x(interval.)S 29 x(This)S 18 x(treatment)S
18 x(by)S 17 x(Ada)S 18 x(is)S 18 x(consonant)S 18 x(both)S 17 x
(with)S 18 x(the)S 18 x(returning)S 50 y 327 X(of)S 18 x
(\252denormalized)S 18 x(numbers\272)S 18 x(by)S 18 x(hardware)S 
18 x(obeying)S 18 x(the)S 18 x(IEEE)S 19 x(standards)S 19 x(for)S 
18 x(\015oating-point)S 18 x(arithmetic)S 18 x(and)S 18 x(with)S 
18 x(the)S 49 y 327 X(classical)S 16 x(recovery)S 17 x(from)S 17 x
(hardware)S 17 x(under\015ow,)S 18 x(namely,)S 17 x(\015ushing)S 
17 x(to)S 16 x(zero.)S 59 y 410 X(The)S 12 x(possibility)S 12 x(of)S
12 x(under\015ow)S 12 x(and,)S 13 x(in)S 13 x(particular,)S 13 x
(\015ushing)S 13 x(to)S 12 x(zero,)S 13 x(introduces)S 12 x(the)S 
12 x(chance)S 12 x(that)S 13 x(the)S 13 x(computed)S 13 x(result)S
49 y 327 X(of)S 12 x(some)S 13 x(of)S 12 x(the)S 12 x(elementary)S
12 x(functions)S 12 x(might)S 12 x(be)S 12 x F53(0.0)S 12 x F6(even)S
12 x(though)S 12 x F53(0.0)S 12 x F6(is)S 12 x(not)S 12 x(in)S 12 x
(their)S 13 x(mathematical)S 12 x(range)S 12 x(for)S 12 x(any)S 13 x
(\014nite)S 50 y 327 X(ar)S -1 x(gument.)S 25 x(For)S 15 x(example,)S
17 x F53(EXP)S 15 x F6(of)S 16 x(an)S 15 x(extremely)S 16 x
(negative)S 15 x(ar)S -1 x(gument)S 16 x(might)S 16 x(under\015ow)S
15 x(to)S 15 x F53(0.0)S F6(,)S 16 x(even)S 15 x(though)S
XP /F21 101 19 2 0 16 18 18 16 0
<01F0 0708 0C08 1804 3808 3008 7030 7FC0 E000 E000 E000 E000 E000
 E004 6008 6010 3060 0F80>
PXLC RP
2114 2891 XY F21(e)S
XP /F74 /cmtt10 300 41.5 29.1 128 [0 -10 22 29] PXLF RP
XP /F74 88 21 1 0 20 25 25 24 0
<7F1F80 7F3F80 7F1F80 0E1E00 0E1C00 073C00 073800 03B800 03F000
 01F000 01E000 00E000 01E000 01F000 03F000 03B800 07B800 071C00
 071C00 0E0E00 0E0E00 1C0700 7F1FC0 FF1FE0 7F1FC0>
PXLC RP
2133 2876 XY F74(X)S 15 y 18 x F6(cannot)S 50 y 327 X
(mathematically)S 13 x(be)S 13 x(exactly)S 13 x(zero)S 14 x(for)S 
13 x(any)S 13 x(\014nite)S 13 x F53(X)S F6(.)S 13 x(Similarly,)S 
14 x F53(X)S
XP /F53 42 22 2 4 19 22 18 24 0
<01C000 01C000 01C000 01C000 71C700 F9CF80 7FFF00 1FFC00 07F000
 07F000 1FFC00 7FFF00 F9CF80 71C700 01C000 01C000 01C000 01C000>
PXLC RP
1343 2941 XY F53(**Y)S 13 x F6(can)S 13 x(under\015ow)S 13 x(to)S 
13 x F53(0.0)S 12 x F6(for)S 13 x(positive)S 13 x F53(X)S 13 x F6
(and)S 13 x(extremely)S 50 y 327 X(negative)S 15 x F53(Y)S F6(,)S 
16 x(even)S 15 x(though)S 15 x(mathematically)S 15 x F53(X)S
XP /F74 89 21 1 0 20 25 25 24 0
<FE0FE0 FF1FE0 FE0FE0 1C0700 1C0700 0E0E00 0E0E00 071C00 071C00
 071C00 03B800 03B800 01F000 01F000 00E000 00E000 00E000 00E000
 00E000 00E000 00E000 00E000 03F800 07FC00 03F800>
PXLC RP
1048 2976 XY F74(Y)S 15 y 18 x F6(cannot)S 15 x(be)S 15 x(exactly)S
16 x(zero)S 16 x(for)S 15 x(any)S 16 x(\014nite)S 15 x F53(Y)S 16 x 
F6(\(when)S 16 x F53(X)S 15 x F6(is)S 15 x(nonzero\).)S 23 x
(Another)S 3128 Y 1281 X(11)S
%%PageTrailer
/paper-automatic true SPS 1 PP EP
%%PageBoundingBox: 78 39 546 718

%%PageBoundingBox: (atend)
%%BeginPageSetup
1000 BP 3300 2550 PM /paper-automatic false SPS 327 0 XY
%%EndPageSetup
327 342 XY F6(disadvantage)S 16 x(of)S 16 x(\015ushing)S 17 x(to)S
16 x(zero)S 16 x(is)S 16 x(that)S 16 x(it)S 16 x(fails)S 16 x(to)S
17 x(satisfy)S 16 x(small-relative-error)S 16 x(requirements.)S 26 x
(For)S 17 x(these)S 16 x(reasons,)S 17 x(an)S 49 y 327 X(earlier)S
12 x(version)S 13 x(of)S 13 x(the)S 12 x(proposed)S 12 x(standard)S
12 x(actually)S 12 x(called)S 12 x(for)S 12 x(the)S 12 x(raising)S
13 x(of)S 12 x(an)S 12 x(exception,)S 12 x(rather)S 12 x(than)S 12 x
(returning)S 12 x(zero,)S 13 x(in)S 50 y 327 X(under\015ow)S 15 x
(situations)S
(\320for)S 15 x(those)S 16 x(functions)S 15 x(whose)S 15 x
(mathematical)S 15 x(range)S 16 x(does)S 15 x(not)S 15 x(include)S
16 x(zero.)S 23 x(That)S 15 x(was)S 15 x(abandoned,)S 50 y 327 X
(however,)S 17 x(because)S 16 x(it)S 16 x(would)S 16 x(have)S 16 x
(been)S 15 x(too)S 16 x(radical)S 16 x(a)S 16 x(departure)S 15 x
(from)S 16 x(common)S 16 x(practice,)S 16 x(not)S 16 x(to)S 16 x
(mention)S 16 x(inconsistent)S 50 y 327 X(with)S 18 x(Ada's)S 17 x
(handling)S 17 x(of)S 18 x(the)S 18 x(prede\014ned)S 18 x
(operators.)S 60 y 410 X(The)S 11 x(proposed)S 11 x(standard)S 11 x
(substitutes)S 12 x(a)S 11 x(small-absolute-error)S 11 x
(requirement)S 11 x(for)S 11 x(the)S 11 x(small-relative-error)S 
11 x(requirement)S 12 x(in)S 50 y 327 X(under\015ow)S 14 x
(situations)S 14 x(\(where)S 14 x(the)S 14 x(latter)S 14 x(is)S 14 x
(unsatis)S
(\014able\).)S 19 x(Furthermore,)S 14 x(the)S 14 x(range)S 14 x(de)S
(\014nitions)S 14 x(in)S 14 x(the)S 14 x(proposed)S 14 x(standard)S
50 y 327 X(include)S 14 x(asymptotic)S 13 x(limits.)S 18 x(Their)S
13 x(inclusion)S 13 x(not)S 13 x(only)S 13 x(legalizes)S 13 x(the)S
13 x(returning)S 14 x(of)S 13 x F53(0.0)S 13 x F6(in)S 14 x(the)S 
14 x(cases)S 14 x(described)S 13 x(above,)S 13 x(but)S 50 y 327 X
(also)S 12 x(legalizes)S 12 x(the)S 12 x(returning)S 12 x(of)S
XP /F22 /cmsy10 300 41.5 41.5 128 [-1 -40 45 32] PXLNF RP
XP /F22 6 32 2 -1 29 27 28 32 0
<00060000 00060000 00060000 00060000 00060000 00060000 00060000
 00060000 00060000 00060000 00060000 00060000 00060000 FFFFFFE0
 FFFFFFE0 00060000 00060000 00060000 00060000 00060000 00060000
 00060000 00060000 00060000 00060000 00060000 FFFFFFE0 FFFFFFE0>
PXLC RP
838 751 XY F22(\006)S F53(1.0)S 11 x F6(in)S 12 x(the)S 12 x(case)S
12 x(of)S 12 x(suf)S -1 x(\014ciently)S 12 x(extreme)S 12 x(ar)S 
-1 x(guments)S 13 x(to)S 12 x F53(TAN)S
XP /F53 72 22 1 0 20 25 25 24 0
<7F1FC0 FFBFE0 7F1FC0 1C0700 1C0700 1C0700 1C0700 1C0700 1C0700
 1C0700 1FFF00 1FFF00 1FFF00 1C0700 1C0700 1C0700 1C0700 1C0700
 1C0700 1C0700 1C0700 1C0700 7F1FC0 FFBFE0 7F1FC0>
PXLC RP
1823 751 XY F53(H)S 12 x F6(or)S 12 x F53(COTH)S F6(;)S 11 x(this)S
12 x(is)S 12 x(desirable)S 49 y 327 X(because,)S 16 x(even)S 16 x
(though)S 16 x(there)S 16 x(is)S 16 x(no)S 16 x(\014nite)S 16 x F53
(X)S 16 x F6(for)S 16 x(which)S 16 x(the)S 16 x(hyperbolic)S 16 x
(tangent)S 16 x(or)S 16 x(cotangent)S 16 x(of)S 16 x F53(X)S 16 x 
F6(is)S 16 x(exactly)S
XP /F20 43 32 2 -4 29 24 28 32 0
<00060000 00060000 00060000 00060000 00060000 00060000 00060000
 00060000 00060000 00060000 00060000 00060000 00060000 FFFFFFE0
 FFFFFFE0 00060000 00060000 00060000 00060000 00060000 00060000
 00060000 00060000 00060000 00060000 00060000 00060000 00060000>
PXLC RP
2129 800 XY F20(+)S F53(1.0)S 15 x F6(or)S
XP /F22 0 32 3 9 28 11 2 32 0
<FFFFFF80 FFFFFF80>
PXLC RP
327 850 XY F22(\000)S F53(1.0)S F6(,)S 15 x(these)S 15 x(values)S 
15 x(may)S 15 x(be)S 15 x(closer)S 15 x(to)S 15 x(the)S 15 x
(mathematical)S 15 x(result)S 15 x(than)S 15 x(any)S 15 x(other)S 
15 x(representable)S 15 x(number.)S 1011 Y 327 X F52(Why)S 20 x
(does)S 20 x(0.0**0.0)S 20 x(raise)S 20 x(ARGUMENT\210ERROR?)S 1096 Y 
410 X F6(The)S 11 x(point)S 11 x F53(X)S 12 x F20(=)S 12 x F53(Y)S
11 x F20(=)S 12 x F53(0.0)S 10 x F6(is)S 11 x(excluded)S 11 x(from)S
11 x(the)S 11 x(domain)S 11 x(of)S 11 x F53(X**Y)S 10 x F6(because)S
11 x(it)S 11 x(is)S 11 x(not)S 11 x(possible)S 12 x(to)S 11 x
(assign)S 11 x(a)S 11 x(unique)S 11 x(value)S 50 y 327 X(to)S 14 x
(the)S 14 x(result,)S 14 x(or)S 14 x(to)S 13 x(pick)S 13 x(a)S 14 x
(conventional)S 13 x(value)S 14 x(that)S 13 x(is)S 13 x(suitable)S
14 x(for)S 13 x(all)S 13 x(applications.)S 19 x(Essentially,)S 14 x
(this)S 14 x(acknowledges)S 13 x(the)S 50 y 327 X(fact)S 14 x(that)S
14 x(the)S 14 x(limiting)S 14 x(value)S 14 x(of)S 14 x F53(X)S -15 y 
F74(Y)S 15 y 16 x F6(as)S 14 x(both)S 14 x F53(X)S 13 x F6(and)S 
14 x F53(Y)S 14 x F6(approach)S 14 x F53(0.0)S 14 x F6(depends)S 
14 x(on)S 14 x(exactly)S 14 x F7(how)S 14 x F53(X)S 14 x F6(and)S 
14 x F53(Y)S 14 x F6(approach)S 14 x F53(0.0)S -1 x F6(.)S 60 y 
410 X(The)S 14 x(committee)S 15 x(considered)S 14 x(de\014ning)S 
15 x(the)S 14 x(result)S 15 x(of)S 15 x F53(0.0**0.0)S 13 x F6(in)S
15 x(this)S 14 x(standard)S 14 x(to)S 14 x(be)S 15 x F53(1.0)S -1 x 
F6(,)S 14 x(as)S 15 x(advocated)S 14 x(by)S 14 x(some)S 50 y 327 X
(numerical)S 13 x(analysts)S 12 x([19];)S 13 x(this)S 13 x(would)S
13 x(have)S 13 x(had)S 13 x(the)S 12 x(virtue)S 13 x(of)S 13 x
(agreeing)S 13 x(with)S 13 x(the)S 13 x(prede\014ned)S
XP /F53 34 22 4 14 17 25 11 16 0
<E038 F078 F078 F078 F078 F078 F078 F078 E038 E038 6030>
PXLC RP
1815 1306 XY F53("**")S 12 x F6(operator)S 13 x(\(whose)S 13 x
(right)S 50 y 327 X(operand)S 11 x(has)S 11 x(type)S 11 x F53
(INTEGER)S F6(\).)S 9 x(However,)S 12 x(the)S 11 x(committee)S 11 x
(defended)S 12 x(its)S 11 x(decision)S 11 x(on)S 11 x(the)S 11 x
(grounds)S 11 x(that)S 11 x(exponentiation)S 11 x(by)S 11 x(an)S 
50 y 327 X(integer)S 12 x(and)S 11 x(exponentiation)S 11 x(by)S 11 x
(a)S 11 x(real)S 12 x(number)S 11 x(are)S 11 x(two)S 12 x(dif)S -1 x
(ferent)S 11 x(functions,)S 12 x(as)S 11 x(re\015ected)S 12 x(in)S
11 x(their)S 12 x(conventional)S 12 x(de\014nitions)S 49 y 327 X
(\(in)S 15 x(terms)S 14 x(of)S 15 x(repeated)S 15 x(multiplication)S
14 x(in)S 14 x(the)S 15 x(former)S 15 x(case,)S 15 x(and)S 14 x
(exponentials)S 15 x(and)S 15 x(logarithms)S 14 x(in)S 15 x(the)S 
14 x(latter\).)S 61 y 410 X(The)S 17 x(consequences)S 17 x(of)S 17 x
(the)S 18 x(committee's)S 17 x(decision)S 17 x(\(regardless)S 18 x
(of)S 17 x(which)S 17 x(way)S 17 x(it)S 17 x(went,)S 18 x
(ultimately\))S 18 x(were)S 17 x(softened)S 50 y 327 X(by)S 17 x
(the)S 18 x(realization)S 18 x(that)S 17 x(individual)S 18 x
(programmers)S 18 x(could)S 18 x(easily)S 18 x(enough)S 18 x(obtain)S
18 x(any)S 18 x(other)S 18 x(behavior)S 18 x(required)S 17 x(by)S 
18 x(their)S 49 y 327 X(application)S 18 x(by)S 17 x(putting)S 17 x
(an)S 17 x(appropriate)S 18 x(shell)S 18 x(around)S 18 x F53("**")S
F6(.)S 29 x(Thus,)S 18 x(in)S 18 x(the)S 17 x(\014nal)S 18 x
(analysis,)S 19 x(the)S 18 x(committee)S 18 x(focused)S 17 x(on)S 
50 y 327 X(what)S 17 x(seemed)S 17 x(most)S 17 x(desirable)S 17 x
(for)S 18 x(the)S 17 x(default)S 17 x(behavior)S 17 x(of)S 17 x F53
(0.0**0.0)S -2 x F6(,)S 18 x(and)S 17 x(it)S 18 x(concluded)S 17 x
(that)S 17 x(the)S 17 x(most)S 17 x(conservative)S 50 y 327 X(and)S
18 x(safest)S 18 x(choice)S 18 x(was)S 18 x(the)S 18 x(most)S 18 x
(desirable.)S 32 x(The)S 19 x(decision)S 19 x(to)S 18 x(raise)S 18 x 
F53(ARGUMENT_ERROR)S 16 x F6(was)S 19 x(deemed)S 18 x(to)S 18 x
(provide)S 18 x(the)S 50 y 327 X(safest)S 15 x(default)S 16 x
(behavior)S 16 x(because,)S 16 x(in)S 15 x(those)S 15 x(rare)S 15 x
(applications)S 16 x(in)S 15 x(which)S 15 x F53(0.0**0.0)S 14 x F6
(actually)S 15 x(could)S 16 x(arise,)S 16 x(the)S 16 x(raising)S 
15 x(of)S 50 y 327 X F53(ARGUMENT_ERROR)S 12 x F6(forces)S 15 x(the)S
15 x(programmer)S 15 x(to)S 16 x F7(think)S 15 x F6(about)S 15 x
(the)S 15 x(mathematics)S 15 x(of)S 15 x(the)S 16 x(application.)S
60 y 410 X(The)S 11 x(alternative)S 12 x(philosophy,)S 12 x(that)S
11 x(of)S 11 x(providing)S 12 x(a)S 12 x(numerical)S 11 x(result)S
12 x(\(like)S 11 x F53(1.0)S -1 x F6(\))S 12 x(by)S 11 x
(convention,)S 12 x(on)S 11 x(the)S 11 x(grounds)S 11 x(that)S 11 x
(it)S 50 y 327 X(is)S 13 x(desirable)S 13 x(for)S 13 x(at)S 13 x
(least)S 14 x(some)S 14 x(applications,)S 13 x(is)S 13 x
(appropriate)S 14 x(for)S 13 x(a)S 13 x(language)S 13 x(lacking)S 
13 x(exceptions)S 13 x(and)S 13 x(exception)S 13 x(handlers,)S 50 y 
327 X(especially)S 13 x(when)S 14 x(it)S 13 x(is)S 14 x(backed)S 
14 x(up)S 14 x(by)S 14 x(something)S 13 x(like)S 14 x(a)S 14 x
(\252sticky)S
(\272)S 13 x(\015ag)S 14 x(to)S 14 x(allow)S 13 x(detection)S 13 x
(of)S 13 x(the)S 13 x(case)S 13 x(when)S 14 x(it)S 13 x(occurs)S 
14 x(but)S 49 y 327 X(is)S 13 x F7(not)S 13 x F6(desired)S 13 x
(\(without)S 13 x(imposing)S 13 x(an)S 13 x(undue)S 13 x(cost)S 13 x
(on)S 13 x(the)S 13 x(user)S 13 x(when)S 14 x(it)S 13 x F7(is)S 13 x 
F6(desired\);)S 13 x(it)S 13 x(is)S 14 x(much)S 13 x(more)S 14 x(in)S
13 x(the)S 13 x(conservative)S 50 y 327 X(style)S 15 x(and)S 14 x
(culture)S 14 x(of)S 14 x(Ada,)S 15 x(however,)S 14 x(not)S 15 x(to)S
14 x(impose)S 14 x(particular)S 14 x(programming)S 15 x(disciplines)S
14 x(on)S 14 x(users)S 15 x(and)S 14 x(to)S 14 x(provide)S 14 x
(only)S 50 y 327 X(minimal)S 15 x(and)S 15 x(safe)S 14 x
(capabilities)S 14 x(out)S 15 x(of)S 14 x(which)S 15 x(the)S 15 x
(user)S 15 x(can)S 14 x(fashion)S 14 x(whatever)S 14 x(discipline)S
14 x(is)S 15 x(appropriate.)S 2285 Y 327 X F52(How)S 17 x(are)S 16 x
(portable)S 16 x(implementations)S 17 x(of)S 16 x
(GENERIC\210ELEMENT)S -4 x(AR)S -1 x(Y\210FUNCTIONS)S 62 y 327 X
(accommodated?)S 2432 Y 410 X F6(T)S -3 x(wo)S 22 x(kinds)S 22 x(of)S
22 x(implementations)S 21 x(of)S 22 x F53
(GENERIC_ELEMENTARY_FUNCTIONS)S 15 x F6(are)S 21 x(envisioned.)S 
41 x(On)S 22 x(the)S 22 x(one)S 21 x(hand,)S 50 y 327 X(vendors)S 
17 x(of)S 17 x(Ada)S 16 x(compilers)S 16 x(for)S 16 x(speci\014c)S
17 x(hardware)S 16 x(might)S 17 x(have)S 16 x(an)S 16 x(interest)S
17 x(in)S 16 x(producing)S 16 x(tailored)S 16 x(implementations)S 
16 x(of)S 50 y 327 X F53(GENERIC_ELEMENTARY_FUNCTIONS)S 9 x F6(for)S
15 x(that)S 15 x(hardware;)S 15 x(for)S 14 x(such)S 15 x
(implementations,)S 15 x(portability)S 15 x(is)S 14 x(not)S 15 x(a)S
14 x(concern,)S 15 x(and)S 50 y 327 X(major)S 11 x(portions)S 11 x
(of)S 11 x(those)S 11 x(implementations)S 11 x(might)S 11 x(not)S 
11 x(even)S 11 x(be)S 11 x(written)S 11 x(in)S 12 x(Ada.)S 18 x(On)S
12 x(the)S 12 x(other)S 11 x(hand,)S 12 x(independent)S 11 x
(software)S 50 y 327 X(producers)S 19 x(could)S 20 x(have)S 20 x(an)S
19 x(interest)S 19 x(in)S 19 x(developing)S 20 x(a)S 20 x(single)S
20 x(implementation)S 20 x(of)S 20 x F53
(GENERIC_ELEMENTARY_FUNCTIONS)S 49 y 327 X F6(that)S 17 x(is)S 17 x
(portable)S 17 x(to)S 17 x(a)S 17 x(wide)S 17 x(variety)S 17 x(of)S
17 x(dif)S -1 x(ferent)S 17 x(machines)S 17 x(and)S 17 x(Ada)S 17 x
(systems.)S 28 x(While)S 17 x(both)S 17 x(kinds)S 17 x(are)S 17 x
(allowed)S 17 x(by)S 17 x(the)S 50 y 327 X(speci\014cations,)S 14 x
(portable)S 14 x(implementations\320understandably)S 14 x(the)S 13 x
(more)S 14 x(challenging)S 13 x(of)S 13 x(the)S 14 x(two\320are)S 
14 x(af)S -1 x(fected)S 14 x(by)S 13 x(certain)S 50 y 327 X(special)S
13 x(considerations)S 12 x(that)S 13 x(do)S 12 x(not)S 13 x(apply)S
12 x(to)S 12 x(tailored)S 13 x(ones)S 12 x(\(but)S 13 x(they)S 13 x
(also)S 12 x(bene\014t)S 13 x(from)S 12 x(some)S 12 x(mild)S 13 x
(concessions,)S 12 x(like)S 12 x(the)S 50 y 327 X(ones)S 15 x
(inherent)S 15 x(in)S 15 x(the)S 15 x(treatment)S 15 x(of)S 15 x
(prescribed)S 15 x(results)S 15 x(or)S 15 x(range)S 15 x(limits)S 
15 x(that)S 15 x(are)S 15 x(not)S 15 x(safe)S 15 x(numbers\).)S 60 y 
410 X(It)S 14 x(is)S 13 x(highly)S 13 x(unlikely)S 13 x(that)S 13 x
(an)S 13 x(implementation)S 14 x(of)S 13 x F53
(GENERIC_ELEMENTARY_FUNCTIONS)S 8 x F6(can)S 14 x(be)S 13 x
(rendered)S 13 x(in)S 13 x(Ada)S 13 x(so)S 50 y 327 X(as)S 16 x(to)S
16 x(be)S 16 x(portable)S 16 x(without)S 16 x(quali\014cation)S 16 x
(to)S 16 x(all)S 16 x(implementations)S 16 x(of)S 17 x(Ada.)S 25 x
(T)S -3 x(ypically,)S 17 x(implementations)S 16 x(intended)S 16 x
(to)S 16 x(be)S 50 y 327 X(portable)S 16 x(are)S 16 x(not)S 16 x
(absolutely)S 16 x(portable,)S 16 x(but)S 15 x(are)S 15 x(portable)S
15 x(only)S 16 x(with)S 16 x(certain)S 16 x(quali\014cations)S 16 x
(stemming)S 15 x(from)S 16 x(assumptions)S 3128 Y 1281 X(12)S
%%PageTrailer
/paper-automatic true SPS 1 PP EP
%%PageBoundingBox: 78 39 546 718

%%PageBoundingBox: (atend)
%%BeginPageSetup
1000 BP 3300 2550 PM /paper-automatic false SPS 327 0 XY
%%EndPageSetup
327 342 XY F6(built)S 13 x(into)S 12 x(the)S 13 x(code.)S 18 x(Some)S
13 x(examples)S 13 x(of)S 13 x(assumptions)S 13 x(that)S 13 x
(simplify)S 12 x(and)S 13 x(circumscribe)S 12 x(the)S 13 x(design)S
13 x(of)S 12 x(an)S 12 x(implementation)S 49 y 327 X(of)S 17 x(the)S
18 x(elementary)S 17 x(functions)S 18 x(are)S 17 x(the)S 18 x
(following:)S 74 y 410 X(\267)S 68 x(It)S 17 x(might)S 16 x(be)S 
16 x(assumed)S 17 x(\(i.e.,)S 17 x(required\))S 16 x(that)S 17 x F53
(FLOAT_TYPE)S
(\015MACHINE_RA)S
XP /F53 68 22 0 0 19 25 25 24 0
<7FF800 FFFE00 7FFF00 1C0F00 1C0780 1C03C0 1C01C0 1C01C0 1C01E0
 1C00E0 1C00E0 1C00E0 1C00E0 1C00E0 1C00E0 1C00E0 1C00E0 1C01C0
 1C01C0 1C03C0 1C0780 1C0F80 7FFF00 FFFE00 7FF800>
PXLC RP
1659 465 XY F53(DIX)S 16 x F6(is)S 16 x(2)S 16 x(or)S 16 x(16,)S 
17 x(and)S 16 x(not)S 17 x(some)S 17 x(other)S 50 y 493 X(number.)S
50 y 410 X(\267)S 68 x(It)S 15 x(might)S 14 x(be)S 15 x(assumed)S 
14 x(that)S 14 x(multiplication)S 15 x(or)S 15 x(division)S 15 x(by)S
15 x(a)S 15 x(power)S 14 x(of)S 14 x(the)S 14 x(machine)S 14 x
(radix)S 14 x(is)S 14 x(exact.)S 49 y 410 X(\267)S 68 x(It)S 15 x
(might)S 14 x(be)S 14 x(assumed)S 15 x(that)S 15 x F53
(SYSTEM.MAX_DIGITS)S 11 x F6(falls)S 15 x(within)S 14 x(some)S 14 x
(particular)S 14 x(range)S 15 x(of)S 15 x(values.)S 74 y 410 X
(Assumptions)S 15 x(are)S 16 x(always)S 15 x(avoidable,)S 16 x(or)S
15 x(at)S 16 x(least)S 15 x(capable)S 16 x(of)S 16 x(being)S 15 x
(weakened,)S 16 x(but)S 15 x(the)S 16 x(amount)S 16 x(of)S 16 x(ef)S
-1 x(fort)S 16 x(required)S 50 y 327 X(to)S 18 x(do)S 17 x(so)S 17 x
(may)S 17 x(be)S 18 x(more)S 17 x(than)S 17 x(the)S 17 x
(implementor)S 17 x(can)S 17 x(justify.)S 58 y 410 X(As)S 13 x(long)S
13 x(as)S 13 x(\252portable\272)S 13 x(implementations)S 13 x
(embody)S 13 x(assumptions,)S 14 x(there)S 13 x(is)S 14 x(a)S 13 x
(risk)S 13 x(that)S 13 x(they)S 13 x(will)S 13 x(fail)S 13 x(in)S 
13 x(unpredictable)S 50 y 327 X(ways)S 18 x(when)S 18 x(used)S 18 x
(in)S 18 x(an)S 17 x(unintended)S 18 x(environment)S 18 x(\(where)S
18 x(the)S 17 x(assumptions)S 18 x(may)S 18 x(not)S 18 x(hold\).)S
31 x(The)S 18 x(proposed)S 18 x(standard)S 50 y 327 X(addresses)S 
18 x(this)S 17 x(risk)S 18 x(in)S 18 x(three)S 17 x(ways.)S 29 x
(First)S 17 x(of)S 17 x(all,)S 18 x(it)S 17 x(requires)S 17 x(that)S
17 x(the)S 17 x(assumptions)S 17 x(be)S 18 x(clearly)S 17 x
(documented,)S 18 x(enabling)S 49 y 327 X(potential)S 16 x(users)S
16 x(of)S 16 x(an)S 16 x(implementation)S 16 x(to)S 16 x(evaluate)S
16 x(its)S 16 x(suitability)S 16 x(in)S 16 x(their)S 16 x
(environment.)S 25 x(Secondly,)S 16 x(it)S 16 x(does)S 16 x(not)S 
16 x(de\014ne)S 50 y 327 X(the)S 18 x(behavior)S 18 x(of)S 18 x(an)S
19 x(implementation)S 18 x(whose)S 19 x(assumptions)S 19 x(are)S 
19 x(violated,)S 20 x(thereby)S 19 x(giving)S 18 x(implementors)S 
18 x(total)S 19 x(freedom)S 50 y 327 X(to)S 18 x(opt)S 17 x(either)S
18 x(for)S 17 x(speed)S 17 x(\(by)S 18 x(ignoring)S 18 x(the)S 18 x
(possibility)S 17 x(of)S 18 x(such)S 17 x(violations\))S 17 x(or)S
18 x(for)S 17 x(robustness)S 17 x(\(by)S 17 x(detecting)S 17 x(them)S
17 x(and)S 50 y 327 X(responding\320predictably\320in)S 12 x(ways)S
13 x(of)S 12 x(their)S 13 x(choice\).)S 18 x(\(For)S 12 x(example,)S
13 x(an)S 13 x(implementation)S 13 x(might)S 12 x(raise)S 12 x F53
(PROGRAM_ERROR)S F6(,)S 50 y 327 X(or)S 14 x(some)S 14 x(other)S 
15 x(exception,)S 15 x(upon)S 14 x(detecting)S 15 x(a)S 15 x
(violation)S 14 x(of)S 14 x(its)S 14 x(assumptions.\))S 20 x
(Finally,)S 15 x(the)S 14 x(proposed)S 15 x(standard)S 15 x(adopts)S
14 x(the)S 50 y 327 X(convention)S 13 x(that)S 13 x(implementations)S
13 x(whose)S 12 x(assumptions)S 12 x(are)S 12 x(violated)S 12 x(in)S
12 x(some)S 12 x(environment)S 13 x(are)S 13 x(not)S 12 x(in)S 12 x
(conformance)S 12 x(with)S 49 y 327 X(the)S 11 x(standard)S 12 x(in)S
11 x(that)S 11 x(environment.)S 17 x(This)S 11 x(last)S 11 x(point)S
11 x(is)S 11 x(intended)S 11 x(to)S 11 x(discourage)S 12 x(highly)S
11 x(restricted)S 11 x(\(partial\))S 11 x(implementations)S 50 y 
327 X(from)S 13 x(absolving)S 13 x(themselves)S 13 x(in)S 13 x(the)S
13 x(guise)S 13 x(of)S 13 x(portability.)S 19 x(It)S 13 x(is)S 13 x
(not)S 13 x(enough)S 13 x(to)S 13 x(be)S 13 x(portable;)S 13 x(an)S
13 x(implementation)S 13 x(must)S 13 x(also)S 50 y 327 X(be)S 15 x
(useful,)S 15 x(and)S 15 x(usefulness)S 15 x(is)S 15 x(measured)S 
15 x(by)S 14 x(the)S 15 x(number)S 15 x(of)S 15 x(environments)S 
15 x(in)S 15 x(which)S 14 x(it)S 14 x(is)S 15 x(conforming.)S 58 y 
410 X(It)S 19 x(is)S 18 x(suf)S -1 x(\014cient)S 19 x(for)S 19 x(a)S
19 x(non-portable)S 18 x(implementation)S 19 x(\(one)S 19 x
(intended)S 19 x(for)S 19 x(a)S 19 x(single)S 18 x(environment\))S
19 x(to)S 18 x(document)S 19 x(its)S 50 y 327 X(assumptions)S 16 x
(as)S 16 x(\252intended)S 16 x(for)S 16 x(use)S 15 x(only)S 16 x(in)S
15 x(the)S 16 x([)S F7(name)S 14 x(of)S 14 x(the)S 14 x(envir)S -2 x
(onment)S F6(])S 16 x(environment.\272)S 1593 Y 327 X F52(What)S 
17 x(role)S 17 x(do)S 17 x(\252signed)S 17 x(zeros\272)S 17 x(and)S
17 x(in\014nities)S 18 x(play)S 17 x(in)S 17 x(the)S 18 x
(elementary)S 17 x(functions?)S 1671 Y 410 X F6(One)S 11 x(of)S 11 x
(the)S 11 x(features)S 11 x(of)S 11 x(the)S 11 x(IEEE)S 11 x
(standards)S 11 x(for)S 11 x(\015oating-point)S 11 x(arithmetic)S 
11 x(is)S 11 x(that)S 11 x(the)S 11 x(value)S 11 x(zero)S 11 x(is)S
11 x(not)S 11 x(automatically)S 50 y 327 X(canonicalized)S 14 x
(with)S 14 x(the)S 14 x(conventional)S 14 x(plus)S 14 x(sign;)S 14 x
(it)S 14 x(is)S 14 x(thus)S 14 x(capable)S 14 x(of)S 14 x(acquiring)S
14 x(either)S 14 x(algebraic)S 15 x(sign.)S 19 x(The)S 14 x
(prescribed)S 49 y 327 X(sign)S 13 x(of)S 13 x(a)S 12 x(zero)S 12 x
(result)S 12 x(depends)S 12 x(on)S 12 x(context\320the)S 12 x
(operation,)S 13 x(the)S 12 x(operands,)S 13 x(the)S 12 x
(\252rounding)S 12 x(mode,\272)S 12 x(etc.\320and)S 12 x(the)S 12 x
(rules)S 12 x(are)S 50 y 327 X(spelled)S 15 x(out)S 16 x(in)S 15 x
(the)S 16 x(IEEE)S 16 x(\015oating-point)S 16 x(standards)S 16 x
(for)S 16 x(the)S 16 x(operations)S 16 x(covered)S 16 x(by)S 15 x
(them.)S 24 x(In)S 16 x(particular,)S 16 x(a)S 16 x(zero)S 16 x
(arising)S 50 y 327 X(from)S 12 x(under\015ow)S 12 x(when)S 12 x
(traps)S 12 x(are)S 12 x(disabled)S 12 x(preserves)S 12 x(the)S 12 x
(sign)S 12 x(of)S 12 x(the)S 12 x(result)S 12 x(that)S 13 x(under)S
(\015owed;)S 12 x(this)S 12 x(rule)S 12 x(and)S 12 x(others)S 13 x
(reveal)S 50 y 327 X(that)S 16 x(signed)S 15 x(zeros)S 15 x(behave)S
15 x(in)S 15 x(many)S 16 x(contexts)S 16 x(like)S 15 x(correctly)S
15 x(signed)S 15 x(in\014nitesimal)S 15 x(quantities.)S 58 y 410 X
(The)S 19 x(IEEE)S 20 x(\015oating-point)S 20 x(standards)S 20 x
(address)S 20 x(both)S 20 x(the)S 20 x(determination)S 20 x(of)S 
20 x(the)S 20 x(sign)S 20 x(of)S 20 x(a)S 20 x(zero)S 20 x(result)S
20 x(when)S 20 x(it)S 20 x(is)S 50 y 327 X(generated)S 16 x(and)S 
16 x(the)S 16 x(use)S 16 x(of)S 16 x(the)S 16 x(sign)S 16 x(of)S 
16 x(a)S 15 x(zero)S 16 x(operand)S 16 x(when)S 16 x(it)S 16 x(is)S
16 x(consumed.)S 25 x(Any)S 16 x(software)S 16 x(standard)S 16 x
(that)S 16 x(wishes)S 16 x(to)S 50 y 327 X(build)S 14 x(upon)S 13 x
(and)S 13 x(be)S 13 x(consistent)S 13 x(with)S 13 x(the)S 13 x(IEEE)S
13 x(\015oating-point)S 13 x(standards)S 13 x(should)S 13 x(address)S
13 x(the)S 13 x(same)S 13 x(two)S 13 x(points)S 14 x(in)S 13 x
(relation)S 49 y 327 X(to)S 15 x(the)S 15 x(extended)S 15 x
(\252operations)S
(\272)S 15 x(that)S 15 x(it)S 15 x(provides,)S 15 x(and)S 15 x(the)S
15 x(elementary)S 15 x(functions)S 15 x(standard)S 14 x(is)S 15 x
(no)S 15 x(exception.)S 22 x(At)S 15 x(the)S 15 x(same)S 50 y 327 X
(time,)S 14 x(support)S 14 x(for)S 13 x(signed)S 13 x(zeros)S 14 x
(must)S 14 x(not)S 14 x(be)S 14 x(a)S 14 x(mandatory)S 13 x
(feature,)S 14 x(since)S 14 x(IEEE)S 13 x(arithmetic)S 13 x(is)S 
14 x(not)S 14 x(universally)S 14 x(available.)S 58 y 410 X(The)S 
10 x(handling)S 10 x(of)S 10 x(signed)S 10 x(zeros)S 11 x(in)S 11 x
(the)S 11 x(proposed)S 11 x(elementary)S 11 x(functions)S 11 x
(standard)S 10 x(came)S 11 x(under)S 11 x(consideration)S 10 x
(relatively)S 50 y 327 X(late)S 13 x(\(after)S 13 x(Draft)S 12 x
(1.1,)S 13 x(which)S 13 x(means)S 12 x(after)S 12 x(approval)S 13 x
(by)S 12 x(WG9\);)S 13 x(it)S 12 x(was)S 13 x(prompted)S 12 x(by)S
13 x(ongoing)S 12 x(discussions)S 13 x(concerning)S 12 x(the)S 50 y 
327 X(development)S 12 x(of)S 11 x(an)S 12 x(IEEE)S 11 x(binding)S
12 x(for)S 11 x(Ada)S 11 x([5].)S 18 x(One)S 11 x(of)S 11 x(the)S 
12 x(topics)S 11 x(of)S 11 x(discussion)S 12 x(has)S 12 x(been)S 
12 x F7(the)S 10 x(division)S 10 x(of)S 11 x(r)S -2 x
(esponsibility:)S 50 y 327 X F6(how)S 16 x(much)S 16 x(of)S 16 x
(the)S 15 x(treatment)S 16 x(of)S 16 x(signed)S 16 x(zeros)S 16 x
(should)S 15 x(be)S 16 x(written)S 16 x(into)S 15 x(the)S 15 x
(elementary)S 15 x(functions)S 16 x(standard)S 16 x(\(and)S 16 x
(related)S 50 y 327 X(standards\),)S 14 x(and)S 14 x(how)S 14 x
(much)S 14 x(should)S 14 x(be)S 13 x(written)S 13 x(into)S 13 x(the)S
14 x(IEEE)S 13 x(binding?)S 19 x(Placing)S 14 x(the)S 14 x
(treatment)S 13 x(of)S 13 x(signed)S 14 x(zeros)S 14 x(close)S 14 x
(to)S 49 y 327 X(the)S 12 x(functions)S 12 x(af)S -1 x(fected)S 13 x
(has)S 12 x(the)S 12 x(advantage)S 12 x(that)S 13 x(it)S 12 x(can)S
12 x(be)S 12 x(easily)S 12 x(tailored)S 12 x(to)S 12 x(the)S 12 x
(requirements)S 13 x(of)S 13 x(the)S 13 x(individual)S 12 x
(functions)S 50 y 327 X(and)S 20 x(the)S 20 x(disadvantage)S 20 x
(that)S 20 x(consistency)S 20 x(of)S 21 x(treatment)S 20 x(among)S
21 x(a)S 20 x(family)S 20 x(of)S 20 x(related)S 20 x(standards)S 
20 x(is)S 20 x(dif)S -1 x(\014cult)S 20 x(to)S 20 x(ensure.)S 50 y 
327 X(Placing)S 16 x(their)S 17 x(treatment)S 17 x(only)S 16 x(in)S
17 x(the)S 16 x(IEEE)S 16 x(binding)S 17 x(has)S 16 x(the)S 17 x
(complementary)S 16 x(advantages)S 16 x(and)S 17 x(disadvantages,)S
17 x(together)S 50 y 327 X(with)S 19 x(a)S 19 x(few)S 19 x
(additional)S 20 x(advantages:)S 30 x(the)S 19 x(optional)S 20 x
(nature)S 19 x(of)S 20 x(the)S 20 x(handling)S 20 x(of)S 19 x
(signed)S 19 x(zeros)S 19 x(in)S 19 x(secondary)S 19 x(standards)S
50 y 327 X(like)S 19 x(the)S 19 x(elementary)S 19 x(functions)S 19 x
(standard)S 19 x(can)S 19 x(be)S 18 x(tied)S 18 x(more)S 19 x
(readily)S 18 x(to)S 18 x(the)S 18 x(availability)S 18 x(of)S 18 x
(IEEE)S 19 x(arithmetic,)S 20 x(and)S 18 x(the)S 49 y 327 X
(secondary)S 16 x(standards)S 16 x(themselves)S 16 x(can)S 16 x
(remain)S 16 x(relatively)S 16 x(uncluttered.)S 24 x(Since)S 16 x
(the)S 16 x(issue)S 16 x(is)S 16 x(ultimately)S 16 x(more)S 16 x(a)S
15 x(matter)S 15 x(of)S 50 y 327 X(implementation)S 18 x(guidelines)S
18 x(than)S 18 x(of)S 18 x(de\014nition,)S 19 x(it)S 18 x(is)S 18 x
(reasonable)S 18 x(to)S 18 x(expect)S 18 x(the)S 18 x(WG9)S 18 x
(Uniformity)S 18 x(Rapporteur)S 18 x(Group)S 50 y 327 X(\(URG\))S 
19 x(to)S 19 x(have)S 18 x(the)S 19 x(\014nal)S 19 x(word)S 19 x(on)S
19 x(it.)S 58 y 410 X(The)S 13 x(compromise)S 13 x(approach)S 13 x
(followed)S 14 x(in)S 14 x(the)S 14 x(elementary)S 14 x(functions)S
14 x(standard)S 14 x(is)S 14 x(as)S 14 x(low-key)S 14 x(as)S 14 x
(it)S 14 x(could)S 14 x(reasonably)S 50 y 327 X(be)S 14 x(made.)S 
19 x(Since)S 14 x(a)S 14 x(precise)S 14 x(de\014nition)S 14 x(of)S
14 x(what)S 14 x(comprises)S 14 x(the)S 15 x(ability)S 14 x(to)S 
14 x(represent)S 14 x(and)S 14 x(discriminate)S 14 x(between)S 14 x
(positively)S 50 y 327 X(and)S 13 x(negatively)S 14 x(signed)S 13 x
(zeros)S 13 x(was)S 13 x(judged)S 13 x(to)S 13 x(be)S 13 x(beyond)S
13 x(the)S 13 x(scope)S 13 x(of)S 14 x(the)S 13 x(elementary)S 14 x
(functions)S 13 x(standard)S 13 x(\(for)S 13 x(example,)S 3128 Y 
1281 X(13)S
%%PageTrailer
/paper-automatic true SPS 1 PP EP
%%PageBoundingBox: 78 39 546 718

%%PageBoundingBox: (atend)
%%BeginPageSetup
1000 BP 3300 2550 PM /paper-automatic false SPS 327 0 XY
%%EndPageSetup
327 342 XY F6(it)S 13 x(is)S 14 x(not)S 13 x(clear)S 13 x(that)S 
14 x(such)S 13 x(an)S 14 x(ability)S 13 x(should)S 13 x(be)S 13 x
(tied)S 14 x(too)S 13 x(closely)S 13 x(to)S 13 x(the)S 13 x
(availability)S 13 x(of)S 13 x(full)S 13 x(IEEE)S 14 x
(arithmetic\),)S 14 x(support)S 14 x(for)S 49 y 327 X(signed)S 13 x
(zeros)S 13 x(by)S 13 x(implementations)S 13 x(of)S 13 x(the)S 13 x
(standard)S 13 x(was)S 13 x(left)S 13 x(strictly)S 13 x(optional,)S
13 x(even)S 13 x(when)S 13 x(the)S 13 x(underlying)S 13 x
(capability)S 13 x(can)S 50 y 327 X(reasonably)S 14 x(be)S 15 x
(said)S 14 x(to)S 15 x(be)S 14 x(available.)S 20 x(Furthermore,)S 
15 x(it)S 14 x(has)S 15 x(been)S 15 x(left)S 14 x(to)S 15 x(other)S
14 x(documents)S 15 x(\(such)S 14 x(as)S 14 x(the)S 14 x(IEEE)S 14 x
(binding)S 14 x(or)S 50 y 327 X(a)S 15 x(report)S 15 x(of)S 15 x
(the)S 14 x(URG\))S 15 x(to)S 15 x(specify)S 15 x(in)S 15 x(the)S 
15 x(future)S 15 x(the)S 15 x(sign)S 15 x(of)S 15 x(each)S 15 x
(possible)S 15 x(zero)S 15 x(result)S 15 x(and)S 15 x(the)S 15 x
(conditions)S 15 x(upon)S 15 x(which)S 50 y 327 X(the)S 14 x(sign)S
14 x(depends.)S 21 x(Such)S 14 x(information)S 15 x(would)S 14 x
(constitute)S 15 x(a)S 15 x F7(r)S -2 x(e\014nement)S 15 x F6(of)S
14 x(the)S 15 x(zero)S 15 x(results)S 15 x(prescribed)S 14 x(or)S 
15 x(implied)S 15 x(by)S 14 x(the)S 50 y 327 X(elementary)S 16 x
(functions)S 16 x(standard)S 16 x(and)S 16 x(would)S 17 x(not)S 16 x
(in)S 16 x(any)S 16 x(way)S 16 x(con\015ict)S 16 x(with)S 16 x
(them.)S 64 y 410 X(The)S 16 x(one)S 17 x(place,)S 17 x(however,)S
18 x(where)S 17 x(signed)S 17 x(zeros)S 17 x(do)S 17 x(intrude)S 
17 x(into)S 16 x(the)S 17 x(elementary)S 17 x(functions)S 17 x
(standard)S 17 x(is)S 16 x(in)S 17 x(certain)S 50 y 327 X
(prescribed)S 17 x(results)S 17 x(from)S 17 x F53(ARCTAN)S 17 x F6
(and)S 17 x F53(ARCCOT)S F6(.)S 17 x(As)S 17 x(an)S 17 x(example,)S
19 x(consider)S 18 x F53(ARCTAN\(Y,)S 19 x(X\))S 17 x F6(when)S 17 x 
F53(Y)S 17 x F6(is)S 18 x(zero)S 18 x(and)S 17 x F53(X)S 17 x F6(is)S
50 y 327 X(negative.)S 26 x(In)S 17 x(this)S 16 x(case,)S 16 x(the)S
16 x(point)S
XP /F20 40 16 3 -11 13 31 42 16 0
<0040 0080 0100 0200 0600 0C00 0C00 1800 1800 3000 3000 7000 6000
 6000 6000 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000
 E000 6000 6000 6000 7000 3000 3000 1800 1800 0C00 0C00 0600 0200
 0100 0080 0040>
PXLC RP
898 755 XY F20(\()S F53(X)S
XP /F21 59 12 4 -8 8 4 12 8 0
<60 F0 F0 70 10 10 10 10 20 20 40 80>
PXLC RP
936 755 XY F21(;)S 7 x F53(Y)S
XP /F20 41 16 2 -11 12 31 42 16 0
<8000 4000 2000 1000 1800 0C00 0C00 0600 0600 0300 0300 0380 0180
 0180 0180 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0
 01C0 0180 0180 0180 0380 0300 0300 0600 0600 0C00 0C00 1800 1000
 2000 4000 8000>
PXLC RP
976 755 XY F20(\))S 17 x F6(is)S 17 x(on)S 16 x(the)S 16 x(axis)S 
16 x(separating)S 16 x(quadrants)S 16 x(II)S 16 x(and)S 16 x(III,)S
16 x(so)S 16 x(the)S 16 x(corresponding)S 16 x(angle)S 49 y 327 X
(is)S 17 x(either)S 18 x F21(\031)S 18 x F6(or)S 18 x F22(\000)S F21
(\031)S 1 x F6(.)S 29 x(T)S -3 x(o)S 17 x(make)S 17 x(the)S 17 x
(function)S 17 x(single-valued,)S 18 x(drafts)S 17 x(of)S 17 x(the)S
17 x(standard)S 17 x(prior)S 17 x(to)S 17 x(Draft)S 17 x(1.2)S 17 x
(prescribed)S 17 x(this)S 50 y 327 X(result)S 15 x(to)S 14 x(be)S 
15 x(\(by)S 14 x(convention\))S 15 x F21(\031)S 1 x F6(.)S 20 x
(However,)S 15 x(if)S 14 x(one)S 15 x(chooses)S 14 x(to)S 14 x(take)S
14 x(the)S 14 x(sign)S 14 x(of)S 15 x F53(Y)S 14 x F6(into)S 15 x
(account)S 14 x(and)S 14 x(to)S 15 x(interpret)S 15 x(signed)S 50 y 
327 X(zeros)S 12 x(as)S 13 x(signed)S 13 x(in\014nitesimals)S 13 x
(\(on)S 13 x(the)S 13 x(assumption)S 13 x(that)S 13 x(they)S 13 x
(arise)S 13 x(from)S 13 x(under\015ow\),)S 13 x(then)S 13 x(it)S 
13 x(is)S 13 x(appropriate)S 13 x(to)S 13 x(prescribe)S 50 y 327 X
(the)S 16 x(result)S 16 x(to)S 16 x(be)S 16 x F21(\031)S 17 x F6
(when)S 16 x(the)S 15 x(sign)S 16 x(is)S 16 x(positive)S 15 x(and)S
16 x F22(\000)S F21(\031)S 18 x F6(when)S 16 x(it)S 16 x(is)S 16 x
(negative.)S 25 x(Because)S 16 x(that)S 16 x(would)S 16 x(be)S 16 x
(in)S 16 x(con\015ict)S 16 x(with)S 50 y 327 X(the)S 18 x(result)S
18 x(prescribed)S 18 x(in)S 18 x(earlier)S 18 x(drafts,)S 19 x(the)S
18 x(result)S 17 x(prescribed)S 18 x(in)S 17 x(Draft)S 18 x(1.2)S 
18 x(for)S 18 x F53(ARCTAN\(Y,)S 19 x(X\))S 18 x F6(when)S 18 x F53
(Y)S 18 x F6(is)S 18 x(zero)S 18 x(and)S 49 y 327 X F53(X)S 18 x F6
(is)S 18 x(negative)S 18 x(was)S 18 x(loosened)S 18 x(to)S
XP /F99 /Symbol 41.511 10 DNF RP
869 1053 XY F99(\261)S F21(\031)S 1 x F6(.)S 31 x(The)S 18 x(choice)S
18 x(between)S 18 x F22(\000)S F21(\031)S 19 x F6(and)S 18 x F21
(\031)S 19 x F6(depends)S 18 x(on)S 18 x(whether)S 18 x(signed)S 
18 x(zeros)S 18 x(are)S 18 x(being)S 50 y 327 X(supported)S 17 x
(and,)S 18 x(if)S 17 x(they)S 17 x(are,)S 17 x(on)S 17 x(the)S 17 x
(sign)S 17 x(of)S 17 x F53(Y)S F6(;)S 17 x(in)S 17 x(the)S 17 x
(latter)S 17 x(case,)S 18 x(the)S 17 x(appropriate)S 17 x
(interpretation)S 17 x(of)S 17 x(the)S 17 x(result)S 17 x(is)S 17 x
(the)S 50 y 327 X(limit)S 16 x(of)S 15 x F53(ARCTAN\()S
XP /F21 15 17 2 0 15 18 18 16 0
<01F8 0700 0C00 1800 3800 3000 7000 7FC0 E000 E000 E000 E000 E000
 6000 6000 3000 1860 0F80>
PXLC RP
623 1153 XY F21(\017)S F53(,)S 20 x(X\))S F6(,)S 16 x(for)S 15 x
(negative)S 15 x F53(X)S F6(,)S 15 x(as)S 15 x F21(\017)S 15 x F6
(approaches)S 16 x(zero,)S 16 x(which)S 15 x(depends)S 15 x(on)S 
15 x(the)S 15 x(sign)S 15 x(of)S 15 x F21(\017)S F6(,)S 15 x(or)S 
15 x(equivalently)S 15 x(on)S 50 y 327 X(the)S 15 x(quadrant)S 15 x
(from)S 14 x(which)S 15 x(the)S 15 x(axis)S 15 x(separating)S 15 x
(quadrants)S 15 x(II)S 15 x(and)S 15 x(III)S 15 x(is)S 15 x
(approached.)S 22 x(Of)S 15 x(course,)S 15 x(similar)S 15 x
(considerations)S 50 y 327 X(apply)S 17 x(to)S 17 x F53(ARCCOT)S 
15 x F6(and)S 17 x(to)S 17 x(the)S 17 x(versions)S 17 x(of)S 16 x
(both)S 17 x(that)S 17 x(include)S 17 x(a)S 17 x F53(CYCLE)S 15 x 
F6(parameter;)S 18 x(the)S 16 x(standard)S 16 x(requires)S 17 x
(that)S 17 x(they)S 17 x(be)S 50 y 327 X(handled)S 18 x
(consistently.)S 29 x(This)S 18 x(treatment)S 17 x(of)S 17 x(signed)S
17 x(zeros)S 18 x(recognizes)S 18 x(the)S 18 x(variety)S 18 x(of)S
17 x(opinions)S 18 x(on)S 18 x(their)S 18 x(utility;)S 20 x(thus,)S
19 x(it)S 49 y 327 X(covers)S 16 x(not)S 16 x(only)S 16 x(the)S 15 x
(architectural)S 15 x(variations)S 16 x(in)S 15 x(the)S 16 x
(ability)S 15 x(to)S 15 x(support)S 15 x(them,)S 16 x(but)S 15 x
(also)S 16 x(the)S 16 x(implementor's)S 16 x(preferences)S 50 y 
327 X(when)S 18 x(architectural)S 18 x(limitations)S 18 x(are)S 18 x
(not)S 18 x(a)S 17 x(factor.)S 65 y 410 X(Detecting)S 14 x(the)S 
13 x(sign)S 13 x(of)S 14 x(zero)S 13 x(is)S 13 x(not)S 13 x
(accomplished)S 14 x(easily)S 14 x(in)S 13 x(Ada,)S 13 x(since)S 
13 x(in)S 13 x(IEEE)S 13 x(arithmetic)S 13 x(the)S 13 x(sign)S 14 x
(of)S 13 x(zero)S 13 x(has)S 13 x(no)S 49 y 327 X(bearing)S 14 x(on)S
14 x(the)S 14 x(outcome)S 14 x(of)S 14 x(comparison)S 14 x
(operations.)S 19 x(One)S 14 x(technique,)S 14 x(which)S 14 x
(hinges)S 14 x(on)S 14 x(a)S 14 x(few)S 14 x(reasonable)S 14 x
(assumptions,)S 50 y 327 X(involves)S 12 x(looking)S 12 x(at)S 12 x
(the)S 12 x(bit)S 12 x(pattern)S 12 x(of)S 12 x(a)S 12 x(value)S 
13 x(that)S 12 x(compares)S 13 x(equal)S 13 x(to)S 12 x(zero)S 12 x
(and)S 12 x(asking)S 12 x(whether)S 12 x(it)S 12 x(matches)S 12 x
(that)S 12 x(of)S 12 x(plus)S 50 y 327 X(zero)S 11 x(or)S 11 x(that)S
11 x(of)S 11 x(minus)S 11 x(zero.)S 17 x(The)S 10 x(bit)S 11 x
(patterns)S 10 x(are)S 11 x(obtained)S 11 x(with)S 10 x(the)S 11 x
(help)S 10 x(of)S 11 x F53(UNCHEC)S
XP /F53 75 22 0 0 20 25 25 24 0
<7F0FE0 FF8FF0 7F0FE0 1C0780 1C0F00 1C0E00 1C1C00 1C3C00 1C7800
 1CF000 1CE000 1DF000 1FF000 1FF800 1F3800 1E1C00 1C1C00 1C0E00
 1C0E00 1C0700 1C0700 1C0380 7F07E0 FF8FF0 7F07E0>
PXLC RP
1678 1616 XY F53(KED_CONVERSION)S F6(,)S 8 x(while)S 11 x(a)S 11 x
(negative)S 50 y 327 X(zero)S 11 x(is)S 10 x(obtained,)S 11 x(at)S
10 x(least)S 10 x(on)S 10 x(IEEE)S 10 x(hardware,)S 11 x(by)S 10 x
(computing)S 10 x(a)S 10 x(negative)S 10 x(result)S 10 x(that)S 10 x
(under)S
(\015ows.)S 17 x(\(Whether)S 10 x(the)S 10 x(underlying)S 50 y 327 X
(implementation)S 16 x(generates)S 16 x(negative)S 16 x(zeros)S 16 x
(in)S 16 x(this)S 16 x(context)S 16 x(can)S 16 x(be)S 16 x
(determined)S 16 x(by)S 15 x(forcing)S 16 x(both)S 16 x(positive)S
15 x(and)S 16 x(negative)S 49 y 327 X(under\015ows)S 12 x(and)S 12 x
(comparing)S 12 x(the)S 12 x(bit)S 11 x(patterns)S 12 x(of)S 12 x
(the)S 12 x(two)S 12 x(resulting)S 12 x(zeros.\))S 17 x(Devious)S 
11 x(tricks)S 12 x(such)S 12 x(as)S 12 x(this)S 11 x(can)S 12 x(be)S
11 x(avoided)S 11 x(by)S 50 y 327 X(relying)S 15 x(instead)S 15 x
(on)S 15 x(a)S 15 x(speci\014c)S 15 x(function,)S 16 x F53
(COPY_SIGN)S F6(,)S 13 x(from)S 15 x(the)S 15 x(proposed)S 15 x F53
(GENERIC_PRIMITIVE_FUNCTIONS)S 9 x F6(package)S 50 y 327 X([18].)S
18 x F53(COPY_SIGN\(VALUE,)S 17 x(SIGN\))S 13 x F6(is)S 14 x
(de\014ned)S 13 x(to)S 13 x(yield)S 13 x(a)S 13 x(result)S 14 x
(having)S 13 x(the)S 13 x(magnitude)S 14 x(of)S 14 x F53(VALUE)S 
12 x F6(and)S 13 x(the)S 13 x(sign)S 13 x(of)S 14 x F53(SIGN)S 50 y 
327 X F6(\(even)S 15 x(when)S 15 x F53(SIGN)S 14 x F6(is)S 15 x
(zero\).)S 21 x F53(COPY_SIGN)S 13 x F6(may)S 15 x(itself)S 15 x(be)S
15 x(implemented)S 14 x(in)S 15 x(terms)S 15 x(of)S 15 x(the)S 14 x
(technique)S 15 x(described)S 14 x(above,)S 15 x(but)S 50 y 327 X
(since)S 12 x(implementations)S 12 x(of)S 12 x F53
(GENERIC_PRIMITIVE_FUNCTIONS)S 6 x F6(will)S 11 x(commonly)S 12 x
(be)S 12 x(tailored)S 12 x(to)S 12 x(the)S 12 x(underlying)S 12 x
(hardware,)S 49 y 327 X(it)S 14 x(is)S 14 x(more)S 14 x(likely)S 
14 x(to)S 15 x(be)S 14 x(implemented)S 14 x(in)S 14 x(assembler)S 
14 x(language)S 14 x(or)S 14 x(C)S 14 x(so)S 14 x(as)S 15 x(to)S 
14 x(exploit)S 14 x(knowledge)S 14 x(of)S 14 x(the)S 14 x(hardware)S
14 x(in)S 14 x(the)S 50 y 327 X(most)S 14 x(ef)S -1 x(\014cient)S 
16 x(way.)S 20 x(While)S 15 x F53(COPY_SIGN)S 12 x F6(can)S 14 x(be)S
14 x(used)S 15 x(in)S 14 x F53(GENERIC_ELEMENTARY_FUNCTIONS)S 9 x 
F6(to)S 14 x(determine)S 15 x(whether)S 15 x(a)S 50 y 327 X(zero)S
16 x(is)S 16 x(a)S 16 x(positive)S 16 x(zero)S 16 x(or)S 16 x(a)S 
16 x(negative)S 16 x(zero,)S 17 x(in)S 16 x(practice)S 16 x(that)S
16 x(question)S 16 x(need)S 16 x(not)S 16 x(be)S 16 x(asked)S 16 x
(directly.)S 24 x(For)S 16 x(example,)S 16 x(the)S 50 y 327 X
(prescribed)S 14 x(results)S 14 x(for)S 13 x F53(ARCTAN)S F6(,)S 
12 x(including)S 14 x(the)S 14 x(one)S 14 x(discussed)S 14 x(above,)S
14 x(might)S 14 x(be)S 14 x(produced)S 14 x(by)S 14 x(code)S 14 x
(like)S 13 x(the)S 14 x(following:)S 2297 Y 327 X F53(with)S 21 x
(GENERIC_PRIMITIVE_FUNCTIONS)S
XP /F53 59 22 7 -6 13 18 24 8 0
<38 7C 7C 7C 38 00 00 00 00 00 00 00 00 38 7C 7C 7C 3C 1C 3C 38 F8 F0
 60>
PXLC RP
1024 2297 XY F53(;)S
XP /F53 112 22 0 -9 20 18 27 24 0
<7E3E00 FEFF80 7FFFC0 0F83E0 0F01E0 0E00F0 0E00F0 0E0070 0E0070
 0E0070 0E0070 0E00F0 0F00E0 0F01E0 0F83C0 0FFFC0 0EFF00 0E3C00
 0E0000 0E0000 0E0000 0E0000 0E0000 0E0000 7FC000 FFE000 7FC000>
PXLC RP
327 2347 XY F53(pa)S
XP /F53 99 22 3 0 19 18 18 16 0
<03F8 0FFE 1FFE 3C1E 780C 7000 F000 E000 E000 E000 E000 F000 7007
 7807 3E0F 1FFE 0FFC 03F0>
PXLC RP
371 2347 XY F53(c)S
XP /F53 107 22 0 0 20 25 25 24 0
<7E0000 FE0000 7E0000 0E0000 0E0000 0E0000 0E0000 0E7FE0 0E7FE0
 0E7FE0 0E0F00 0E1E00 0E3C00 0E7800 0EF000 0FF000 0FF800 0FBC00
 0F1E00 0E0E00 0E0700 0E0780 7F87F0 FFCFF0 7F87F0>
PXLC RP
392 2347 XY F53(kage)S
XP /F53 98 22 0 0 20 25 25 24 0
<7E0000 FE0000 7E0000 0E0000 0E0000 0E0000 0E0000 0E3E00 0EFF80
 0FFFC0 0F83E0 0F01E0 0E00F0 0E00F0 0E0070 0E0070 0E0070 0E0070
 0E00F0 0F00E0 0F01E0 0F83C0 0FFFC0 0EFF00 063C00>
PXLC RP
501 2347 XY F53(b)S
XP /F53 111 22 2 0 19 18 18 24 0
<03E000 0FF800 1FFC00 3C1E00 780F00 700700 E00380 E00380 E00380
 E00380 E00380 F00780 700700 780F00 3C1E00 1FFC00 0FF800 03E000>
PXLC RP
523 2347 XY F53(od)S
XP /F53 121 22 1 -9 20 18 27 24 0
<7F1FC0 FF9FE0 7F1FC0 1C0700 0E0700 0E0E00 0E0E00 070E00 071C00
 071C00 039C00 039C00 039800 01B800 01B800 00F000 00F000 00F000
 00E000 00E000 00E000 01C000 79C000 7BC000 7F8000 3F0000 3C0000>
PXLC RP
567 2347 XY F53(y)S 21 x(GENERIC_ELEMENTARY_FUNCTIONS)S 16 x(is)S 
49 y 392 X(...)S 50 y -66 x(package)S 21 x(PRIMITIVE_FUNCTIONS)S 
18 x(is)S 21 x(new)S 21 x(GENERIC_PRIMITIVE_FUNCTIONS)S 16 x
(\(FLOAT_TYPE,)S 20 x(INTEGER\);)S 50 y 392 X(use)S 22 x
(PRIMITIVE_FUNCTIONS;)S 50 y 392 X(PI)S
XP /F53 58 22 8 0 13 18 18 8 0
<70 F8 F8 F8 70 00 00 00 00 00 00 00 00 70 F8 F8 F8 70>
PXLC RP
458 2546 XY F53(:)S 21 x(constant)S 20 x(:)S
XP /F53 61 22 2 7 19 18 11 24 0
<7FFF00 FFFF80 FFFF80 000000 000000 000000 000000 000000 FFFF80
 FFFF80 7FFF00>
PXLC RP
719 2546 XY F53(=)S
XP /F53 51 22 2 0 19 25 25 24 0
<07E000 1FFC00 7FFE00 781F00 780F00 780700 000700 000F00 000F00
 003E00 07FC00 07F800 07FC00 001E00 000700 000780 000380 000380
 F00380 F00780 F00700 F81F00 7FFE00 3FFC00 07E000>
PXLC RP
763 2546 XY F53(3.1)S
XP /F53 52 22 1 0 20 25 25 24 0
<007C00 00FC00 00DC00 01DC00 039C00 039C00 071C00 0F1C00 0E1C00
 1E1C00 3C1C00 381C00 781C00 F01C00 FFFFE0 FFFFE0 FFFFE0 001C00
 001C00 001C00 001C00 001C00 01FFC0 01FFC0 01FFC0>
PXLC RP
828 2546 XY F53(41)S
XP /F53 53 22 2 0 19 25 25 24 0
<3FFE00 3FFE00 3FFE00 380000 380000 380000 380000 380000 380000
 380000 3BF000 3FFC00 3FFE00 3C0F00 300700 000780 000380 600380
 F00380 F00780 F00F00 F81F00 7FFE00 1FF800 07E000>
PXLC RP
872 2546 XY F53(5)S
XP /F53 57 22 2 0 19 25 25 24 0
<03E000 0FF800 3FFC00 7C1E00 780F00 F00700 E00700 E00780 E00780
 E00380 F00780 F00780 780F80 3FFF80 3FFB80 0FE380 000780 000700
 300F00 780E00 781E00 787C00 7FF800 3FE000 0F8000>
PXLC RP
894 2546 XY F53(92)S
XP /F53 54 22 2 0 19 25 25 24 0
<00F800 03FE00 0FFF00 1F0F00 3E0F00 3C0F00 780600 700000 F00000
 F3F800 EFFE00 FFFE00 F80F00 F00780 F00780 E00380 F00380 F00380
 700380 780780 780F00 3C1F00 1FFE00 0FF800 03E000>
PXLC RP
937 2546 XY F53(6535...E0;)S 50 y 392 X(...)S
XP /F53 102 22 1 0 18 25 25 24 0
<001F00 007F80 00FF80 01E780 01C300 01C000 01C000 7FFF00 FFFF00
 FFFF00 01C000 01C000 01C000 01C000 01C000 01C000 01C000 01C000
 01C000 01C000 01C000 01C000 3FFE00 7FFF00 3FFE00>
PXLC RP
392 2646 XY F53(function)S 21 x(ARCTAN)S 20 x(\(Y)S 21 x(:)S 22 x
(FLOAT_TYPE;)S 49 y 763 X(X)S 21 x(:)S 22 x(FLOAT_TYPE)S 20 x(:=)S
21 x(1.0\))S 21 x(return)S 21 x(FLOAT_TYPE)S 19 x(is)S 50 y 392 X
(begin)S 50 y -44 x(if)S 21 x(Y)S 22 x(=)S 21 x(0.0)S 21 x(then)S 
50 y 523 X(if)S 22 x(X)S 21 x(=)S 22 x(0.0)S 21 x(then)S 50 y 589 X
(raise)S 20 x(ARGUMENT_ERROR;)S 49 y 523 X(e)S
XP /F53 108 22 2 0 19 25 25 24 0
<FFC000 FFC000 FFC000 01C000 01C000 01C000 01C000 01C000 01C000
 01C000 01C000 01C000 01C000 01C000 01C000 01C000 01C000 01C000
 01C000 01C000 01C000 01C000 FFFF80 FFFF80 FFFF80>
PXLC RP
545 2944 XY F53(lsif)S 21 x(X)S
XP /F53 60 22 2 2 19 23 21 24 0
<000180 000780 001F80 003E00 00F800 01F000 07C000 0F8000 3E0000
 FC0000 F00000 FC0000 3E0000 0F8000 07C000 01F000 00F800 003E00
 001F80 000780 000180>
PXLC RP
697 2944 XY F53(<)S 22 x(0.0)S 21 x(then)S 50 y 589 X(return)S 20 x
(COPY_SIGN\(PI,)S 19 x(Y\);)S 43 x(--)S 22 x(\(*\))S 3128 Y -6 x F6
(14)S
%%PageTrailer
/paper-automatic true SPS 1 PP EP
%%PageBoundingBox: 78 39 546 718

%%PageBoundingBox: (atend)
%%BeginPageSetup
1000 BP 3300 2550 PM /paper-automatic false SPS 523 0 XY
%%EndPageSetup
523 342 XY F53(else)S 43 x(--)S 21 x(X)S
XP /F53 62 22 2 2 19 23 21 24 0
<C00000 F00000 FC0000 3E0000 0F8000 07C000 01F000 00F800 003E00
 001F80 000780 001F80 003E00 00F800 01F000 07C000 0F8000 3E0000
 FC0000 F00000 C00000>
PXLC RP
763 342 XY F53(>)S 21 x(0.0)S 49 y 589 X(return)S 20 x(Y;)S 1155 X
(--)S 22 x(\(**\))S 50 y 523 X(end)S 21 x(if;)S 50 y 458 X(elsif)S
21 x(X)S 21 x(=)S 22 x(0.0)S 21 x(then)S 50 y 523 X(return)S 21 x
(COPY_SIGN\(PI)S
XP /F53 47 22 2 -3 19 29 32 24 0
<000180 000380 000380 000700 000700 000E00 000E00 001C00 001C00
 003800 003800 007000 007000 00E000 00E000 01C000 01C000 038000
 038000 070000 070000 0E0000 0E0000 1C0000 1C0000 380000 380000
 700000 700000 E00000 E00000 C00000>
PXLC RP
937 541 XY F53(/2.0,)S 21 x(Y\);)S 50 y 458 X(else)S 43 x(--)S 21 x
(end)S 21 x(of)S 21 x(special)S 21 x(cases)S 49 y 523 X(...)S 50 y 
458 X(end)S 21 x(if;)S 50 y 392 X(end)S 22 x(ARCTAN;)S 50 y 392 X
(...)S 50 y 327 X(end)S 21 x(GENERIC_ELEMENTARY_FUNCTIONS;)S 945 Y 
327 X F6(An)S 12 x(implementor)S 13 x(of)S 12 x F53
(GENERIC_ELEMENTARY_FUNCTIONS)S 7 x F6(who)S 13 x(wishes)S 12 x(to)S
13 x(avoid)S 12 x(signed)S 12 x(zeros)S 13 x(entirely,)S 13 x(even)S
12 x(when)S 13 x(they)S 50 y 327 X(are)S 15 x(available,)S 16 x(can)S
15 x(do)S 15 x(so)S 15 x(merely)S 16 x(by)S 15 x(substituting)S 15 x
(\252)S F53(return)S 22 x(PI;)S F6(\272)S 15 x(for)S 15 x(the)S 15 x
(statement)S 15 x(marked)S 15 x(\(*\))S 15 x(and)S 15 x(\252)S F53
(return)S 20 x(0.0;)S F6(\272)S 50 y 327 X(for)S 20 x(that)S 19 x
(marked)S 19 x(\(**\).)S
XP /F54 /CM-Times-Roman 29.058 11 DF RP
700 1030 XY F54(4)S 75 y 410 X F6(Like)S 11 x F53(ARCTAN)S 10 x F6
(and)S 10 x F53(ARCCOT)S 10 x F6(in)S 11 x F53
(GENERIC_ELEMENTARY_FUNCTIONS)S F6(,)S 5 x F53(COPY_SIGN)S 9 x F6
(in)S 11 x F53(GENERIC_PRIMITIVE_FUNC-)S 50 y 327 X(TIONS)S 18 x F6
(has)S 19 x(a)S 20 x(behavior)S 19 x(that)S 19 x(depends)S 19 x(in)S
19 x(one)S 19 x(case)S 19 x(on)S 19 x(the)S 19 x(sign)S 20 x(of)S 
20 x(a)S 20 x(zero)S 19 x(ar)S -1 x(gument.)S 35 x(For)S 20 x(the)S
19 x(sake)S 19 x(of)S 19 x(uniformity,)S 50 y 327 X(implementations)S
13 x(of)S 13 x(the)S 14 x(latter)S 14 x(are)S 14 x(also)S 13 x
(allowed)S 13 x(to)S 13 x(forego)S 13 x(the)S 14 x(recognition)S 
13 x(of)S 13 x(signed)S 13 x(zeros,)S 14 x(in)S 14 x(which)S 14 x
(case)S 14 x F53(COPY_SIGN)S 49 y 327 X F6(must)S 10 x(return)S
XP /F22 106 12 5 -10 7 31 41 8 0
<C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0
 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0>
PXLC RP
527 1254 XY F22(j)S F53(VALUE)S -2 x F22(j)S 10 x F6(when)S 10 x F53
(SIGN)S 9 x F6(is)S 10 x(zero.)S 17 x(Thus,)S 11 x(unless)S 10 x
(one)S 10 x(knows)S 11 x(something)S 10 x(about)S 10 x(the)S 10 x
(behavior)S 10 x(of)S 10 x(the)S 10 x(implementation)S 50 y 327 X
(of)S 13 x F53(GENERIC_PRIMITIVE_FUNCTIONS)S 8 x F6(at)S 13 x(hand,)S
14 x(its)S 14 x(use)S 13 x(in)S 13 x(an)S 14 x(implementation)S 14 x
(of)S 14 x F53(GENERIC_ELEMENTARY_FUNCTIONS)S 50 y 327 X F6(is)S 
12 x(no)S 13 x(guarantee)S 13 x(that)S 13 x(the)S 13 x(latter)S 13 x
(will)S 13 x(observe)S 13 x(signed)S 13 x(zeros)S 13 x(in)S 13 x
(environments)S 12 x(having)S 13 x(that)S 12 x(capability.)S 19 x
(Implementations)S 12 x(of)S 50 y 327 X(both)S 13 x(of)S 13 x(the)S
13 x(packages)S 13 x(discussed)S 13 x(here)S 13 x(are)S 13 x
(required)S 13 x(to)S 13 x(document)S 13 x(their)S 13 x(behavior)S
13 x(with)S 13 x(respect)S 13 x(to)S 13 x(signed)S 13 x(zeros.)S 
18 x(Thus,)S 13 x(an)S 50 y 327 X(implementation)S 11 x(of)S 11 x 
F53(GENERIC_ELEMENTARY_FUNCTIONS)S 5 x F6(might)S 12 x(document)S 
12 x(that)S 11 x(it)S 12 x(does)S 11 x(not)S 11 x(observe)S 12 x
(signed)S 12 x(zeros\320even)S 49 y 327 X(in)S 15 x(environments)S
14 x(having)S 14 x(the)S 15 x(capability\320or)S 15 x(that)S 14 x
(it)S 14 x(does)S 14 x(observe)S 14 x(signed)S 15 x(zeros)S 15 x(in)S
14 x(environments)S 15 x(having)S 14 x(the)S 14 x(capability)S 50 y 
327 X(or)S 12 x(that)S 12 x(it)S 13 x(inherits)S 12 x(its)S 13 x
(behavior)S 12 x(from)S 12 x(other)S 13 x(facilities)S 13 x(that)S
12 x(it)S 12 x(uses)S 12 x(\(e.g.,)S 13 x(from)S 13 x F53
(GENERIC_PRIMITIVE_FUNCTIONS)S F6(\).)S 6 x(Other)S 50 y 327 X
(software)S 16 x(built)S 15 x(on)S 16 x(top)S 15 x(of)S 16 x F53
(GENERIC_ELEMENTARY_FUNCTIONS)S 10 x F6(has)S 16 x(the)S 16 x(same)S
16 x(choices.)S 60 y 410 X(Signed)S 13 x(zeros)S 13 x(are)S 13 x
(naturally)S 13 x(related)S 13 x(to)S 13 x(another)S 13 x(feature)S
13 x(of)S 13 x(IEEE)S 13 x(arithmetic\320namely,)S 13 x(\(signed\))S
14 x(in\014nities.)S 18 x(In\014nities)S 50 y 327 X(arise)S 14 x(in)S
13 x(IEEE)S 13 x(arithmetic,)S 13 x(when)S 13 x(traps)S 13 x(are)S
13 x(disabled,)S 13 x(as)S 13 x(a)S 13 x(result)S 13 x(of)S 13 x
(over)S
(\015ow)S 13 x(and)S 13 x(upon)S 13 x(division)S 13 x(by)S 13 x
(zero.)S 18 x(The)S 13 x(proposed)S 50 y 327 X(IEEE)S 12 x(binding)S
12 x([5])S 12 x(introduces)S 12 x(in\014nities)S 13 x(into)S 13 x
(Ada)S 12 x(by)S 13 x(specifying)S 12 x(that)S 12 x(the)S 12 x F53
(MACHINE_OVERFLO)S
XP /F53 87 22 1 0 20 25 25 24 0
<FC07E0 FE0FE0 FC07E0 7001C0 7001C0 7001C0 300180 380380 380380
 380380 38E380 39F380 39F380 39B380 19B300 19B300 19B300 19B300
 19B300 19B300 191300 1B1B00 0F1E00 0F1E00 0E0E00>
PXLC RP
1833 1763 XY F53(WS)S 12 x F6(attribute)S 13 x(will)S 13 x(be)S 12 x 
F53(FALSE)S 50 y 327 X F6(in)S 20 x(implementations)S 20 x
(conforming)S 20 x(to)S 20 x(the)S 20 x(binding,)S 22 x(which)S 20 x
(allows)S 20 x(them)S 20 x(to)S 20 x(deliver)S 20 x(an)S 20 x(in)S
(\014nity)S 20 x(instead)S 20 x(of)S 20 x(raising)S 20 x(an)S 49 y 
327 X(exception)S 14 x(when)S 13 x(over\015ow)S 13 x(occurs)S 13 x
(\(and)S 13 x(also)S 14 x(when)S 13 x(division)S 14 x(by)S 14 x
(zero)S 14 x(occurs,)S 14 x(though)S 14 x(this)S 13 x(might)S 14 x
(require)S 14 x(a)S 13 x(clari\014cation\).)S 50 y 327 X F53
(GENERIC_ELEMENTARY_FUNCTIONS)S 14 x F6(is)S 20 x(well)S 20 x
(poised)S 20 x(to)S 20 x(exploit)S 20 x(in\014nities)S 20 x(in)S 
20 x(cases)S 20 x(of)S 20 x(over\015ow,)S 22 x(if)S 20 x(and)S 20 x
(when)S 20 x(they)S 50 y 327 X(are)S 14 x(introduced)S 14 x(by)S 
14 x(an)S 15 x(IEEE)S 15 x(binding.)S 20 x(For)S 14 x(example,)S 
15 x(in)S 14 x(the)S 15 x(context)S 14 x(of)S 14 x(an)S 15 x(IEEE)S
14 x(binding,)S 15 x(no)S 15 x(changes)S 15 x(are)S 14 x(necessary)S
15 x(in)S 50 y 327 X F53(GENERIC_ELEMENTARY_FUNCTIONS)S 4 x F6(to)S
10 x(allow)S 10 x F53(EXP)S 9 x F6(to)S 10 x(deliver)S 10 x(an)S 
10 x(in\014nity)S 10 x(when)S 10 x(it)S 10 x(receives)S 10 x(a)S 
10 x(suf)S -1 x(\014ciently)S 10 x(lar)S -1 x(ge)S 10 x(ar)S -1 x
(gument,)S 50 y 327 X(instead)S 12 x(of)S 12 x(raising)S 13 x(an)S
12 x(exception)S 12 x(to)S 12 x(signal)S 13 x(over\015ow.)S 18 x
(Similarly,)S 13 x F53(TAN)S 12 x F6(and)S 13 x F53(COT)S 12 x F6
(can)S 12 x(deliver)S 13 x(an)S 13 x(in\014nity,)S 13 x(instead)S 
13 x(of)S 13 x(raising)S 49 y 327 X(an)S 19 x(exception)S 19 x(to)S
19 x(signal)S 19 x(over\015ow,)S 21 x(for)S 19 x(ar)S -1 x(guments)S
19 x(near)S 19 x(their)S 19 x(poles.)S 34 x(However,)S 21 x(prior)S
20 x(to)S 19 x(Draft)S 19 x(1.2)S 19 x(of)S 19 x(the)S 19 x
(proposed)S 50 y 327 X(standard,)S 19 x(the)S 18 x
(machine-representable)S 18 x(poles)S 18 x(of)S 18 x(functions)S 
18 x(\(i.e.,)S 19 x(the)S 18 x(machine-representable)S 18 x(ar)S 
-1 x(guments)S 18 x(for)S 19 x(which)S 18 x(the)S 50 y 327 X
(corresponding)S 13 x(mathematical)S 13 x(functions)S 13 x(are)S 
13 x(in\014nite\))S 13 x(were)S 13 x(technically)S 13 x(and)S 13 x
(formally)S 13 x(excluded)S 12 x(from)S 13 x(the)S 12 x(domains)S 
13 x(of)S 13 x(the)S 50 y 327 X(functions,)S 17 x(which)S 17 x
(meant)S 16 x(that)S 16 x(an)S 16 x(implementation)S 16 x(must)S 
16 x(raise)S 16 x F53(ARGUMENT_ERROR)S 13 x F6(at)S 17 x(the)S 17 x
(poles.)S 25 x(This)S 17 x(requirement)S 16 x(was)S 50 y 327 X
(viewed)S 11 x(as)S 11 x(interfering)S 11 x(with)S 11 x(the)S 11 x
(ability)S 11 x(to)S 11 x(deliver)S 12 x(an)S 11 x(in\014nity)S 11 x
(at)S 11 x(a)S 11 x(pole,)S 12 x(in)S 11 x(the)S 11 x(context)S 11 x
(of)S 11 x(an)S 11 x(IEEE)S 11 x(binding.)S 17 x(Accordingly,)S 50 y 
327 X(in)S 17 x(Draft)S 17 x(1.2)S 17 x(the)S 17 x(poles)S 18 x(of)S
17 x(functions)S 17 x(were)S 18 x(formally)S 17 x(included)S 17 x
(in)S 17 x(their)S 17 x(domain,)S 18 x(so)S 17 x(that)S 17 x F53
(ARGUMENT_ERROR)S 15 x F6(would)S 17 x(no)S 49 y 327 X(longer)S 16 x
(be)S 16 x(raised)S 16 x(there,)S 16 x(and)S 16 x(it)S 16 x(was)S 
16 x(speci\014ed)S 16 x(that)S 16 x(the)S 16 x(exception)S 16 x
(used)S 16 x(by)S 16 x(Ada)S 16 x(for)S 16 x(signaling)S 16 x
(division)S 16 x(by)S 16 x(zero)S 16 x(would)S 50 y 327 X(be)S 15 x
(raised)S 15 x(instead)S 15 x(at)S 14 x(poles.)S 22 x(Thus,)S 15 x
(the)S 15 x(net)S 15 x(ef)S -1 x(fect)S 15 x(of)S 15 x(this)S 15 x
(change)S 15 x(was)S 14 x(merely)S 15 x(to)S 15 x(substitute)S 15 x
(one)S 15 x(exception)S 15 x(for)S 15 x(another.)S 50 y 327 X(In)S
12 x(addition)S 13 x(to)S 13 x(facilitating)S 13 x(the)S 12 x
(exploitation)S 12 x(of)S 13 x(in\014nities)S 13 x(by)S 13 x F53
(GENERIC_ELEMENTARY_FUNCTIONS)S F6(,)S 7 x(if)S 13 x(and)S 12 x
(when)S 13 x(they)S 12 x(are)S 50 y 327 X(introduced)S 14 x(by)S 
15 x(an)S 15 x(IEEE)S 15 x(binding,)S 15 x(the)S 15 x(change)S 15 x
(results)S 15 x(in)S 14 x(uniform)S 14 x(behavior)S 14 x(of)S 14 x
(functions)S 14 x(both)S 14 x F7(near)S 15 x F6(poles)S 15 x(and)S
14 x F7(at)S 14 x F6(poles,)S 50 y 327 X(since)S 15 x(the)S 15 x
(exception)S 15 x(Ada)S 14 x(uses)S 14 x(for)S 15 x(signaling)S 14 x
(division)S 15 x(by)S 15 x(zero)S 14 x(is)S 14 x(the)S 15 x(same)S
14 x(as)S 14 x(the)S 14 x(one)S 15 x(it)S 14 x(uses)S 14 x(for)S 
14 x(signaling)S 15 x(over\015ow.)S -15 y F54(5)S 64 y 327 X F6
(This)S 13 x(uniformity)S 13 x(of)S 14 x(behavior\320that)S 13 x
(is,)S 13 x(the)S 13 x(raising)S 13 x(of)S 13 x(the)S 13 x(same)S 
13 x(exception)S 13 x(both)S 13 x(near)S 14 x(and)S 13 x(at)S 13 x
(poles,)S 13 x(rather)S 13 x(than)S 13 x(dif)S -1 x(ferent)S 
327 2724 XY 600 2 R
XP /F57 /CM-Times-Roman 24.907 11 DF RP
398 2755 XY F57(4)S 12 y F55(Incidentally,)S 12 x(note)S 13 x(that)S
12 x(the)S 12 x(zero)S 12 x(result)S 12 x(produced)S 12 x(by)S 12 x
(the)S 12 x(statement)S 12 x(marked)S 12 x(\(**\))S 12 x(when)S 12 x 
F58(Y)S 13 x F55(is)S 12 x(zero)S 12 x(and)S
XP /F58 88 21 1 0 20 25 25 24 0
<7F1F80 7F3F80 7F1F80 0E1E00 0E1C00 073C00 073800 03B800 03F000
 01F000 01E000 00E000 01E000 01F000 03F000 03B800 07B800 071C00
 071C00 0E0E00 0E0E00 1C0700 7F1FC0 FF1FE0 7F1FC0>
PXLC RP
1757 2767 XY F58(X)S 13 x F55(is)S 12 x(positive)S 12 x(retains)S 
12 x(the)S 13 x(sign)S 12 x(of)S 12 x F58(Y)S F55(\320or)S 37 y 
327 X(so)S 11 x(one)S 11 x(hopes.)S 15 x(There)S 11 x(is)S 11 x(no)S
12 x(question)S 11 x(that,)S 11 x(in)S 11 x(the)S 12 x(absence)S 
11 x(of)S 11 x(signed)S 11 x(zeros,)S 12 x(an)S 11 x(optimizing)S 
11 x(compiler)S 12 x(could)S 11 x(compile)S 11 x(the)S 11 x
(statement)S 11 x(marked)S 11 x(\(**\))S 11 x(as)S 12 x(if)S 38 y 
327 X(it)S 12 x(read)S 11 x(\252)S
XP /F58 114 21 1 0 20 18 18 24 0
<FF0FC0 FF3FE0 FF7FE0 07F040 07E000 07C000 078000 078000 070000
 070000 070000 070000 070000 070000 070000 FFFC00 FFFC00 FFFC00>
PXLC RP
440 2842 XY F58(r)S
XP /F58 101 21 3 0 19 18 18 16 0
<03E0 0FF8 1FFC 3C1E 780E 7007 E007 FFFF FFFF FFFF E000 E000 7007
 7807 3C0F 1FFE 0FFC 03F0>
PXLC RP
457 2842 XY F58(e)S
XP /F58 116 21 1 0 18 23 23 24 0
<030000 070000 070000 070000 070000 7FFF00 FFFF00 FFFF00 070000
 070000 070000 070000 070000 070000 070000 070100 070380 070380
 070780 078780 03FF00 03FE00 00F800>
PXLC RP
474 2842 XY F58(t)S
XP /F58 117 21 0 0 21 18 18 24 0
<7E1F80 FE3F80 7E1F80 0E0380 0E0380 0E0380 0E0380 0E0380 0E0380
 0E0380 0E0380 0E0380 0E0380 0E0780 0F0F80 0FFFF0 07FFF8 03E3F0>
PXLC RP
492 2842 XY F58(ur)S
XP /F58 110 21 0 0 21 18 18 24 0
<7E3C00 FEFF00 7FFF80 0F8780 0F0380 0F0380 0E0380 0E0380 0E0380
 0E0380 0E0380 0E0380 0E0380 0E0380 0E0380 7FC7F0 FFE7F8 7FC7F0>
PXLC RP
527 2842 XY F58(n)S 18 x(0.0)S
XP /F58 59 21 7 -6 13 18 24 8 0
<38 7C 7C 7C 38 00 00 00 00 00 00 00 00 38 7C 7C 7C 3C 1C 3C 38 F8 F0
 60>
PXLC RP
614 2842 XY F58(;)S F55(\272.)S 15 x(However,)S 11 x(the)S 11 x
(question)S 12 x(of)S 11 x(whether)S 11 x(such)S 11 x(an)S 11 x
(optimization)S 11 x(should)S 11 x(be)S 11 x(allowed)S 11 x(in)S 
11 x(the)S 11 x(presence)S 11 x(of)S 11 x(signed)S 11 x(zeros)S 12 x
(has)S 11 x(not)S 11 x(yet)S 37 y 327 X(been)S 11 x(de\014nitively)S
11 x(answered.)S 15 x(A)S 11 x(safer)S 11 x(approach)S 11 x(might)S
11 x(be)S 11 x(to)S 11 x(write)S 11 x(\252)S F58(return)S 20 x(C)S
XP /F58 79 21 2 0 19 25 25 24 0
<1FFC00 3FFE00 7FFF00 780F00 F00780 E00380 E00380 E00380 E00380
 E00380 E00380 E00380 E00380 E00380 E00380 E00380 E00380 E00380
 E00380 F00780 F00780 780F00 7FFF00 3FFE00 1FFC00>
PXLC RP
1356 2879 XY F58(O)S
XP /F58 80 21 1 0 19 25 25 24 0
<7FF800 FFFE00 7FFF00 1C0F80 1C0380 1C03C0 1C01C0 1C01C0 1C01C0
 1C03C0 1C0380 1C0F80 1FFF00 1FFE00 1FF800 1C0000 1C0000 1C0000
 1C0000 1C0000 1C0000 1C0000 7F0000 FF8000 7F0000>
PXLC RP
1374 2879 XY F58(PY)S
XP /F58 95 21 2 -4 19 -1 3 24 0
<FFFF80 FFFF80 FFFF80>
PXLC RP
1409 2879 XY F58(_)S
XP /F58 83 21 2 0 19 25 25 24 0
<07E300 1FFF00 7FFF00 781F00 F00F00 E00700 E00700 E00000 F00000
 780000 7F8000 1FF000 07FC00 00FE00 000F00 000780 000380 000380
 E00380 E00380 F00780 F80F00 FFFE00 FFFC00 C7F000>
PXLC RP
1426 2879 XY F58(S)S
XP /F58 73 21 3 0 18 25 25 16 0
<FFFE FFFE FFFE 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380
 0380 0380 0380 0380 0380 0380 0380 0380 0380 FFFE FFFE FFFE>
PXLC RP
1444 2879 XY F58(I)S
XP /F58 71 21 2 0 20 25 25 24 0
<03E300 07FF00 1FFF00 3E1F00 3C0F00 780F00 780700 700700 F00000
 E00000 E00000 E00000 E00000 E03F80 E07FC0 E03F80 F00700 700700
 780F00 780F00 3C0F00 3E1F00 1FFF00 07FF00 03E700>
PXLC RP
1461 2879 XY F58(G)S
XP /F58 78 21 1 0 20 25 25 24 0
<7E1FC0 FF3FE0 7F1FC0 1D0700 1D8700 1D8700 1D8700 1DC700 1DC700
 1CC700 1CC700 1CE700 1CE700 1CE700 1C6700 1C6700 1C7700 1C7700
 1C3700 1C3700 1C3700 1C1700 7F1F00 FF9F00 7F0F00>
PXLC RP
1478 2879 XY F58(N)S
XP /F58 40 21 6 -4 17 29 33 16 0
<00E0 01E0 07C0 0700 0F00 1E00 3C00 3800 7800 7000 7000 7000 F000
 E000 E000 E000 E000 E000 E000 E000 F000 7000 7000 7000 7800 3800
 3C00 1E00 0F00 0700 07C0 01E0 00E0>
PXLC RP
1496 2879 XY F58(\(0.0)S
XP /F58 44 21 7 -6 14 5 11 8 0
<38 7C 7E 7E 3E 0E 1E 3C 7C F8 60>
PXLC RP
1566 2879 XY F58(,)S 18 x(Y)S
XP /F58 41 21 4 -4 15 29 33 16 0
<E000 F000 7C00 1C00 1E00 0F00 0780 0380 03C0 01C0 01C0 01C0 01E0
 00E0 00E0 00E0 00E0 00E0 00E0 00E0 01E0 01C0 01C0 01C0 03C0 0380
 0780 0F00 1E00 1C00 7C00 F000 E000>
PXLC RP
1618 2879 XY F58(\);)S F55(\272)S 12 x(at)S 11 x(\(**\).)S 35 y 
398 X F57(5)S 11 y F55(The)S 13 x(exceptional)S 14 x(condition)S 
14 x(at)S 14 x(poles)S 13 x(is)S 14 x(described)S 14 x(as)S 13 x(an)S
13 x(occurrence)S 13 x(of)S 14 x(division)S 13 x(by)S 13 x(zero,)S
14 x(rather)S 14 x(than)S 14 x(of)S 14 x(over\015ow,)S 15 x(because)S
13 x(experience)S 14 x(has)S 38 y 327 X(shown)S 12 x(that)S 12 x
(natural)S 12 x(algorithms)S 12 x(actually)S 12 x(do)S 12 x(cause)S
12 x(a)S 12 x(division)S 11 x(by)S 11 x(zero)S 12 x(at)S 12 x
(poles.)S 17 x(Note)S 12 x(that)S 12 x(it)S 12 x(is)S 12 x(possible)S
12 x(to)S 12 x(use)S 12 x(the)S 12 x(facilities)S 12 x(of)S 12 x
(the)S 11 x(proposed)S 12 x(IEEE)S 37 y 327 X(binding)S 12 x(to)S 
11 x(establish)S 11 x(dif)S -1 x(ferent)S 12 x(handlers)S 11 x(for)S
11 x(division)S 11 x(by)S 11 x(zero)S 12 x(and)S 12 x(for)S 11 x
(over)S
(\015ow.)S 3128 Y 1281 X F6(15)S
%%PageTrailer
/paper-automatic true SPS 1 PP EP
%%PageBoundingBox: 78 39 546 717

%%PageBoundingBox: (atend)
%%BeginPageSetup
1000 BP 3300 2550 PM /paper-automatic false SPS 327 0 XY
%%EndPageSetup
327 342 XY F6(exceptions\320is)S 18 x(appealing)S 18 x(because)S 
18 x(it)S 18 x(emphasizes)S 19 x(the)S 18 x(similarities)S 18 x(in)S
19 x(these)S 18 x(two)S 18 x(cases,)S 20 x(rather)S 19 x(than)S 18 x
(their)S 18 x(dif)S -1 x(ferences)S 49 y 327 X(\(which)S 16 x(might)S
16 x(in)S 16 x(fact)S 15 x(stem)S 16 x(from)S 16 x(nothing)S 16 x
(more)S 16 x(than)S 16 x(certain)S 15 x(machine)S 16 x
(dependences\).)S -15 y F54(6)S 537 Y 327 X F52(Why)S 17 x(is)S 17 x
(a)S 17 x(package)S 17 x(of)S 18 x(mathematical)S 17 x(constants)S
18 x(not)S 17 x(included)S 17 x(in)S 18 x(this)S 17 x(standard?)S 
615 Y 410 X F6(A)S 15 x(package)S 15 x(of)S 15 x(useful)S 15 x
(mathematical)S 15 x(constants)S 15 x(containing)S 15 x(values)S 
15 x(for)S 15 x F21(\031)S 1 x F6(,)S 16 x F21(e)S F6(,)S 15 x(and)S
15 x(many)S 15 x(other)S 15 x(things)S 15 x(is)S 15 x(an)S 15 x
(obvious)S 50 y 327 X(candidate)S 16 x(for)S 16 x(inclusion)S 16 x
(in)S 17 x(a)S 16 x(numerical)S 16 x(standard.)S 26 x(While)S 16 x
(it)S 16 x(would)S 17 x(do)S 16 x(little)S 17 x(to)S 16 x(increase)S
16 x(the)S 16 x(portability)S 16 x(of)S 16 x(numerical)S 50 y 327 X
(software)S 13 x(\(after)S 12 x(all,)S 13 x(one)S 13 x(can)S 13 x
(look)S 13 x(up)S 13 x(values)S 12 x(for)S 13 x(these)S 13 x
(constants)S 13 x(easily)S 13 x(enough)S 13 x(and)S 13 x(write)S 
13 x(them)S 13 x(as)S 13 x(literals)S 13 x(in)S 13 x(programs,)S 
50 y 327 X(preferably)S 11 x(in)S 11 x(declarations)S 12 x(of)S 12 x
(named)S 12 x(numbers\),)S 12 x(such)S 11 x(a)S 11 x(package)S 12 x
(would)S
(\320by)S 12 x(eliminating)S 11 x(the)S 12 x(likelihood)S 12 x(of)S
12 x(transcription)S 50 y 327 X(errors\320potentially)S 13 x(have)S
13 x(a)S 13 x(bene\014cial)S 13 x(ef)S -1 x(fect)S 14 x(on)S 14 x
(the)S 13 x(reliability)S 13 x(of)S 13 x(applications.)S 19 x
(Indeed,)S 13 x(during)S 13 x(the)S 13 x(development)S 13 x(of)S 
13 x(the)S 50 y 327 X F53(GENERIC_ELEMENTARY_FUNCTIONS)S 7 x F6
(standard,)S 14 x(the)S 14 x(committee)S 13 x(had)S 13 x(numerous)S
13 x(requests)S 13 x(to)S 13 x(include)S 13 x(such)S 13 x(a)S 13 x
(package)S 13 x(and)S 49 y 327 X(numerous)S 11 x(suggestions)S 12 x
(for)S 12 x(its)S 12 x(contents.)S 18 x(There)S 11 x(was,)S 12 x(at)S
12 x(one)S 12 x(time,)S 12 x(an)S 12 x(even)S 12 x(more)S 11 x
(important)S 12 x(reason)S 11 x(for)S 11 x(including)S 12 x(it:)S 
17 x(until)S 50 y 327 X(the)S 12 x(decision)S 12 x(was)S 13 x(made)S
13 x(to)S 13 x(accommodate)S 12 x(arbitrary)S 13 x(periods)S 13 x
(in)S 13 x(the)S 13 x(trigonometric)S 12 x(functions)S 13 x(by)S 
13 x(subprogram)S 13 x(overloading)S 50 y 327 X(instead)S 10 x(of)S
11 x(by)S 11 x(optional)S 11 x(parameters)S 11 x(with)S 11 x
(default)S 11 x(values,)S 12 x(the)S 11 x(speci\014cation)S 11 x
(for)S 11 x F53(GENERIC_ELEMENTARY_FUNCTIONS)S 5 x F6(itself)S 50 y 
327 X(had)S 16 x(a)S 16 x(need)S 16 x(to)S 16 x(incorporate)S 16 x
(values)S 16 x(for)S 16 x(2)S F21(\031)S 17 x F6(and)S 16 x F21(e)S
F6(,)S 18 x(and)S 16 x(it)S 16 x(would)S 16 x(have)S 16 x(been)S 
16 x(important)S 16 x(to)S 16 x(allow)S 16 x(that)S 16 x
(speci\014cation)S 16 x(and)S 50 y 327 X(the)S 17 x(user's)S 17 x
(application)S 17 x(to)S 17 x(obtain)S 17 x(them)S 17 x(from)S 18 x
(the)S 17 x(same)S 17 x(source.)S 58 y 410 X(The)S 14 x
(speci\014cation)S 15 x(in)S 14 x(its)S 14 x(\014nal)S 15 x(form)S
15 x(does)S 14 x(not)S 14 x(have)S 15 x(a)S 15 x(need)S 15 x(for)S
15 x(those)S 14 x(v)S
PF 
XP /F6 /CM-Times-Roman 41.511 11 DNF RP
1561 1172 XY F6(alues.)S 20 x(Nevertheless,)S 15 x(that)S 15 x(is)S
15 x(not)S 14 x(the)S 15 x(reason)S 50 y 327 X(for)S 16 x(the)S 16 x
(absence)S 16 x(of)S 16 x(a)S 16 x(package)S 16 x(of)S 16 x
(mathematical)S 16 x(constants)S 16 x(in)S 16 x(this)S 16 x
(standard;)S 17 x(it)S 16 x(is)S 16 x(merely)S 16 x(an)S 16 x
(explanation)S 16 x(for)S 16 x(why)S 16 x(the)S 49 y 327 X(speci)S
(\014cation)S 13 x(of)S
XP /F53 /cmtt10 300 41.5 41.5 128 [0 -10 22 29] PXLNF RP
XP /F53 71 22 2 0 20 25 25 24 0
<03E300 07FF00 1FFF00 3E1F00 3C0F00 780F00 780700 700700 F00000
 E00000 E00000 E00000 E00000 E03F80 E07FC0 E03F80 F00700 700700
 780F00 780F00 3C0F00 3E1F00 1FFF00 07FF00 03E700>
PXLC RP
597 1271 XY F53(G)S
XP /F53 69 22 1 0 20 25 25 24 0
<7FFFC0 FFFFC0 7FFFC0 1C01C0 1C01C0 1C01C0 1C01C0 1C0000 1C0000
 1C1C00 1C1C00 1FFC00 1FFC00 1FFC00 1C1C00 1C1C00 1C0000 1C00E0
 1C00E0 1C00E0 1C00E0 1C00E0 7FFFE0 FFFFE0 7FFFE0>
PXLC RP
619 1271 XY F53(E)S
XP /F53 78 22 1 0 20 25 25 24 0
<7E1FC0 FF3FE0 7F1FC0 1D0700 1D8700 1D8700 1D8700 1DC700 1DC700
 1CC700 1CC700 1CE700 1CE700 1CE700 1C6700 1C6700 1C7700 1C7700
 1C3700 1C3700 1C3700 1C1700 7F1F00 FF9F00 7F0F00>
PXLC RP
641 1271 XY F53(NE)S
XP /F53 82 22 1 0 21 25 25 24 0
<7FE000 FFF800 7FFC00 1C1E00 1C0F00 1C0700 1C0700 1C0700 1C0700
 1C0F00 1C1E00 1FFC00 1FF800 1FFC00 1C1C00 1C0E00 1C0E00 1C0E00
 1C0E00 1C0E20 1C0E70 1C0E70 7F07E0 FF87E0 7F03C0>
PXLC RP
684 1271 XY F53(R)S
XP /F53 73 22 3 0 18 25 25 16 0
<FFFE FFFE FFFE 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380
 0380 0380 0380 0380 0380 0380 0380 0380 0380 FFFE FFFE FFFE>
PXLC RP
706 1271 XY F53(I)S
XP /F53 67 22 2 0 19 25 25 24 0
<01F180 07FF80 0FFF80 1F0F80 3C0780 780780 780380 700380 F00000
 E00000 E00000 E00000 E00000 E00000 E00000 E00000 F00000 700380
 780380 780380 3C0780 1F0F00 0FFE00 07FC00 01F000>
PXLC RP
728 1271 XY F53(C)S
XP /F53 95 22 2 -4 19 -1 3 24 0
<FFFF80 FFFF80 FFFF80>
PXLC RP
750 1271 XY F53(_E)S
XP /F53 76 22 1 0 20 25 25 24 0
<FFC000 FFC000 FFC000 1C0000 1C0000 1C0000 1C0000 1C0000 1C0000
 1C0000 1C0000 1C0000 1C0000 1C0000 1C0000 1C0000 1C0000 1C0040
 1C00E0 1C00E0 1C00E0 1C00E0 FFFFE0 FFFFE0 FFFFE0>
PXLC RP
793 1271 XY F53(LE)S
XP /F53 77 22 1 0 20 25 25 24 0
<FC07E0 FE0FE0 FE0FE0 3A0B80 3B1B80 3B1B80 3B1B80 3B1B80 3B1B80
 3BBB80 39B380 39B380 39B380 39B380 39F380 38E380 38E380 380380
 380380 380380 380380 380380 FE0FE0 FE0FE0 FE0FE0>
PXLC RP
837 1271 XY F53(MEN)S
XP /F53 84 22 1 0 20 25 25 24 0
<7FFFE0 FFFFE0 FFFFE0 E0E0E0 E0E0E0 E0E0E0 E0E0E0 00E000 00E000
 00E000 00E000 00E000 00E000 00E000 00E000 00E000 00E000 00E000
 00E000 00E000 00E000 00E000 07FC00 0FFE00 07FC00>
PXLC RP
902 1271 XY F53(T)S
XP /F53 65 22 1 0 20 25 25 24 0
<00E000 01F000 01F000 01B000 01B000 03B800 03B800 03B800 031800
 071C00 071C00 071C00 071C00 071C00 0E0E00 0E0E00 0FFE00 0FFE00
 1FFF00 1C0700 1C0700 1C0700 7F1FC0 FF1FE0 7F1FC0>
PXLC RP
924 1271 XY F53(AR)S
XP /F53 89 22 1 0 20 25 25 24 0
<FE0FE0 FF1FE0 FE0FE0 1C0700 1C0700 0E0E00 0E0E00 071C00 071C00
 071C00 03B800 03B800 01F000 01F000 00E000 00E000 00E000 00E000
 00E000 00E000 00E000 00E000 03F800 07FC00 03F800>
PXLC RP
967 1271 XY F53(Y_)S
XP /F53 70 22 1 0 20 25 25 24 0
<FFFFE0 FFFFE0 FFFFE0 1C00E0 1C00E0 1C00E0 1C00E0 1C0000 1C0000
 1C1C00 1C1C00 1FFC00 1FFC00 1FFC00 1C1C00 1C1C00 1C0000 1C0000
 1C0000 1C0000 1C0000 1C0000 FF8000 FFC000 FF8000>
PXLC RP
1011 1271 XY F53(F)S
XP /F53 85 22 0 0 21 25 25 24 0
<7F07F0 FF8FF8 7F07F0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0
 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0
 1C01C0 0E0380 0E0380 070700 07FF00 03FE00 00F800>
PXLC RP
1033 1271 XY F53(UNCTI)S
XP /F53 79 22 2 0 19 25 25 24 0
<1FFC00 3FFE00 7FFF00 780F00 F00780 E00380 E00380 E00380 E00380
 E00380 E00380 E00380 E00380 E00380 E00380 E00380 E00380 E00380
 E00380 F00780 F00780 780F00 7FFF00 3FFE00 1FFC00>
PXLC RP
1142 1271 XY F53(ON)S
XP /F53 83 22 2 0 19 25 25 24 0
<07E300 1FFF00 7FFF00 781F00 F00F00 E00700 E00700 E00000 F00000
 780000 7F8000 1FF000 07FC00 00FE00 000F00 000780 000380 000380
 E00380 E00380 F00780 F80F00 FFFE00 FFFC00 C7F000>
PXLC RP
1185 1271 XY F53(S)S 13 x F6(can)S 12 x(get)S 13 x(by)S 13 x
(without)S 13 x(one.)S 18 x(The)S 13 x(committee,)S 13 x(in)S 13 x
(fact,)S 13 x(early)S 13 x(invested)S 50 y 327 X(considerable)S 15 x
(ef)S -1 x(fort)S 15 x(towards)S 15 x(the)S 15 x(inclusion)S 15 x
(of)S 15 x(such)S 15 x(a)S 15 x(package.)S 22 x(The)S 15 x(problem)S
15 x(that)S 15 x(it)S 15 x(faced)S 15 x(was)S 15 x(in)S 15 x
(determining)S 15 x(where)S 50 y 327 X(to)S 14 x(draw)S 15 x(the)S
14 x(line)S 14 x(on)S 15 x(its)S 14 x(contents.)S 19 x(When)S 14 x
(it)S 15 x(became)S 15 x(clear)S 14 x(that)S 14 x(no)S 15 x
(consensus)S 14 x(was)S 14 x(likely)S 14 x(to)S 14 x(be)S 14 x
(reached)S 14 x(in)S 14 x(a)S 14 x(reasonable)S 50 y 327 X(amount)S
15 x(of)S 16 x(time,)S 16 x(the)S 16 x(committee)S 15 x(decided)S 
15 x(to)S 15 x(defer)S 16 x(consideration)S 16 x(of)S 15 x(a)S 15 x
(package)S 15 x(of)S 15 x(mathematical)S 15 x(constants)S 15 x
(until)S 15 x(some)S 50 y 327 X(future)S 14 x(time)S 15 x(rather)S
15 x(than)S 15 x(risk)S 14 x(delaying)S 15 x(the)S 15 x(development)S
15 x(of)S 15 x(the)S 15 x(elementary)S 14 x(functions)S 14 x
(standard)S 14 x(unnecessarily.)S
XP /F52 /CM-Helvetica-BoldOblique 49.813 12 DNF RP
327 1616 XY F52(Conclusions;)S 23 x(a)S 21 x(look)S 21 x(at)S 21 x
(the)S 21 x(future)S 1695 Y 410 X F6(The)S 14 x(proposed)S 15 x
(elementary)S 15 x(functions)S 15 x(standard)S 15 x(satis\014es)S 
15 x(one)S 14 x(part)S 15 x(of)S 15 x(W)S -3 x(ork)S 14 x(Item)S 
15 x(JTC1.22.10.02)S 14 x(\(\252Standardization)S 50 y 327 X(of)S 
20 x(Ada)S 20 x(Numeric)S 21 x(Packages\272\),)S 21 x(assigned)S 
21 x(to)S 20 x(the)S 20 x(WG9)S 20 x(Numerics)S 21 x(Rapporteur)S 
20 x(Group.)S 37 x(Though)S 20 x(it)S 20 x(will)S 20 x
(signi\014cantly)S 49 y 327 X(improve)S 11 x(the)S 11 x(prospects)S
11 x(of)S 11 x(portability)S 11 x(for)S 11 x(engineering)S 11 x(and)S
11 x(scienti\014c)S 11 x(applications)S 11 x(written)S 11 x(in)S 
11 x(Ada,)S 11 x(much)S 11 x(more)S 11 x(is)S 11 x(needed;)S 50 y 
327 X(accordingly,)S 12 x(other)S 11 x(standards)S 11 x(are)S 11 x
(being)S 12 x(developed)S 12 x(in)S 11 x(response)S 11 x(to)S 12 x
(the)S 12 x(remaining)S 11 x(parts)S 12 x(of)S 11 x(the)S 12 x(work)S
11 x(item.)S 18 x(Reference)S 12 x(has)S 50 y 327 X(already)S 10 x
(been)S 10 x(made)S 10 x(to)S 10 x(the)S 9 x(need)S 10 x(for,)S 10 x
(and)S 10 x(development)S 9 x(of,)S 11 x(a)S 10 x(standardized)S 
9 x(generic)S 10 x(package)S 9 x(of)S 9 x(\015oating-point)S 10 x
(manipulation)S 50 y 327 X(functions,)S 11 x(and)S 11 x(to)S 11 x(a)S
11 x(package)S 11 x(of)S 11 x(mathematical)S 11 x(constants.)S 18 x
(In)S 11 x(addition)S 11 x(to)S 11 x(those,)S 11 x(the)S 11 x
(people)S 11 x(who)S 10 x(have)S 11 x(worked)S 11 x(together)S 10 x
(on)S 50 y 327 X(the)S 15 x(elementary)S 15 x(functions)S 15 x
(standard)S 15 x(are)S 16 x(now)S 15 x(working)S 16 x(on)S 15 x
(proposals)S 15 x(for)S 15 x(complex)S 15 x(arithmetic)S 15 x(and)S
15 x(complex)S 16 x(elementary)S 49 y 327 X(functions,)S 20 x(for)S
19 x(vector)S 19 x(and)S 18 x(matrix)S 18 x(routines,)S 20 x(and)S
18 x(for)S 18 x(random-number)S 18 x(generators.)S 32 x(These)S 19 x
(ef)S -1 x(forts,)S 20 x(whose)S 18 x(motivation)S 50 y 327 X(comes)S
14 x(partly)S 14 x(from)S 14 x(the)S 14 x(consensus)S 15 x(of)S 14 x
(support)S 14 x(already)S 14 x(exhibited)S 14 x(for)S 15 x(the)S 
14 x(proposed)S 14 x(elementary)S 14 x(functions)S 14 x(standard,)S
14 x(can)S 50 y 327 X(be)S 18 x(expected)S 18 x(to)S 18 x(reach)S 
17 x(fruition)S 17 x(in)S 18 x(the)S 17 x(next)S 17 x(few)S 18 x
(years.)S 58 y 410 X(The)S 15 x(focus)S 16 x(on)S 15 x(Ada)S 16 x
(numerics)S 16 x(associated)S 16 x(with)S 16 x(these)S 16 x(ongoing)S
16 x(standardization)S 15 x(activities)S 16 x(is)S 15 x(also)S 16 x
(fostering)S 15 x(several)S 50 y 327 X(research)S 15 x(endeavors.)S
21 x(One)S 15 x(line)S 15 x(of)S 15 x(research)S 15 x(growing)S 15 x
(out)S 15 x(of)S 15 x(this)S 15 x(ef)S -1 x(fort)S 15 x(involves)S
15 x(the)S 15 x(development)S 14 x(of)S 15 x(testing)S 15 x
(strategies)S 50 y 327 X(and)S 16 x(algorithms)S 16 x(that)S 16 x
(can)S 16 x(be)S 16 x(used)S 16 x(to)S 16 x(validate)S 16 x(the)S 
16 x(conformance)S 16 x(of)S 16 x(implementations)S 16 x(of)S 16 x
(the)S 16 x(proposed)S 16 x(standard.)S 25 x(Such)S 50 y 327 X
(methods)S 14 x(are)S 14 x(under)S 13 x(development)S 14 x(at)S 14 x
(several)S 14 x(locations,)S 14 x(including)S 14 x(ANL)S 14 x([24],)S
13 x(NAG,)S 14 x(CWI)S 14 x([2],)S 14 x(and)S 14 x(W)S -3 x
(estinghouse)S 13 x([23];)S 49 y 327 X(the)S 10 x(work)S 10 x(at)S
11 x(NAG)S 11 x([8])S 11 x(also)S 10 x(encompasses)S 11 x(methods)S
11 x(for)S 11 x(checking)S 11 x(that)S 11 x(the)S 11 x(underlying)S
10 x(\015oating-point)S 11 x(arithmetic)S 11 x(of)S 10 x(the)S 11 x
(host)S 50 y 327 X(system)S 14 x(conforms)S 14 x(to)S 13 x(the)S 
13 x(Ada)S 14 x(standard.)S 18 x(Other)S 14 x(research)S 13 x(in)S
13 x(progress)S 14 x(is)S 14 x(aimed)S 13 x(at)S 14 x(using)S 13 x
(automated)S 13 x(program)S 13 x(veri\014cation)S 50 y 327 X
(techniques)S 12 x(to)S 13 x(prove)S 13 x(accuracy)S 12 x(claims)S
13 x(for)S 13 x(Ada)S 13 x(\015oating-point)S 12 x(programs.)S 19 x
(These)S 12 x(research)S 13 x(activities,)S 13 x(taken)S 13 x
(together)S 12 x(with)S 50 y 327 X(the)S 14 x(standardization)S 14 x
(ef)S -1 x(forts,)S 15 x(will)S 14 x(enhance)S 15 x(both)S 15 x(the)S
14 x(theoretical)S 15 x(and)S 14 x(the)S 14 x(practical)S 15 x
(aspects)S 14 x(of)S 14 x(Ada)S 15 x(numerics.)S 327 2924 XY 
600 2 R
XP /F57 /CM-Times-Roman 24.907 11 DF RP
398 2951 XY F57(6)S
XP /F55 /CM-Times-Roman 33.209 11 DF RP
410 2963 XY F55(The)S 10 x(computation)S 11 x(of)S 11 x(an)S 11 x
(ar)S -1 x(gument)S 12 x(that,)S 11 x(on)S 11 x(one)S 11 x(machine,)S
10 x(yields)S 10 x(a)S 11 x(value)S 11 x(near)S 10 x(a)S 11 x(pole)S
11 x(of)S 10 x(the)S 11 x(function)S 11 x(being)S 11 x(called)S 11 x
(might,)S 11 x(on)S 11 x(another)S 10 x(machine)S 37 y 327 X
(\(having)S 12 x(a)S 11 x(dif)S -1 x(ferent)S 12 x(word)S 11 x
(length)S 12 x(or)S 11 x(dif)S -1 x(ferent)S 12 x(rounding)S 11 x
(behavior\),)S 11 x(yield)S 11 x(a)S 11 x(value)S 11 x(that)S 11 x
(coincides)S 11 x(with)S 11 x(the)S 11 x(pole.)S 3128 Y 1281 X F6
(16)S
%%PageTrailer
/paper-automatic true SPS 1 PP EP
%%PageBoundingBox: 78 39 546 718

%%PageBoundingBox: (atend)
%%BeginPageSetup
1000 BP 3300 2550 PM /paper-automatic false SPS 327 0 XY
%%EndPageSetup
XP /F49 /CM-Times-Bold 58.115 11 DNF RP
327 342 XY F49(Refer)S -1 x(ences)S 464 Y 327 X F6([1])S 52 x(Ada)S
11 x(9X)S 11 x(Project.)S 11 x(Ada)S 11 x(9X)S 10 x(Requirements.)S
11 x(Of)S -1 x(\014ce)S 11 x(of)S 10 x(the)S 11 x(Under)S 10 x
(Secretary)S 11 x(of)S 10 x(Defense)S 11 x(for)S 10 x(Acquisition,)S
10 x(W)S -3 x(ashington,)S 50 y 427 X(December)S 20 x(1990.)S 70 y 
327 X([2])S 52 x(M.)S 14 x(Ber)S -1 x(gman.)S 14 x(T)S -3 x(esting)S
14 x(of)S 14 x(Elementary)S 14 x(Functions)S 14 x(in)S 14 x(Ada.)S
14 x(CWI)S 14 x(Report)S 14 x(NM-R8909,)S 14 x(Centrum)S 14 x(voor)S
14 x(W)S -2 x(iskunde)S 15 x(en)S 50 y 427 X(Informatica,)S 18 x
(Amsterdam,)S 18 x(May)S 18 x(1989.)S 70 y 327 X([3])S 52 x(W.)S 
13 x(S.)S 13 x(Brown.)S 13 x(A)S 12 x(Simple)S 12 x(but)S 13 x
(Realistic)S 13 x(Model)S 13 x(of)S 13 x(Floating-Point)S 12 x
(Computation.)S
XP /F7 /CM-Times-Italic 41.511 12 DNF RP
1727 704 XY F7(T)S -1 x(OMS)S F6(,)S 13 x(7\(4\):445{480,)S 12 x
(December)S 50 y 427 X(1981.)S 71 y 327 X([4])S 52 x(J.-M.)S 17 x
(Chebat.)S 17 x(Personal)S 17 x(communication,)S 17 x(March)S 17 x
(21,)S 17 x(1990.)S 70 y 327 X([5])S 52 x(R.)S 13 x(B.)S 13 x(K.)S
13 x(Dewar.)S 13 x(Proposed)S 13 x(Ada)S 13 x(Interface)S 13 x(for)S
13 x(the)S 13 x(IEEE)S 12 x(Standard)S 13 x(for)S 13 x(Binary)S 13 x
(Floating-Point)S 13 x(Arithmetic,)S 13 x(August)S 50 y 427 X(1989.)S
19 x(V)S -5 x(ersion)S 21 x(4.)S 71 y 327 X([6])S 52 x(K.)S 16 x(W.)S
16 x(Dritz.)S 15 x(Rationale)S 16 x(for)S 16 x(the)S 15 x(Proposed)S
15 x(Standard)S 16 x(for)S 16 x(a)S 16 x(Generic)S 16 x(Package)S 
16 x(of)S 16 x(Elementary)S 16 x(Functions)S 15 x(for)S 15 x(Ada.)S
49 y 427 X(ANL)S 15 x(Report)S 15 x(ANL-89/2,)S 15 x(Ar)S -1 x
(gonne)S 16 x(National)S 15 x(Laboratory,)S 15 x(Ar)S -1 x(gonne,)S
15 x(Illinois,)S 15 x(March)S 15 x(1989.)S 71 y 327 X([7])S 52 x(K.)S
19 x(W.)S 19 x(Dritz.)S 19 x(In\015uence)S 20 x(of)S 19 x(Language)S
19 x(Features)S 19 x(on)S 19 x(the)S 19 x(Speci\014cation)S 19 x(of)S
20 x(a)S 19 x(Standardized)S 19 x(Generic)S 19 x(Package)S 19 x(of)S
50 y 427 X(Elementary)S 19 x(Functions)S 19 x(for)S 19 x(Ada.)S 19 x
(In)S 19 x(G.)S 19 x(Pollock,)S 19 x(editor,)S 19 x F7(Pr)S -2 x
(oc.)S 19 x(1988)S 19 x(Sandia)S 19 x(W)S -4 x(orkshop)S 19 x(on)S
19 x(Ada)S 19 x(in)S 19 x(Real-T)S -2 x(ime)S 50 y 427 X(and)S 14 x
(Scienti)S
(\014c)S 14 x(Envir)S -2 x(onments)S F6(.)S 16 x(Sandia)S 16 x
(National)S 15 x(Laboratory,)S 15 x(to)S 15 x(appear.)S 15 x(A)S 
-3 x(vailable)S 15 x(from)S 15 x(author)S 15 x(as)S 15 x(ANL)S 15 x
(Preprint)S 49 y 427 X(MCS-P16-1188.)S 71 y 327 X([8])S 52 x(J.)S 
13 x(J.)S 13 x(Du)S 13 x(Croz,)S 13 x(M.)S 13 x(Erl,)S 13 x(P.)S 
13 x(P.)S 13 x(Gardner,)S 13 x(G.)S 12 x(S.)S 13 x(Hodgson,)S 13 x
(and)S 12 x(M.)S 13 x(W.)S 13 x(Pont.)S 13 x(V)S -5 x(alidation)S 
14 x(of)S 13 x(Numerical)S 13 x(Computations)S 50 y 427 X(in)S 14 x
(Ada.)S 15 x(NAG)S 15 x(T)S -3 x(echnical)S 15 x(Report)S 15 x
(TR2/89,)S 15 x(Numerical)S 15 x(Algorithms)S 14 x(Group,)S 14 x
(Ltd.,)S 14 x(Oxford,)S 15 x(May)S 15 x(1989.)S 70 y 327 X([9])S 
52 x(R.)S 15 x(Firth.)S 15 x(Preliminary)S 15 x(Draft)S 15 x(Speci)S
(\014cation)S 15 x(of)S 16 x(a)S 15 x(Basic)S 15 x(Mathematical)S 
16 x(Library)S 16 x(for)S 16 x(the)S 16 x(High)S 15 x(Order)S 16 x
(Programming)S 50 y 427 X(Language)S 14 x(Ada.)S 14 x(Royal)S 14 x
(Military)S 14 x(College)S 14 x(of)S 14 x(Science,)S 14 x
(Shrivenham,)S 14 x(Swindon,)S 13 x(W)S -2 x(iltshire,)S 14 x
(England,)S 14 x(March)S 13 x(1982.)S 71 y 327 X([10])S 31 x(B.)S 
14 x(Ford,)S 14 x(J.)S 14 x(Kok,)S 14 x(and)S 14 x(M.)S 14 x(W.)S 
14 x(Rogers,)S 14 x(editors.)S 14 x F7(Scienti\014c)S 13 x(Ada)S F6
(.)S 14 x(Cambridge)S 13 x(University)S 14 x(Press,)S 14 x
(Cambridge,)S 14 x(1986.)S 70 y 327 X([11])S 31 x(T.)S 17 x(J.)S 
17 x(Froggatt.)S 17 x(Are)S 17 x(Angles)S 17 x(Measured)S 17 x(in)S
17 x(Degrees,)S 17 x(Radians,)S 17 x(or)S 16 x(What?)S 17 x F7(Ada)S
16 x(User)S F6(,)S 17 x(11\(3\):106,)S 17 x(1990.)S 17 x(Letter)S 
17 x(to)S 50 y 427 X(the)S 20 x(editor.)S 71 y 327 X([12])S 31 x
(IEEE.)S 18 x(IEEE)S 18 x(Standard)S 18 x(for)S 18 x(Binary)S 18 x
(Floating-Point)S 18 x(Arithmetic.)S 18 x(ANSI/IEEE)S 18 x(Std.)S 
18 x(754-1985,)S 19 x(IEEE,)S 18 x(New)S 18 x(Y)S -4 x(ork,)S 49 y 
427 X(1985.)S 71 y 327 X([13])S 31 x(IEEE.)S 18 x(IEEE)S 18 x
(Standard)S 18 x(for)S 19 x(Radix-Independent)S 18 x(Floating-Point)S
18 x(Arithmetic.)S 19 x(ANSI/IEEE)S 18 x(Std.)S 18 x(854-1987,)S 
18 x(IEEE,)S 50 y 427 X(New)S 19 x(Y)S -4 x(ork,)S 19 x(1987.)S 70 y 
327 X([14])S 31 x(ISO-IEC/JTC1/SC22/WG9)S 17 x(\(Ada\))S 17 x(Ada)S
17 x(Rapporteur)S 17 x(Group.)S 17 x(Ada-Comment)S 17 x(Database.)S
16 x(Maintained)S 17 x(by)S 16 x(the)S 17 x(Ada)S 50 y 427 X(Joint)S
18 x(Program)S 17 x(Of)S -1 x(\014ce)S 18 x(on)S 18 x
(AJPO.SEI.CMU.EDU.)S 71 y 327 X([15])S 31 x(ISO-IEC/JTC1/SC22/WG9)S
14 x(\(Ada\))S 15 x(Numerics)S 15 x(Rapporteur)S 15 x(Group.)S 15 x
(Proposed)S 15 x(Standard)S 15 x(for)S 15 x(a)S 15 x(Generic)S 15 x
(Package)S 14 x(of)S 49 y 427 X(Elementary)S 19 x(Functions)S 19 x
(for)S 19 x(Ada,)S 17 x(March)S 17 x(1989.)S 17 x(Draft)S 17 x(1.0.)S
71 y 327 X([16])S 31 x(ISO-IEC/JTC1/SC22/WG9)S 14 x(\(Ada\))S 15 x
(Numerics)S 15 x(Rapporteur)S 15 x(Group.)S 15 x(Proposed)S 15 x
(Standard)S 15 x(for)S 15 x(a)S 15 x(Generic)S 15 x(Package)S 14 x
(of)S 50 y 427 X(Elementary)S 18 x(Functions)S 19 x(for)S 19 x(Ada,)S
17 x(October)S 17 x(1989.)S 17 x(Draft)S 17 x(1.1.)S 70 y 327 X
([17])S 31 x(ISO-IEC/JTC1/SC22/WG9)S 14 x(\(Ada\))S 15 x(Numerics)S
15 x(Rapporteur)S 15 x(Group.)S 15 x(Proposed)S 15 x(Standard)S 15 x
(for)S 15 x(a)S 15 x(Generic)S 15 x(Package)S 14 x(of)S 50 y 427 X
(Elementary)S 18 x(Functions)S 18 x(for)S 18 x(Ada,)S 17 x(December)S
17 x(1990.)S 17 x(Draft)S 17 x(1.2.)S 71 y 327 X([18])S 31 x
(ISO-IEC/JTC1/SC22/WG9)S 14 x(\(Ada\))S 15 x(Numerics)S 15 x
(Rapporteur)S 15 x(Group.)S 15 x(Proposed)S 15 x(Standard)S 15 x
(for)S 15 x(a)S 15 x(Generic)S 15 x(Package)S 14 x(of)S 49 y 427 X
(Primitive)S 19 x(Functions)S 19 x(for)S 19 x(Ada,)S 17 x(December)S
17 x(1990.)S 17 x(Draft)S 16 x(1.0.)S 71 y 327 X([19])S 31 x(W.)S 
15 x(Kahan.)S 15 x(Why)S 15 x(Must)S
XP /F20 /cmr10 300 41.5 41.5 128 [-3 -11 41 31] PXLNF RP
XP /F20 48 21 2 -1 18 28 29 16 0
<03C0 0C30 1818 300C 300C 700E 6006 6006 E007 E007 E007 E007 E007
 E007 E007 E007 E007 E007 E007 E007 E007 6006 6006 700E 300C 300C
 1818 0C30 07E0>
PXLC RP
820 2630 XY F20(0)S
XP /F32 /cmr10 300 41.5 29.1 128 [-3 -11 41 31] PXLF RP
XP /F32 48 21 2 -1 18 28 29 16 0
<03C0 0C30 1818 300C 300C 700E 6006 6006 E007 E007 E007 E007 E007
 E007 E007 E007 E007 E007 E007 E007 E007 6006 6006 700E 300C 300C
 1818 0C30 07E0>
PXLC RP
841 2615 XY F32(0)S
XP /F20 61 32 2 4 29 16 12 32 0
<7FFFFFC0 FFFFFFE0 00000000 00000000 00000000 00000000 00000000
 00000000 00000000 00000000 FFFFFFE0 7FFFFFC0>
PXLC RP
871 2630 XY F20(=)S
XP /F20 49 21 4 0 17 28 28 16 0
<0300 0700 3F00 C700 0700 0700 0700 0700 0700 0700 0700 0700 0700
 0700 0700 0700 0700 0700 0700 0700 0700 0700 0700 0700 0700 0700
 0F80 FFF8>
PXLC RP
916 2630 XY F20(1)S F6(?)S 15 x(Preprint,)S 15 x(University)S 15 x
(of)S 15 x(California)S 15 x(at)S 15 x(Berkeley,)S 15 x(August)S 
14 x(1988.)S 70 y 327 X([20])S 31 x(J.)S 22 x(Kok.)S 23 x(Proposal)S
22 x(for)S 23 x(Standard)S 23 x(Mathematical)S 22 x(Packages)S 22 x
(in)S 22 x(Ada.)S 22 x(CWI)S 22 x(Report)S 22 x(NM-R8718,)S 22 x
(Centrum)S 22 x(voor)S 50 y 427 X(W)S -2 x(iskunde)S 17 x(en)S 17 x
(Informatica,)S 17 x(Amsterdam,)S 17 x(November)S 17 x(1987.)S 71 y 
327 X([21])S 31 x(J.)S 23 x(Kok)S 23 x(and)S 23 x(G.)S 23 x(T.)S 
23 x(Symm.)S 23 x(A)S 23 x(Proposal)S 23 x(for)S 23 x(Standard)S 
23 x(Basic)S 23 x(Functions)S 23 x(in)S 23 x(Ada.)S 23 x F7(Ada)S 
24 x(Letters)S F6(,)S 23 x(4\(3\):44{52,)S 50 y 427 X
(November/December)S 19 x(1984.)S 70 y 327 X([22])S 31 x(R.)S 13 x
(F.)S 13 x(Mathis.)S 13 x(Elementary)S 14 x(Functions)S 13 x
(Packages)S 13 x(for)S 14 x(Ada.)S 14 x(In)S 14 x F7(Pr)S -2 x(oc.)S
13 x(1987)S 12 x(ACM)S 12 x(SIGAda)S 12 x(International)S 12 x
(Confer)S -2 x(ence)S 50 y 427 X(on)S 13 x(the)S 13 x(Ada)S 13 x(Pr)S
-2 x(ogramming)S 14 x(Language)S 13 x F6(\(special)S 14 x(issue)S 
14 x(of)S 13 x F7(Ada)S 13 x(Letters)S F6(\),)S 15 x(pages)S 15 x
(95{100,)S 14 x(December)S 14 x(1987.)S 3128 Y 1281 X(17)S
%%PageTrailer
/paper-automatic true SPS 1 PP EP
%%PageBoundingBox: 78 39 546 718

%%PageBoundingBox: (atend)
%%BeginPageSetup
1000 BP 3300 2550 PM /paper-automatic false SPS 327 0 XY
%%EndPageSetup
327 342 XY F6([23])S 31 x(J.)S 11 x(Squire.)S 11 x(V)S -5 x
(alidation)S 12 x(of)S 11 x(Reusable)S 12 x(Numerical)S 11 x
(Software)S 11 x(in)S 11 x(Ada.)S 12 x(Independent)S 11 x(Research)S
11 x(and)S 12 x(Development)S 12 x(Report,)S 49 y 427 X(W)S -3 x
(estinghouse)S 15 x(Electronic)S 16 x(Systems)S 16 x(Group,)S 16 x
(Baltimore,)S 16 x(1989)S 16 x(\(to)S 16 x(appear\).)S 67 y 327 X
([24])S 31 x(P.)S 11 x(T.)S 10 x(P.)S 11 x(T)S -3 x(ang.)S 11 x
(Accurate)S 11 x(and)S 11 x(Ef)S -1 x(\014cient)S 11 x(Testing)S 
11 x(of)S 11 x(the)S 11 x(Exponential)S 11 x(and)S 11 x(Logarithm)S
11 x(Functions)S 11 x(in)S 11 x(Ada.)S 11 x(ANL)S 11 x(Report)S 50 y 
427 X(ANL-88-24,)S 17 x(Ar)S -1 x(gonne)S 18 x(National)S 17 x
(Laboratory,)S 17 x(November)S 17 x(1988.)S 66 y 327 X([25])S 31 x
(P.)S 15 x(T.)S 15 x(P.)S 15 x(T)S -3 x(ang.)S 15 x(Portable)S 15 x
(Implementation)S 15 x(of)S 15 x(a)S 15 x(Generic)S 15 x
(Exponential)S 15 x(Function)S 15 x(in)S 16 x(Ada.)S 15 x(ANL)S 15 x
(Report)S 15 x(ANL-88-3,)S 50 y 427 X(Ar)S -1 x(gonne)S 19 x
(National)S 17 x(Laboratory,)S 18 x(February)S 18 x(1988.)S 66 y 
327 X([26])S 31 x(P.)S 17 x(T.)S 16 x(P.)S 17 x(T)S -3 x(ang.)S 16 x
(Use)S 17 x(of)S 17 x(Language)S 17 x(Features)S 17 x(in)S 17 x(the)S
17 x(Implementation)S 17 x(and)S 17 x(Validation)S 16 x(of)S 17 x(a)S
17 x(Standardized)S 17 x(Generic)S 50 y 427 X(Package)S 19 x(of)S 
19 x(Elementary)S 19 x(Functions)S 19 x(in)S 19 x(Ada.)S 18 x(In)S
18 x(G.)S 18 x(Pollock,)S 18 x(editor,)S 19 x F7(Pr)S -2 x(oc.)S 
20 x(1988)S 19 x(Sandia)S 19 x(W)S -4 x(orkshop)S 20 x(on)S 18 x
(Ada)S 19 x(in)S 50 y 427 X(Real-T)S -2 x(ime)S 10 x(and)S 11 x
(Scienti)S
(\014c)S 11 x(Envir)S -2 x(onments)S F6(.)S 13 x(Sandia)S 12 x
(National)S 12 x(Laboratory,)S 12 x(to)S 12 x(appear.)S 13 x(A)S 
-3 x(vailable)S 12 x(from)S 12 x(author)S 13 x(as)S 13 x(ANL)S 50 y 
427 X(Preprint)S 19 x(MCS-P25-1188.)S 66 y 327 X([27])S 31 x(U.)S 
21 x(S.)S 21 x(Department)S 21 x(of)S 21 x(Defense,)S 22 x(Ada)S 
21 x(Joint)S 21 x(Program)S 21 x(Of)S -1 x(\014ce.)S 21 x F7(Refer)S
-2 x(ence)S 23 x(Manual)S 22 x(for)S 23 x(the)S 23 x(Ada)S 23 x(Pr)S
-2 x(ogramming)S 50 y 427 X(Language,)S 10 x F6(ANSI/MIL-STD-1815A.)S
11 x(U.)S 11 x(S.)S 11 x(Government)S 11 x(Printing)S 11 x(Of)S -1 x
(\014ce,)S 11 x(W)S -3 x(ashington,)S 11 x(D.)S 11 x(C.,)S 12 x
(1983.)S 11 x(Also)S 12 x(adopted)S 50 y 427 X(by)S 17 x(ISO)S 17 x
(as)S 17 x(ISO/8652-1987,)S 16 x(Programming)S 16 x(Languages|Ada.)S
3128 Y 1281 X(18)S
%%PageTrailer
/paper-automatic true SPS 1 PP EP
%%PageBoundingBox: 78 39 546 718

%%Trailer
EndDviLaserDoc

%%BoundingBox: 78 39 546 718
%%Pages: 18
%%DocumentFonts: Times-Bold Times-Roman Times-BoldItalic
%%+ Helvetica-BoldOblique Times-Italic Symbo