/********************************************************************************************************************************/ /* Created: 9-Nov-2023 12:07:12 by OpenVMS SDL V3.7 */ /* Source: 09-NOV-2023 12:07:10 $1$DGA8345:[STARLET_H.SRC]PASLIB_IEEEFLT$ROUTINES.SDI;1 */ /********************************************************************************************************************************/ /*** MODULE PASLIB_IEEEFLT$ROUTINES ***/ #ifndef __PASLIB_IEEEFLT_ROUTINES_LOADED #define __PASLIB_IEEEFLT_ROUTINES_LOADED 1 #pragma __nostandard /* This file uses non-ANSI-Standard features */ #pragma __member_alignment __save #pragma __nomember_alignment #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __save /* Save the previously-defined required ptr size */ #pragma __required_pointer_size __short /* And set ptr size default to 32-bit pointers */ #endif #ifdef __cplusplus extern "C" { #define __unknown_params ... #define __optional_params ... #else #define __unknown_params #define __optional_params ... #endif #ifndef __struct #if !defined(__VAXC) #define __struct struct #else #define __struct variant_struct #endif #endif #ifndef __union #if !defined(__VAXC) #define __union union #else #define __union variant_union #endif #endif /**************************************************************************** */ /* * */ /* COPYRIGHT (c) 1992, 1994, 1995, 1996, 1997, 2003 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. * */ /* * */ /* * */ /**************************************************************************** */ #ifdef __INITIAL_POINTER_SIZE #pragma __required_pointer_size __long #endif /* LIB$CVTS_FROM_INTERNAL_TIME */ /* */ /* Convert Internal Time to External Time (S-Floating Point Value) */ /* */ /* The Convert Internal Time to External Time (S-Floating Point Value) */ /* routine converts a delta internal VMS system time into an external */ /* S-floating time. */ /* */ #define lib$cvts_from_internal_time LIB$CVTS_FROM_INTERNAL_TIME #ifdef __NEW_STARLET unsigned int lib$cvts_from_internal_time( unsigned int *operation, float *resultant_time, unsigned __int64 *input_time); #else /* __OLD_STARLET */ unsigned int lib$cvts_from_internal_time(__unknown_params); #endif /* #ifdef __NEW_STARLET */ /* LIB$CVTS_TO_INTERNAL_TIME */ /* */ /* Convert External Time to Internal Time (S-Floating Point Value) */ /* */ /* The Convert External Time to Internal Time (S-Floating Point Value) */ /* routine converts an external time interval into a VMS internal format */ /* S-floating delta time. */ /* */ /* */ #define lib$cvts_to_internal_time LIB$CVTS_TO_INTERNAL_TIME #ifdef __NEW_STARLET unsigned int lib$cvts_to_internal_time( unsigned int *operation, float *input_time, unsigned __int64 *resultant_time); #else /* __OLD_STARLET */ unsigned int lib$cvts_to_internal_time(__unknown_params); #endif /* #ifdef __NEW_STARLET */ /* LIB$EMODS */ /* */ /* Extended Multiply and Integerize Routines for S-Floating Point Values */ /* */ /* The Extended Multiply and Integerize routine (S-Floating Point Values) */ /* allows higher-level language users to perform accurate range reduction */ /* of S-floating arguments. */ /* */ #define lib$emods LIB$EMODS #ifdef __NEW_STARLET unsigned int lib$emods( float *floating_point_multiplier, unsigned char *multiplier_extension, float *floating_point_multiplicand, int *integer_portion, float *fractional_portion); #else /* __OLD_STARLET */ unsigned int lib$emods(__unknown_params); #endif /* #ifdef __NEW_STARLET */ /* LIB$MULTS_DELTA_TIME */ /* */ /* Multiply Delta Time by an S_Floating Scalar */ /* */ /* The Multiply Delta Time by an S-Floating Scalar routine multiplies a */ /* delta time by an S-floating scalar. */ /* */ #define lib$mults_delta_time LIB$MULTS_DELTA_TIME #ifdef __NEW_STARLET unsigned int lib$mults_delta_time( float *multiplier, unsigned __int64 *delta_time); #else /* __OLD_STARLET */ unsigned int lib$mults_delta_time(__unknown_params); #endif /* #ifdef __NEW_STARLET */ /* LIB$POLYS */ /* */ /* Evaluate Polynomials */ /* */ /* The Evaluate Polynomials routine (S-floating point values) allows */ /* higher-level language users to evaluate S-floating point */ /* polynomials. */ /* */ #define lib$polys LIB$POLYS #ifdef __NEW_STARLET unsigned int lib$polys( float *polynomial_argument, short int *degree, float coefficient [], float *floating_point_result); #else /* __OLD_STARLET */ unsigned int lib$polys(__unknown_params); #endif /* #ifdef __NEW_STARLET */ #pragma __member_alignment __restore #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __restore /* Restore the previously-defined required ptr size */ #endif #ifdef __cplusplus } #endif #pragma __standard #endif /* __PASLIB_IEEEFLT_ROUTINES_LOADED */