*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->Tru64 Unix man pages -> cvt_ftof (3)              
Title
Content
Arch
Section
 

cvt_ftof(3)

Contents


NAME    [Toc]    [Back]

       cvt_ftof  - Converts a floating-point data type to another
       supported floating-point data type.

SYNOPSIS    [Toc]    [Back]

       #include <cvt.h>

       int cvt_ftof(
               void *input_val,
               int input_type,
               void *output_val,
               int output_type,
               int options );

LIBRARY    [Toc]    [Back]

       Math Library (libm)

DESCRIPTION    [Toc]    [Back]

       cvt_ftof()  converts   one  floating-point  data  type  to
       another.   Input_val  points to the input value to be converted
 and output_val points to the converted result.  The
       conversion  is  subject  to  the  options specified in the
       options (bit field) argument. This function returns a  bit
       field indicating any status conditions.

       Input_type  and  output_type  identify  the floating-point
       data type of input_val and output_val as follows:

       ------------------------------------------------------------
       Input_type/Output_type   Data Type                 Size
       ------------------------------------------------------------
       CVT_VAX_F                VAX F Floating             4 bytes
       CVT_VAX_D                VAX D Floating             8 bytes
       CVT_VAX_G                VAX G Floating             8 bytes
       CVT_VAX_H                VAX H Floating            16 bytes
       CVT_IEEE_S               IEEE  Little  Endian  S    4 bytes
                                Floating
       CVT_IEEE_T               IEEE  Little  Endian  T    8 bytes
                                Floating
       CVT_IEEE_X               IEEE  Little  Endian  X   16 bytes
                                Floating
       CVT_BIG_ENDIAN_IEEE_S    IEEE   Big   Endian   S    4 bytes
                                Floating
       CVT_BIG_ENDIAN_IEEE_T    IEEE   Big   Endian   T    8 bytes
                                Floating
       CVT_BIG_ENDIAN_IEEE_X    IEEE   Big   Endian   X   16 bytes
                                Floating
       CVT_IBM_SHORT            IBM Short Floating         4 bytes
       CVT_IBM_LONG             IBM Long Floating          8 bytes
       CVT_CRAY_SINGLE          Cray Single Floating       8 bytes
       ------------------------------------------------------------

       Provide a zero (0) value to the options argument to select
       default  behavior  or  choose  one or more options (status
       condition option, rounding options, "FORCE" options,  Cray
       and  IBM  options)  from  the  tables below as the options
       argument. Specify only the options that apply to your conversion.
  A  conflicting  or incompatible options argument
       will be reported as an error (CVT_INVALID_OPTION).



       ----------------------------------------------------------------------------
       Applicable    Status Condition Option     Description
       Conversion
       ----------------------------------------------------------------------------
       All           CVT_REPORT_ALL              Report all applicable status conditions
  as  the   default.   The
                                                 reporting  of  recoverable status
                                                 conditions is disabled by default
                                                 when this option is not used.
       All           CVT_ROUND_TO_NEAREST        The  default  rounding  mode  for
                                                 conversions to IEEE  data  types.
                                                 This  IEEE Std. 754 rounding mode
                                                 results in a representable output
                                                 value  nearest  to the infinitely
                                                 precise result. If the two  nearest
   representable   values  are
                                                 equally near, the  one  with  its
                                                 least significant bit zero is the
                                                 result.
       All           CVT_BIASED_ROUNDING         The  default  rounding  mode  for
                                                 conversions   to   non-IEEE  data
                                                 types.   Performs   "traditional"
                                                 style    rounding.    This   mode
                                                 results in a representable output
                                                 value  nearest  to the infinitely
                                                 precise result. If the two  nearest
   representable   values  are
                                                 equally near, the output value is
                                                 the  closest  to  either positive
                                                 infinity  or  negative   infinity
                                                 depending  on  the  sign  of  the
                                                 input value.
       All           CVT_ROUND_TO_ZERO           Round  the  output  value  toward
                                                 zero (truncate).
       All           CVT_ROUND_TO_POS            Round  the  output  value  toward
                                                 positive infinity.
       All           CVT_ROUND_TO_NEG            Round  the  output  value  toward
                                                 negative infinity.
       ----------------------------------------------------------------------------

       ----------------------------------------------------------------------------
       Applicable    "FORCE" Options                Description
       Conversion
       ----------------------------------------------------------------------------
       All           CVT_FORCE_ALL_SPECIAL_VALUES   Apply all  applicable  "FORCE"
                                                    options  for  the current conversion.

       IEEE          CVT_FORCE_DENORM_TO_ZERO       Force a denormalized IEEE output
 value to zero. This option
                                                    is valid only for  conversions
                                                    to IEEE output values.
       IEEE          CVT_FORCE_INF_TO_MAX_FLOAT     Force a positive IEEE infinite
                                                    output value to +max_float and
                                                    force a negative IEEE infinite
                                                    output  value  to  -max_float.
                                                    This  option is valid only for
                                                    conversions  to  IEEE   output
                                                    values.








       IEEE or VAX   CVT_FORCE_INVALID_TO_ZERO      Force an invalid IEEE NaN (not
                                                    a number) output  value  or  a
                                                    VAX   ROP  (reserved  operand)
                                                    output value  to  zero.   This
                                                    option  is valid only for conversions
 to IEEE or VAX output
                                                    values.
       ----------------------------------------------------------------------------

       ----------------------------------------------------------------------------
       Applicable    Options for Cray Format  Conver-   Description
       Conversion    sion
       ----------------------------------------------------------------------------
       Cray          CVT_ALLOW_OVRFLW_RANGE_VALUES      Allow    an   input/output
                                                        exponent  value  >   60000
                                                        (8).
       Cray          CVT_ALLOW_UDRFLW_RANGE_VALUES      Allow    an   input/output
                                                        exponent  value  <   20000
                                                        (8).
       ----------------------------------------------------------------------------

       ----------------------------------------------------------------------------
       Applicable    Options for IBM  Format  Con-   Description
       Conversion    version
       ----------------------------------------------------------------------------
       IBM           CVT_ALLOW_UNNORMALIZED_VALUES   Allow    unnormalized   input
                                                     arguments.  Allow  an  unnormalized
  output  value  for a
                                                     small value which would  normalize
 to zero.
       ----------------------------------------------------------------------------

       The    maximum    representable    floating-point   values
       (max_float)  for  the  IEEE_S_Floating,   IEEE_T_Floating,
       IEEE_X_Floating,               Big_Endian_IEEE_S_Floating,
       Big_Endian_IEEE_T_Floating, and Big_Endian_IEEE_X_Floating
       formats are:

       --------------------------------------------------------------------
       Data Type   max_float Value
       --------------------------------------------------------------------
       S_FLOAT     Decimal: 3.402823e38
       T_FLOAT     Decimal: 1.797693134862316e308
       X_FLOAT     Decimal:
                   1.189731495357231765085759326628007016196477e4932
       --------------------------------------------------------------------

RETURN VALUES    [Toc]    [Back]

       The return value  is a bit field containing the  condition
       codes raised by the function.  cvt_ftof() returns CVT_NORMAL;
 otherwise, it sets  one  or  more  of  the  following
       recoverable and unrecoverable conditions.  Use the following
 condition names to determine which conditions are set:

       ---------------------------------------------------------------
       Condition Name            Condition    (Always   reported   by
                                 default)
       ---------------------------------------------------------------
       CVT_INVALID_INPUT_TYPE    Invalid input type code.
       CVT_INVALID_OUTPUT_TYPE   Invalid output type code.
       CVT_INVALID_OPTION        Invalid option argument.
       ---------------------------------------------------------------



       ------------------------------------------------------------------
       Condition Name               Condition  (Only  reported  if   the
                                    CVT_REPORT_ALL option is selected)
       ------------------------------------------------------------------
       CVT_RESULT_INFINITE          Conversion   produced   an  infinite
                                    result.  (For  conversions  to  IEEE
                                    data types.)
       CVT_RESULT_DENORMALIZED      Conversion  produced  a denormalized
                                    result.  (For  conversions  to  IEEE
                                    data types.)
       CVT_RESULT_OVERFLOW_RANGE    Conversion  yielded  an  exponent  >
                                    60000 (8). (For Cray data type  conversions.)

       CVT_RESULT_UNDERFLOW_RANGE   Conversion  yielded  an  exponent  <
                                    20000 (8). (For Cray data type  conversions.)

       CVT_RESULT_UNNORMALIZED      Conversion  produced an unnormalized
                                    result. (For IBM  data type  conversions
 and reported
       CVT_RESULT_INVALID           Conversion   result  is  either  ROP
                                    (reserved operand), NaN (not a  number),
  or  closest  equivalent. Cray
                                    and IBM data types  return  0.  (For
                                    all data type conversions.)
       CVT_RESULT_OVERFLOW          Conversion   resulted  in  overflow.
                                    (For all data type conversions.)
       CVT_RESULT_UNDERFLOW         Conversion  resulted  in  underflow.
                                    (For all data type conversions.)
       CVT_RESULT_INEXACT           Conversion  resulted  in  a  loss of
                                    precision.  (For all data type  conversions.)

       ------------------------------------------------------------------

EXAMPLES    [Toc]    [Back]

       This example converts the value pointed to by big_x  which
       is  of type IEEE  Big  Endian  T  Floating,  to  the  IEEE
       Little  Endian  T Floating data type and stores the result
       in the location pointed  to  by  little_x.  No  conversion
       options are specified.

           status = cvt_ftof( &big_x, CVT_BIG_ENDIAN_IEEE_T,
                       &little_x, CVT_IEEE_T, 0 );

       This  example  converts the value pointed to by x which is
       of type VAX D Floating,   to  the  IEEE  Little  Endian  T
       Floating  data  type and stores the result in the location
       pointed to by y. Any special   IEEE   values  which  would
       normally   be   generated   will  be  removed.   That  is,
       NaN and Denormalized results will be returned as zero  and
       infinite  results  will go  to +- max_float.  In addition,
       all recordable status conditions will be reported.

           status = cvt_ftof(&x, CVT_VAX_D, &y, CVT_IEEE_T,
              (CVT_FORCE_ALL_SPECIAL_VALUES | CVT_REPORT_ALL) );

SEE ALSO    [Toc]    [Back]

      
      
       ANSII/IEEE Std 754-1985, IEEE Standard for  Binary  Floating-Point
 Arithmetic



                                                      cvt_ftof(3)
[ Back ]
 Similar pages
Name OS Title
isnan IRIX determine type of floating-point number
alGetFloatMax IRIX get/set the maximum value of floating point sample data.
ALgetfloatmax IRIX (obsolete) get/set the maximum value of floating point sample data.
floating IRIX 0- return scalar values associated with the argument derived from the model of floating point data.
fpgetmask IRIX floating-point units
remainder Tru64 Compute the floating-point remainder
fpgetmask FreeBSD IEEE floating point interface
fpsetmask FreeBSD IEEE floating point interface
fpclassify FreeBSD classify a floating-point number
fpsetsticky FreeBSD IEEE floating point interface
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service