ISO/ IEC JTC1/SC22/WG14 N680

                 Document Number:  WG14 N680/J11 97-043

                               C9X Revision Proposal
                               =====================

       Title: scalbn

       Author: Fred J. Tydeman
       Author Affiliation: Tydeman Consulting
       Postal Address: 3711 Del Robles Dr., Austin, TX 78727-1814
       E-mail Address: [email protected]
       Telephone Number: +1 (512) 255-8696
       Fax Number: +1 (512) 255-8696

       Sponsor: X3J11
       Date: 1997-04-26
       Document History: Correction to WG14/N657 item 6.
       Proposal Category:
          __ Editorial change/non-normative contribution
          _Y Correction
          __ New feature
          __ Addition to obsolescent feature list
          __ Addition to Future Directions
          __ Other (please specify)  ______________________________
       Area of Standard Affected:
          __ Environment
          __ Language
          __ Preprocessor
          _Y Library
             __ Macro/typedef/tag name
             __ Function
             __ Header
          __ Other (please specify)  ______________________________
       Prior Art: X/Open XPG_______________________________________
       Target Audience: All users.
       Related Documents (if any):  WG14/N657 item 6_______________
       Proposal Attached: _Y Yes __ No, but what's your interest?
       Abstract: Correct scalbn to be type generic on just the
       floating-point type.

       Proposal:

       In section 7.6.6.y The scalbn function.

       Change:

          scalbnf(       float,      int )
          scalbn (      double,      int )
          scalbnl( long double, long int )

       to:

          scalblnf(       float, long int )
          scalbln (      double, long int )
          scalblnl( long double, long int )

       An alternative is to change scalbn to:

          scalbnf(       float, int )
          scalbn (      double, int )
          scalbnl( long double, int )

       and add a new function:

          scalblnf(       float, long int )
          scalbln (      double, long int )
          scalblnl( long double, long int )


       Rationale:

       The current scalbn (i.e. what we approved at Kona) is not a
       true type generic function since the float and double
       versions take an int second argument, but the long double
       version takes a long int second argument.

       The proposal is to not add X/Open's scalbn (with its int
       second argument) to C9X, but, to instead add a scalbln
       with a long int second argument.

       The alternative is to add both scalbln and X/Open's scalbn.

       The three people on the review committee each had a
       different suggestion:  leave it as is, add just the long
       int version, and add both int and long int versions.