|
|
/* file: cvt.h */
/*
** ** COPYRIGHT (c) 1989, 1990 BY ** DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASSACHUSETTS. ** ALL RIGHTS RESERVED. ** ** THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED ** ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE ** INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER ** COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY ** OTHER PERSON. NO TITLE TO AND OWNERSHIP OF THE SOFTWARE IS HEREBY ** TRANSFERRED. ** ** THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE ** AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT ** CORPORATION. ** ** DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS ** SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL. ** */
/*
**++ ** Facility: ** ** CVT Run-Time Library ** ** Abstract: ** ** This module contains the public include file for the cvt_* routines. ** This module contains rountine interfaces as well as necessary ** definitions. ** ** Author: ** ** Math RTL ** ** Creation Date: December 5, 1989. ** ** Modification History: ** ** 1-001 Original created. MRTL 5-Dec-1989. ** 1-002 Add GEM FORTRAN stuff. TS 27-Mar-1990. ** **-- */
#ifndef CVT
#define CVT 1
/*
* * Type Definitions * */
typedef unsigned char CVT_BYTE; typedef CVT_BYTE *CVT_BYTE_PTR;
typedef CVT_BYTE CVT_VAX_F[4]; typedef CVT_BYTE CVT_VAX_D[8]; typedef CVT_BYTE CVT_VAX_G[8]; typedef CVT_BYTE CVT_VAX_H[16]; typedef CVT_BYTE CVT_IEEE_SINGLE[4]; typedef CVT_BYTE CVT_IEEE_DOUBLE[8]; typedef CVT_BYTE CVT_IBM_SHORT[4]; typedef CVT_BYTE CVT_IBM_LONG[8]; typedef CVT_BYTE CVT_CRAY[8]; typedef float CVT_SINGLE; typedef double CVT_DOUBLE; typedef long CVT_SIGNED_INT; typedef unsigned long CVT_UNSIGNED_INT; typedef unsigned long CVT_STATUS;
/*
* * Constant Definitions * */
#define CVT_C_ROUND_TO_NEAREST 1
#define CVT_C_TRUNCATE 2
#define CVT_C_ROUND_TO_POS 4
#define CVT_C_ROUND_TO_NEG 8
#define CVT_C_VAX_ROUNDING 16
#define CVT_C_BIG_ENDIAN 32
#define CVT_C_ERR_UNDERFLOW 64
#define CVT_C_ZERO_BLANKS 128
#define CVT_C_SKIP_BLANKS 256
#define CVT_C_SKIP_UNDERSCORES 512
#define CVT_C_SKIP_UNDERSCORE 512
#define CVT_C_SKIP_TABS 1024
#define CVT_C_ONLY_E 2048
#define CVT_C_EXP_LETTER_REQUIRED 4096
#define CVT_C_FORCE_SCALE 8192
#define CVT_C_EXPONENTIAL_FORMAT 16384
#define CVT_C_FORCE_PLUS 32768
#define CVT_C_FORCE_EXPONENT_SIGN 65536
#define CVT_C_SUPPRESS_TRAILING_ZEROES 131072
#define CVT_C_FORCE_EXPONENTIAL_FORMAT 262144
#define CVT_C_FORCE_FRACTIONAL_FORMAT 524288
#define CVT_C_EXPONENT_D 1048576
#define CVT_C_EXPONENT_E 2097152
#define CVT_C_SEMANTICS_FORTRAN 4194304
#define CVT_C_SEMANTICS_PASCAL 8388608
#define cvt__normal 1
#define cvt__invalid_character 2
#define cvt__invalid_option 3
#define cvt__invalid_radix 4
#define cvt__invalid_size 5
#define cvt__invalid_value 6
#define cvt__neg_infinity 7
#define cvt__output_conversion_error 8
#define cvt__overflow 9
#define cvt__pos_infinity 10
#define cvt__underflow 11
#define cvt__input_conversion_error 12
#define cvt_s_normal cvt__normal
#define cvt_s_invalid_character cvt__invalid_character
#define cvt_s_invalid_option cvt__invalid_option
#define cvt_s_invalid_radix cvt__invalid_radix
#define cvt_s_invalid_size cvt__invalid_size
#define cvt_s_invalid_value cvt__invalid_value
#define cvt_s_neg_infinity cvt__neg_infinity
#define cvt_s_input_conversion_error cvt__input_conversion_error
#define cvt_s_output_conversion_error cvt__output_conversion_error
#define cvt_s_overflow cvt__overflow
#define cvt_s_pos_infinity cvt__pos_infinity
#define cvt_s_underflow cvt__underflow
#define CVT_C_BIN 2
#define CVT_C_OCT 8
#define CVT_C_DEC 10
#define CVT_C_HEX 16
/*
* * Routine interfaces * */
#ifndef PCC
extern void cvt_cray_to_vax_f ( CVT_CRAY input_value, CVT_SIGNED_INT options, CVT_VAX_F output_value );
extern void cvt_cray_to_vax_d ( CVT_CRAY input_value, CVT_SIGNED_INT options, CVT_VAX_D output_value );
extern void cvt_cray_to_vax_g ( CVT_CRAY input_value, CVT_SIGNED_INT options, CVT_VAX_G output_value );
extern void cvt_cray_to_vax_h ( CVT_CRAY input_value, CVT_SIGNED_INT options, CVT_VAX_H output_value );
extern void cvt_cray_to_ieee_single ( CVT_CRAY input_value, CVT_SIGNED_INT options, CVT_IEEE_SINGLE output_value );
extern void cvt_cray_to_ieee_double ( CVT_CRAY input_value, CVT_SIGNED_INT options, CVT_IEEE_DOUBLE output_value );
extern void cvt_ibm_short_to_vax_f ( CVT_IBM_SHORT input_value, CVT_SIGNED_INT options, CVT_VAX_F output_value );
extern void cvt_ibm_short_to_ieee_single ( CVT_IBM_SHORT input_value, CVT_SIGNED_INT options, CVT_IEEE_SINGLE output_value );
extern void cvt_ibm_long_to_vax_d ( CVT_IBM_LONG input_value, CVT_SIGNED_INT options, CVT_VAX_D output_value );
extern void cvt_ibm_long_to_vax_g ( CVT_IBM_LONG input_value, CVT_SIGNED_INT options, CVT_VAX_G output_value );
extern void cvt_ibm_long_to_vax_h ( CVT_IBM_LONG input_value, CVT_SIGNED_INT options, CVT_VAX_H output_value );
extern void cvt_ibm_long_to_ieee_double ( CVT_IBM_LONG input_value, CVT_SIGNED_INT options, CVT_IEEE_DOUBLE output_value );
extern void cvt_ieee_single_endian ( CVT_IEEE_SINGLE input_value, CVT_IEEE_SINGLE output_value );
extern void cvt_ieee_single_to_cray ( CVT_IEEE_SINGLE input_value, CVT_SIGNED_INT options, CVT_CRAY output_value );
extern void cvt_ieee_single_to_ibm_short ( CVT_IEEE_SINGLE input_value, CVT_SIGNED_INT options, CVT_IBM_SHORT output_value );
extern void cvt_ieee_single_to_vax_f ( CVT_IEEE_SINGLE input_value, CVT_SIGNED_INT options, CVT_VAX_F output_value );
extern void cvt_ieee_double_endian ( CVT_IEEE_DOUBLE input_value, CVT_IEEE_DOUBLE output_value );
extern void cvt_ieee_double_to_cray ( CVT_IEEE_DOUBLE input_value, CVT_SIGNED_INT options, CVT_CRAY output_value );
extern void cvt_ieee_double_to_ibm_long ( CVT_IEEE_DOUBLE input_value, CVT_SIGNED_INT options, CVT_IBM_LONG output_value );
extern void cvt_ieee_double_to_vax_d ( CVT_IEEE_DOUBLE input_value, CVT_SIGNED_INT options, CVT_VAX_D output_value );
extern void cvt_ieee_double_to_vax_g ( CVT_IEEE_DOUBLE input_value, CVT_SIGNED_INT options, CVT_VAX_G output_value );
extern void cvt_ieee_double_to_vax_h ( CVT_IEEE_DOUBLE input_value, CVT_SIGNED_INT options, CVT_VAX_H output_value );
extern void cvt_vax_f_to_cray ( CVT_VAX_F input_value, CVT_SIGNED_INT options, CVT_CRAY output_value );
extern void cvt_vax_f_to_ibm_short ( CVT_VAX_F input_value, CVT_SIGNED_INT options, CVT_IBM_SHORT output_value );
extern void cvt_vax_f_to_ieee_single ( CVT_VAX_F input_value, CVT_SIGNED_INT options, CVT_IEEE_SINGLE output_value );
extern void cvt_vax_d_to_cray ( CVT_VAX_D input_value, CVT_SIGNED_INT options, CVT_CRAY output_value );
extern void cvt_vax_d_to_ibm_long ( CVT_VAX_D input_value, CVT_SIGNED_INT options, CVT_IBM_LONG output_value );
extern void cvt_vax_d_to_ieee_double ( CVT_VAX_D input_value, CVT_SIGNED_INT options, CVT_IEEE_DOUBLE output_value );
extern void cvt_vax_g_to_cray ( CVT_VAX_G input_value, CVT_SIGNED_INT options, CVT_CRAY output_value );
extern void cvt_vax_g_to_ibm_long ( CVT_VAX_G input_value, CVT_SIGNED_INT options, CVT_IBM_LONG output_value );
extern void cvt_vax_g_to_ieee_double ( CVT_VAX_G input_value, CVT_SIGNED_INT options, CVT_IEEE_DOUBLE output_value );
extern void cvt_vax_h_to_cray ( CVT_VAX_H input_value, CVT_SIGNED_INT options, CVT_CRAY output_value );
extern void cvt_vax_h_to_ibm_long ( CVT_VAX_H input_value, CVT_SIGNED_INT options, CVT_IBM_LONG output_value );
extern void cvt_vax_h_to_ieee_double ( CVT_VAX_H input_value, CVT_SIGNED_INT options, CVT_VAX_H output_value );
extern CVT_SINGLE cvt_integer_to_single( CVT_SIGNED_INT, /* input_value */ CVT_SIGNED_INT /* options */ );
extern CVT_DOUBLE cvt_integer_to_double( CVT_SIGNED_INT /* input_value */ );
#ifdef VAX
extern CVT_SIGNED_INT cvt_single_to_integer( CVT_DOUBLE, /* input_value */ CVT_SIGNED_INT /* options */ ); #else
extern CVT_SIGNED_INT cvt_single_to_integer( CVT_SINGLE, /* input_value */ CVT_SIGNED_INT /* options */ ); #endif
extern CVT_SIGNED_INT cvt_double_to_integer( CVT_DOUBLE, /* input_value */ CVT_SIGNED_INT /* options */ );
#ifdef VAX
extern CVT_DOUBLE cvt_single_to_double( CVT_DOUBLE /* input_value */ ); #else
extern CVT_DOUBLE cvt_single_to_double( CVT_SINGLE /* input_value */ ); #endif
extern CVT_SINGLE cvt_double_to_single( CVT_DOUBLE, /* input_value */ CVT_SIGNED_INT /* options */ );
extern void cvt_integer_endian ( CVT_UNSIGNED_INT, /* input_value */ CVT_UNSIGNED_INT * /* output_value */ );
extern void cvt_data_endian ( unsigned char *, /* input_value */ CVT_SIGNED_INT, /* value_size */ unsigned char * /* output_value */ );
extern CVT_STATUS cvt_text_to_integer( char *, /* input_string */ CVT_SIGNED_INT, /* string_size */ CVT_SIGNED_INT, /* options */ CVT_SIGNED_INT * /* resultant value */ );
extern CVT_STATUS cvt_text_to_unsigned( char *, /* input_string */ CVT_SIGNED_INT, /* string_size */ CVT_SIGNED_INT, /* radix */ CVT_SIGNED_INT, /* options */ CVT_UNSIGNED_INT * /* resultant value */ );
extern CVT_STATUS cvt_integer_to_text( CVT_SIGNED_INT, /* input_value */ CVT_SIGNED_INT, /* string_size */ CVT_SIGNED_INT, /* number_of_digits */ CVT_SIGNED_INT, /* options */ char * /* resultant_string */ );
extern CVT_STATUS cvt_unsigned_to_text( CVT_UNSIGNED_INT, /* input_value */ CVT_SIGNED_INT, /* string_size */ CVT_SIGNED_INT, /* radix */ CVT_SIGNED_INT, /* number_of_digits */ char * /* resultant_string */ );
extern CVT_STATUS cvt_text_to_data( char *, /* input_string */ CVT_SIGNED_INT, /* string_size */ CVT_SIGNED_INT, /* value_size */ CVT_SIGNED_INT, /* radix */ CVT_SIGNED_INT, /* options */ unsigned char *); /* resultant value */
extern CVT_STATUS cvt_data_to_text( unsigned char *, /* input_value */ CVT_SIGNED_INT, /* string_size */ CVT_SIGNED_INT, /* value_size */ CVT_SIGNED_INT, /* radix */ CVT_SIGNED_INT, /* number_of_digits */ char *); /* resultant_string */
extern CVT_STATUS cvt_text_to_boolean ( char *, /* input_string */ CVT_SIGNED_INT, /* string_size */ CVT_SIGNED_INT, /* options */ CVT_SIGNED_INT *); /* resultant value */
extern CVT_STATUS cvt_boolean_to_text ( CVT_SIGNED_INT, /* input_value */ CVT_SIGNED_INT, /* string_size */ CVT_SIGNED_INT, /* options */ char *); /* resultant_string */
#else // PCC
extern void cvt_cray_to_vax_f (); extern void cvt_cray_to_vax_d (); extern void cvt_cray_to_vax_g (); extern void cvt_cray_to_vax_h (); extern void cvt_cray_to_ieee_single (); extern void cvt_cray_to_ieee_double ();
extern void cvt_ibm_short_to_vax_f (); extern void cvt_ibm_short_to_ieee_single ();
extern void cvt_ibm_long_to_vax_d (); extern void cvt_ibm_long_to_vax_g (); extern void cvt_ibm_long_to_vax_h (); extern void cvt_ibm_long_to_ieee_double ();
extern void cvt_ieee_single_endian (); extern void cvt_ieee_single_to_cray (); extern void cvt_ieee_single_to_ibm_short (); extern void cvt_ieee_single_to_vax_f ();
extern void cvt_ieee_double_endian (); extern void cvt_ieee_double_to_cray (); extern void cvt_ieee_double_to_ibm_long (); extern void cvt_ieee_double_to_vax_d (); extern void cvt_ieee_double_to_vax_g (); extern void cvt_ieee_double_to_vax_h ();
extern void cvt_vax_f_to_cray (); extern void cvt_vax_f_to_ibm_short (); extern void cvt_vax_f_to_ieee_single ();
extern void cvt_vax_d_to_cray (); extern void cvt_vax_d_to_ibm_long (); extern void cvt_vax_d_to_ieee_double ();
extern void cvt_vax_g_to_cray (); extern void cvt_vax_g_to_ibm_long (); extern void cvt_vax_g_to_ieee_double ();
extern void cvt_vax_h_to_cray (); extern void cvt_vax_h_to_ibm_long (); extern void cvt_vax_h_to_ieee_double ();
extern void cvt_integer_endian (); extern void cvt_data_endian ();
extern CVT_SINGLE cvt_integer_to_single(); extern CVT_DOUBLE cvt_integer_to_double();
extern CVT_SIGNED_INT cvt_single_to_integer(); extern CVT_SIGNED_INT cvt_double_to_integer();
extern CVT_DOUBLE cvt_single_to_double(); extern CVT_SINGLE cvt_double_to_single();
extern CVT_STATUS cvt_text_to_integer(); extern CVT_STATUS cvt_text_to_unsigned();
extern CVT_STATUS cvt_integer_to_text(); extern CVT_STATUS cvt_unsigned_to_text();
extern CVT_STATUS cvt_text_to_boolean(); extern CVT_STATUS cvt_text_to_data();
extern CVT_STATUS cvt_boolean_to_text(); extern CVT_STATUS cvt_data_to_text();
#endif
#endif /* end of CVT.H */
|