VMS Help
RTL Routines, CVT$, CVT$CONVERT_FLOAT
*Conan The Librarian (sorry for the slow response - running on an old VAX)
|
|
The Convert Floating-Point Data Type routine provides a
simplified options-interface for converting a floating-point
data type to another supported floating-point data type.
Format
CVT$CONVERT_FLOAT input_value, input_type_code, output_value,
output_type_code, options
OpenVMS usage:cond_value
type: longword (unsigned)
access: write only
mechanism: by value
input_value
OpenVMS usage:varying_arg
type: unspecified
access: read only
mechanism: by reference
The address of a data area containing a floating-point number
that is to be converted. The input_value argument may contain
floating-point data in F_Floating, D_Floating, G_Floating, H_
Floating, IEEE_S_Floating, IEEE_T_Floating, IEEE_X_Floating, IBM_
Long_Floating, IBM_Short_Floating, or CRAY_Floating format. The
value of the input_type_code argument determines the format and
size of the input_value argument.
input_type_code
OpenVMS usage:longword_unsigned
type: longword (unsigned)
access: read only
mechanism: by value
The value of a longword bit mask specifying the type of floating-
point data being passed in the input_value argument. Valid type
codes are:
Size in
input_type_code Format Bytes
CVT$K_VAX_F F_Floating 4
CVT$K_VAX_D D_Floating 8
CVT$K_VAX_G G_Floating 8
CVT$K_VAX_H H_Floating 16
CVT$K_IEEE_S IEEE_S_Floating 4
CVT$K_IEEE_T IEEE_T_Floating 8
CVT$K_IEEE_X IEEE_X_Floating 16
CVT$K_IBM_LONG IBM_Long_Floating 8
CVT$K_IBM_SHORT IBM_Short_Floating 4
CVT$K_CRAY CRAY_Floating 8
Declarations for the input_type_code argument are in the $CVTDEF
module found in the system symbol libraries.
output_value
OpenVMS usage:varying_arg
type: unspecified
access: write only
mechanism: by reference
The address of a data area that receives the converted floating-
point number. The output_value argument can contain floating-
point data in F_Floating, D_Floating, G_Floating, H_Floating,
IEEE_S_Floating, IEEE_T_Floating, IEEE_X_Floating, IBM_Long_
Floating, IBM_Short_Floating, or CRAY_Floating format. The value
of the output_type_code argument determines the size and format
of the data placed into the output_value argument.
output_type_code
OpenVMS usage:longword_unsigned
type: longword (unsigned)
access: read only
mechanism: by value
The value of a longword bit mask specifying the type of floating-
point data that the input_value argument will be converted into
and returned in the output_value argument. Valid type codes are:
Size in
output_type_code Format Bytes
CVT$K_VAX_F F_Floating 4
CVT$K_VAX_D D_Floating 8
CVT$K_VAX_G G_Floating 8
CVT$K_VAX_H H_Floating 16
CVT$K_IEEE_S IEEE_S_Floating 4
CVT$K_IEEE_T IEEE_T_Floating 8
CVT$K_IEEE_X IEEE_X_Floating 16
CVT$K_IBM_LONG IBM_Long_Floating 8
CVT$K_IBM_SHORT IBM_Short_Floating 4
CVT$K_CRAY CRAY_Floating 8
Declarations for the output_type_code argument are in the $CVTDEF
module found in the system symbol libraries.
options
OpenVMS usage:mask_longword
type: longword (unsigned)
access: read only
mechanism: by value
Conversion option specifier. The options argument is the address
of a longword bit mask in which each option bit set causes the
corresponding option to be used during the conversion.
The following options can be specified using the options
argument:
Option Description
CVT$M_ROUND_TO_ The default rounding option for
NEAREST conversions to IEEE data types. This
IEEE Std. 754 rounding mode results in
the representable output value nearest to
the infinitely precise result. If the two
nearest representable values are equally
near, the one whose least significant bit
is 0 is the result.
CVT$M_VAX_ROUNDING The default rounding option for
conversions to non-IEEE data types.
Performs "traditional" style rounding.
This mode results in the 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.
CVT$M_TRUNCATE Round the output value toward zero
(truncate).
CVT$M_ROUND_TO_POS Round the output value toward positive
infinity.
CVT$M_ROUND_TO_NEG Round the output value toward negative
infinity.
CVT$M_BIG_ENDIAN Interprets IEEE data types as Big Endian.
CVT$M_ERR_UNDERFLOW Report underflow conditions as errors.
Declarations for the options argument are in the $CVTDEF module
found in the system symbol libraries.
[legal]
[privacy]
[GNU]
[policy]
[netiquette]
[sponsors]
[FAQ]
Polarhome, production since 1999.
Member of Polarhome portal.