[PEN_CHECKING_STYLE(NONE),INHERIT('SYS$LIBRARY:PASCAL$D_FLOAT','SYS$LIBRARY:PASCAL$G_FLOAT')] MODULE PASCAL$LIB_ROUTINES_IEEE_FLOAT; ! ************************************************************************* ! * * ! * HPE CONFIDENTIAL. This software is confidential proprietary software * ! * licensed by Hewlett Packard Enterprise Development, LP, and is not * ! * authorized to be used, duplicated or disclosed to anyone without the * ! * prior written permission of HPE. * ! * Copyright 2018 Hewlett Packard Enterprise Development, LP * ! * * ! * VMS SOFTWARE, INC. CONFIDENTIAL. This software is confidential * ! * proprietary software licensed by VMS Software, Inc., and is not * ! * authorized to be used, duplicated or disclosed to anyone without * ! * the prior written permission of VMS Software, Inc. * ! * Copyright 2018 VMS Software, Inc. * ! * * ! ************************************************************************* [HIDDEN] TYPE (**** Pre-declared data types ****) $BYTE = [BYTE] -128..127; $WORD = [WORD] -32768..32767; $QUAD = [QUAD,UNSAFE] RECORD L0:UNSIGNED; L1:INTEGER; END; $OCTA = [OCTA,UNSAFE] RECORD L0,L1,L2:UNSIGNED; L3:INTEGER; END; $UBYTE = [BYTE] 0..255; $UWORD = [WORD] 0..65535; $UQUAD = [QUAD,UNSAFE] RECORD L0,L1:UNSIGNED; END; $UOCTA = [OCTA,UNSAFE] RECORD L0,L1,L2,L3:UNSIGNED; END; $PACKED_DEC = [BIT(4),UNSAFE] 0..15; $DEFTYP = [UNSAFE] INTEGER; $DEFPTR = [UNSAFE] ^$DEFTYP; $BOOL = [BIT(1),UNSAFE] BOOLEAN; $BIT = [BIT(1),UNSAFE] BOOLEAN; $BIT2 = [BIT(2),UNSAFE] 0..3; $BIT3 = [BIT(3),UNSAFE] 0..7; $BIT4 = [BIT(4),UNSAFE] 0..15; $BIT5 = [BIT(5),UNSAFE] 0..31; $BIT6 = [BIT(6),UNSAFE] 0..63; $BIT7 = [BIT(7),UNSAFE] 0..127; $BIT8 = [BIT(8),UNSAFE] 0..255; $BIT9 = [BIT(9),UNSAFE] 0..511; $BIT10 = [BIT(10),UNSAFE] 0..1023; $BIT11 = [BIT(11),UNSAFE] 0..2047; $BIT12 = [BIT(12),UNSAFE] 0..4095; $BIT13 = [BIT(13),UNSAFE] 0..8191; $BIT14 = [BIT(14),UNSAFE] 0..16383; $BIT15 = [BIT(15),UNSAFE] 0..32767; $BIT16 = [BIT(16),UNSAFE] 0..65535; $BIT17 = [BIT(17),UNSAFE] 0..131071; $BIT18 = [BIT(18),UNSAFE] 0..262143; $BIT19 = [BIT(19),UNSAFE] 0..524287; $BIT20 = [BIT(20),UNSAFE] 0..1048575; $BIT21 = [BIT(21),UNSAFE] 0..2097151; $BIT22 = [BIT(22),UNSAFE] 0..4194303; $BIT23 = [BIT(23),UNSAFE] 0..8388607; $BIT24 = [BIT(24),UNSAFE] 0..16777215; $BIT25 = [BIT(25),UNSAFE] 0..33554431; $BIT26 = [BIT(26),UNSAFE] 0..67108863; $BIT27 = [BIT(27),UNSAFE] 0..134217727; $BIT28 = [BIT(28),UNSAFE] 0..268435455; $BIT29 = [BIT(29),UNSAFE] 0..536870911; $BIT30 = [BIT(30),UNSAFE] 0..1073741823; $BIT31 = [BIT(31),UNSAFE] 0..2147483647; $BIT32 = [BIT(32),UNSAFE] UNSIGNED; (* MODULE PASLIB_IEEEFLT$ROUTINES ; *) (* [HIDDEN] TYPE (**** Pre-declared data types ***?? *) (* $BYTE = [BYTE] -128..127; *) (* $WORD = [WORD] -32768..32767; *) (* $QUAD = [QUAD,UNSAFE] RECORD *) (* L0:UNSIGNED; L1:INTEGER; END; *) (* $OCTA = [OCTA,UNSAFE] RECORD *) (* L0,L1,L2:UNSIGNED; L3:INTEGER; END; *) (* $UBYTE = [BYTE] 0..255; *) (* $UWORD = [WORD] 0..65535; *) (* $UQUAD = [QUAD,UNSAFE] RECORD *) (* L0,L1:UNSIGNED; END; *) (* $UOCTA = [OCTA,UNSAFE] RECORD *) (* L0,L1,L2,L3:UNSIGNED; END; *) (* $UOCTAQUAD = [OCTA(2),UNSAFE] RECORD *) (* L0,L1,L2,L3,L4,L5,L6,L7:UNSIGNED; END; *) (* $PACKED_DEC = [BIT(4),UNSAFE] 0..15; *) (* $DEFTYP = [UNSAFE] INTEGER; *) (* $DEFPTR = [UNSAFE] ^$DEFTYP; *) (* $BOOL = [BIT(1),UNSAFE] BOOLEAN; *) (* $BIT2 = [BIT(2),UNSAFE] 0..3; *) (* $BIT3 = [BIT(3),UNSAFE] 0..7; *) (* $BIT4 = [BIT(4),UNSAFE] 0..15; *) (* $BIT5 = [BIT(5),UNSAFE] 0..31; *) (* $BIT6 = [BIT(6),UNSAFE] 0..63; *) (* $BIT7 = [BIT(7),UNSAFE] 0..127; *) (* $BIT8 = [BIT(8),UNSAFE] 0..255; *) (* $BIT9 = [BIT(9),UNSAFE] 0..511; *) (* $BIT10 = [BIT(10),UNSAFE] 0..1023; *) (* $BIT11 = [BIT(11),UNSAFE] 0..2047; *) (* $BIT12 = [BIT(12),UNSAFE] 0..4095; *) (* $BIT13 = [BIT(13),UNSAFE] 0..8191; *) (* $BIT14 = [BIT(14),UNSAFE] 0..16383; *) (* $BIT15 = [BIT(15),UNSAFE] 0..32767; *) (* $BIT16 = [BIT(16),UNSAFE] 0..65535; *) (* $BIT17 = [BIT(17),UNSAFE] 0..131071; *) (* $BIT18 = [BIT(18),UNSAFE] 0..262143; *) (* $BIT19 = [BIT(19),UNSAFE] 0..524287; *) (* $BIT20 = [BIT(20),UNSAFE] 0..1048575; *) (* $BIT21 = [BIT(21),UNSAFE] 0..2097151; *) (* $BIT22 = [BIT(22),UNSAFE] 0..4194303; *) (* $BIT23 = [BIT(23),UNSAFE] 0..8388607; *) (* $BIT24 = [BIT(24),UNSAFE] 0..16777215; *) (* $BIT25 = [BIT(25),UNSAFE] 0..33554431; *) (* $BIT26 = [BIT(26),UNSAFE] 0..67108863; *) (* $BIT27 = [BIT(27),UNSAFE] 0..134217727; *) (* $BIT28 = [BIT(28),UNSAFE] 0..268435455; *) (* $BIT29 = [BIT(29),UNSAFE] 0..536870911; *) (* $BIT30 = [BIT(30),UNSAFE] 0..1073741823; *) (* $BIT31 = [BIT(31),UNSAFE] 0..2147483647; *) (* $BIT32 = [BIT(32),UNSAFE] UNSIGNED; *) (*** MODULE PASLIB_IEEEFLT$ROUTINES ***) (**************************************************************************** *) (* * *) (* 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. * *) (* * *) (* * *) (**************************************************************************** *) (* 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. *) (* *) [ASYNCHRONOUS] FUNCTION lib$cvts_from_internal_time ( operation : UNSIGNED; VAR resultant_time : [VOLATILE] SINGLE; input_time : $UQUAD) : INTEGER; EXTERNAL; (* 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. *) (* *) (* *) [ASYNCHRONOUS] FUNCTION lib$cvts_to_internal_time ( operation : UNSIGNED; input_time : SINGLE; VAR resultant_time : [VOLATILE] $UQUAD) : INTEGER; EXTERNAL; (* 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. *) (* *) [ASYNCHRONOUS] FUNCTION lib$emods ( floating_point_multiplier : SINGLE; multiplier_extension : $UBYTE; floating_point_multiplicand : SINGLE; VAR integer_portion : [VOLATILE] INTEGER; VAR fractional_portion : [VOLATILE] SINGLE) : INTEGER; EXTERNAL; (* 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. *) (* *) [ASYNCHRONOUS] FUNCTION lib$mults_delta_time ( multiplier : SINGLE; VAR delta_time : [VOLATILE] $UQUAD) : INTEGER; EXTERNAL; (* LIB$POLYS *) (* *) (* Evaluate Polynomials *) (* *) (* The Evaluate Polynomials routine (S-floating point values) allows *) (* higher-level language users to evaluate S-floating point *) (* polynomials. *) (* *) [ASYNCHRONOUS] FUNCTION lib$polys ( polynomial_argument : SINGLE; degree : $WORD; %REF coefficient : ARRAY [$l3..$u3:INTEGER] OF SINGLE; VAR floating_point_result : [VOLATILE] SINGLE) : INTEGER; EXTERNAL; (* END. *) END.