[PEN_CHECKING_STYLE(NONE),INHERIT('SYS$LIBRARY:PASCAL$D_FLOAT','SYS$LIBRARY:PASCAL$G_FLOAT')] MODULE PASCAL$MTH_ROUTINES; { © Copyright 2005 Hewlett-Packard Development Company, L.P. } { } { Confidential computer software. Valid license from HP and/or } { its subsidiaries required for possession, use, or copying. } { } { Consistent with FAR 12.211 and 12.212, Commercial Computer Software, } { Computer Software Documentation, and Technical Data for Commercial } { Items are licensed to the U.S. Government under vendor's standard } { commercial license. } { } { Neither HP nor any of its subsidiaries shall be liable for technical } { or editorial errors or omissions contained herein. The information } { in this document is provided "as is" without warranty of any kind and } { is subject to change without notice. The warranties for HP products } { are set forth in the express limited warranty statements accompanying } { such products. Nothing herein should be construed as constituting an } { additional warranty. } { } [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 MTH$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 mth$routines ***) (**************************************************************************** *) (* * *) (* COPYRIGHT (c) 1988 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. * *) (* * *) (* * *) (**************************************************************************** *) (* MTH$ACOS *) (* *) (* Arc Cosine of Angle Expressed in Radians *) (* *) (* Given the cosine of an angle, the Arc Cosine of Angle Expressed in Radians *) (* routine returns that angle *) (* (in radians). *) (* *) [ASYNCHRONOUS] FUNCTION mth$acos ( cosine : SINGLE) : SINGLE; EXTERNAL; (* MTH$DACOS *) (* *) (* Arc Cosine of Angle Expressed in Radians *) (* *) (* Given the cosine of an angle, the Arc Cosine of Angle Expressed in Radians *) (* routine returns that angle *) (* (in radians). *) (* *) [ASYNCHRONOUS] FUNCTION mth$dacos ( cosine : D_FLOAT$$TYPE) : D_FLOAT$$TYPE; EXTERNAL; (* MTH$GACOS *) (* *) (* Arc Cosine of Angle Expressed in Radians *) (* *) (* Given the cosine of an angle, the Arc Cosine of Angle Expressed in Radians *) (* routine returns that angle *) (* (in radians). *) (* *) [ASYNCHRONOUS] FUNCTION mth$gacos ( cosine : G_FLOAT$$TYPE) : G_FLOAT$$TYPE; EXTERNAL; (* MTH$ACOSD *) (* *) (* Arc Cosine of Angle Expressed in Degrees *) (* *) (* Given the cosine of an angle, the Arc Cosine of Angle Expressed in Degrees *) (* routine returns that *) (* angle (in degrees). *) (* *) [ASYNCHRONOUS] FUNCTION mth$acosd ( cosine : SINGLE) : SINGLE; EXTERNAL; (* MTH$DACOSD *) (* *) (* Arc Cosine of Angle Expressed in Degrees *) (* *) (* Given the cosine of an angle, the Arc Cosine of Angle Expressed in Degrees *) (* routine returns that *) (* angle (in degrees). *) (* *) [ASYNCHRONOUS] FUNCTION mth$dacosd ( cosine : D_FLOAT$$TYPE) : D_FLOAT$$TYPE; EXTERNAL; (* MTH$GACOSD *) (* *) (* Arc Cosine of Angle Expressed in Degrees *) (* *) (* Given the cosine of an angle, the Arc Cosine of Angle Expressed in Degrees *) (* routine returns that *) (* angle (in degrees). *) (* *) [ASYNCHRONOUS] FUNCTION mth$gacosd ( cosine : G_FLOAT$$TYPE) : G_FLOAT$$TYPE; EXTERNAL; (* MTH$ASIN *) (* *) (* Arc Sine in Radians *) (* *) (* Given the sine of an angle, the Arc Sine in Radians *) (* routine returns that angle *) (* (in radians). *) (* *) [ASYNCHRONOUS] FUNCTION mth$asin ( sine : SINGLE) : SINGLE; EXTERNAL; (* MTH$DASIN *) (* *) (* Arc Sine in Radians *) (* *) (* Given the sine of an angle, the Arc Sine in Radians *) (* routine returns that angle *) (* (in radians). *) (* *) [ASYNCHRONOUS] FUNCTION mth$dasin ( sine : D_FLOAT$$TYPE) : D_FLOAT$$TYPE; EXTERNAL; (* MTH$GASIN *) (* *) (* Arc Sine in Radians *) (* *) (* Given the sine of an angle, the Arc Sine in Radians *) (* routine returns that angle *) (* (in radians). *) (* *) [ASYNCHRONOUS] FUNCTION mth$gasin ( sine : G_FLOAT$$TYPE) : G_FLOAT$$TYPE; EXTERNAL; (* MTH$ASIND *) (* *) (* Arc Sine in Degrees *) (* *) (* Given the sine of an angle, the Arc Sine in Degrees *) (* routine returns that angle *) (* (in degrees). *) (* *) [ASYNCHRONOUS] FUNCTION mth$asind ( sine : SINGLE) : SINGLE; EXTERNAL; (* MTH$DASIND *) (* *) (* Arc Sine in Degrees *) (* *) (* Given the sine of an angle, the Arc Sine in Degrees *) (* routine returns that angle *) (* (in degrees). *) (* *) [ASYNCHRONOUS] FUNCTION mth$dasind ( sine : D_FLOAT$$TYPE) : D_FLOAT$$TYPE; EXTERNAL; (* MTH$GASIND *) (* *) (* Arc Sine in Degrees *) (* *) (* Given the sine of an angle, the Arc Sine in Degrees *) (* routine returns that angle *) (* (in degrees). *) (* *) [ASYNCHRONOUS] FUNCTION mth$gasind ( sine : G_FLOAT$$TYPE) : G_FLOAT$$TYPE; EXTERNAL; (* MTH$ATAN *) (* *) (* Arc Tangent in Radians *) (* *) (* Given the tangent of an angle, the Arc Tangent in Radians *) (* routine returns that angle (in radians). *) (* *) [ASYNCHRONOUS] FUNCTION mth$atan ( tangent : SINGLE) : SINGLE; EXTERNAL; (* MTH$DATAN *) (* *) (* Arc Tangent in Radians *) (* *) (* Given the tangent of an angle, the Arc Tangent in Radians *) (* routine returns that angle (in radians). *) (* *) [ASYNCHRONOUS] FUNCTION mth$datan ( tangent : D_FLOAT$$TYPE) : D_FLOAT$$TYPE; EXTERNAL; (* MTH$GATAN *) (* *) (* Arc Tangent in Radians *) (* *) (* Given the tangent of an angle, the Arc Tangent in Radians *) (* routine returns that angle (in radians). *) (* *) [ASYNCHRONOUS] FUNCTION mth$gatan ( tangent : G_FLOAT$$TYPE) : G_FLOAT$$TYPE; EXTERNAL; (* MTH$ATAN2 *) (* *) (* Arc Tangent in Radians with Two Arguments *) (* *) (* Given cosine and cosine, the Arc Tangent in *) (* Radians with Two Arguments *) (* routine returns the angle (in radians) *) (* whose tangent is given by the quotient of cosine and cosine, *) (* cosine/cosine. *) (* *) [ASYNCHRONOUS] FUNCTION mth$atan2 ( sine : SINGLE; cosine : SINGLE) : SINGLE; EXTERNAL; (* MTH$DATAN2 *) (* *) (* Arc Tangent in Radians with Two Arguments *) (* *) (* Given cosine and cosine, the Arc Tangent in *) (* Radians with Two Arguments *) (* routine returns the angle (in radians) *) (* whose tangent is given by the quotient of cosine and cosine, *) (* cosine/cosine. *) (* *) [ASYNCHRONOUS] FUNCTION mth$datan2 ( sine : D_FLOAT$$TYPE; cosine : D_FLOAT$$TYPE) : D_FLOAT$$TYPE; EXTERNAL; (* MTH$GATAN2 *) (* *) (* Arc Tangent in Radians with Two Arguments *) (* *) (* Given cosine and cosine, the Arc Tangent in *) (* Radians with Two Arguments *) (* routine returns the angle (in radians) *) (* whose tangent is given by the quotient of cosine and cosine, *) (* cosine/cosine. *) (* *) [ASYNCHRONOUS] FUNCTION mth$gatan2 ( sine : G_FLOAT$$TYPE; cosine : G_FLOAT$$TYPE) : G_FLOAT$$TYPE; EXTERNAL; (* MTH$ATAND *) (* *) (* Arc Tangent in Degrees *) (* *) (* Given the tangent of an angle, the Arc Tangent in Degrees *) (* routine returns that angle (in degrees). *) (* *) [ASYNCHRONOUS] FUNCTION mth$atand ( tangent : SINGLE) : SINGLE; EXTERNAL; (* MTH$DATAND *) (* *) (* Arc Tangent in Degrees *) (* *) (* Given the tangent of an angle, the Arc Tangent in Degrees *) (* routine returns that angle (in degrees). *) (* *) [ASYNCHRONOUS] FUNCTION mth$datand ( tangent : D_FLOAT$$TYPE) : D_FLOAT$$TYPE; EXTERNAL; (* MTH$GATAND *) (* *) (* Arc Tangent in Degrees *) (* *) (* Given the tangent of an angle, the Arc Tangent in Degrees *) (* routine returns that angle (in degrees). *) (* *) [ASYNCHRONOUS] FUNCTION mth$gatand ( tangent : G_FLOAT$$TYPE) : G_FLOAT$$TYPE; EXTERNAL; (* MTH$ATANH *) (* *) (* Hyperbolic Arc Tangent *) (* *) (* Given the hyperbolic tangent of an angle, the Hyperbolic Arc Tangent *) (* routine returns *) (* the hyperbolic arc tangent of that angle. *) (* *) [ASYNCHRONOUS] FUNCTION mth$atanh ( hyperbolic_tangent : SINGLE) : SINGLE; EXTERNAL; (* MTH$DATANH *) (* *) (* Hyperbolic Arc Tangent *) (* *) (* Given the hyperbolic tangent of an angle, the Hyperbolic Arc Tangent *) (* routine returns *) (* the hyperbolic arc tangent of that angle. *) (* *) [ASYNCHRONOUS] FUNCTION mth$datanh ( hyperbolic_tangent : D_FLOAT$$TYPE) : D_FLOAT$$TYPE; EXTERNAL; (* MTH$GATANH *) (* *) (* Hyperbolic Arc Tangent *) (* *) (* Given the hyperbolic tangent of an angle, the Hyperbolic Arc Tangent *) (* routine returns *) (* the hyperbolic arc tangent of that angle. *) (* *) [ASYNCHRONOUS] FUNCTION mth$gatanh ( hyperbolic_tangent : G_FLOAT$$TYPE) : G_FLOAT$$TYPE; EXTERNAL; (* MTH$ATAND2 *) (* *) (* Arc Tangent in Degrees with Two Arguments *) (* *) (* Given cosine and cosine, the Arc Tangent in *) (* Degrees with Two Arguments *) (* routine returns *) (* the angle (in degrees) whose tangent *) (* is given by the quotient of cosine and cosine, *) (* cosine/cosine. *) (* *) [ASYNCHRONOUS] FUNCTION mth$atand2 ( sine : SINGLE; cosine : SINGLE) : SINGLE; EXTERNAL; (* MTH$DATAND2 *) (* *) (* Arc Tangent in Degrees with Two Arguments *) (* *) (* Given cosine and cosine, the Arc Tangent in *) (* Degrees with Two Arguments *) (* routine returns *) (* the angle (in degrees) whose tangent *) (* is given by the quotient of cosine and cosine, *) (* cosine/cosine. *) (* *) [ASYNCHRONOUS] FUNCTION mth$datand2 ( sine : D_FLOAT$$TYPE; cosine : D_FLOAT$$TYPE) : D_FLOAT$$TYPE; EXTERNAL; (* MTH$GATAND2 *) (* *) (* Arc Tangent in Degrees with Two Arguments *) (* *) (* Given cosine and cosine, the Arc Tangent in *) (* Degrees with Two Arguments *) (* routine returns *) (* the angle (in degrees) whose tangent *) (* is given by the quotient of cosine and cosine, *) (* cosine/cosine. *) (* *) [ASYNCHRONOUS] FUNCTION mth$gatand2 ( sine : G_FLOAT$$TYPE; cosine : G_FLOAT$$TYPE) : G_FLOAT$$TYPE; EXTERNAL; (* MTH$CABS *) (* *) (* Complex Absolute Value *) (* *) (* The Complex Absolute Value routine *) (* returns the absolute value of a complex number (r,i). *) (* *) [ASYNCHRONOUS] FUNCTION mth$cabs ( complex_number : $UQUAD) : SINGLE; EXTERNAL; (* MTH$CDABS *) (* *) (* Complex Absolute Value *) (* *) (* The Complex Absolute Value routine *) (* returns the absolute value of a complex number (r,i). *) (* *) [ASYNCHRONOUS] FUNCTION mth$cdabs ( complex_number : $UOCTA) : D_FLOAT$$TYPE; EXTERNAL; (* MTH$CGABS *) (* *) (* Complex Absolute Value *) (* *) (* The Complex Absolute Value routine *) (* returns the absolute value of a complex number (r,i). *) (* *) [ASYNCHRONOUS] FUNCTION mth$cgabs ( complex_number : $UOCTA) : G_FLOAT$$TYPE; EXTERNAL; (* MTH$CCOS *) (* *) (* Cosine of a Complex Number (F-floating Value) *) (* *) (* The Cosine of a Complex Number (F-floating Value) *) (* routine returns the cosine of a complex number as an *) (* F-floating value. *) (* *) [ASYNCHRONOUS] FUNCTION mth$ccos ( complex_number : $UQUAD) : $UQUAD; EXTERNAL; (* MTH$CEXP *) (* *) (* Complex Exponential (F-floating Value) *) (* *) (* The Complex Exponential (F-floating Value) *) (* routine returns the complex exponential of a *) (* complex number as an F-floating value. *) (* *) [ASYNCHRONOUS] FUNCTION mth$cexp ( complex_number : $UQUAD) : $UQUAD; EXTERNAL; (* MTH$CLOG *) (* *) (* Complex Natural Logarithm (F-floating Value) *) (* *) (* The Complex Natural Logarithm (F-floating Value) *) (* routine returns the complex natural logarithm of a complex number as *) (* an F-floating value. *) (* *) [ASYNCHRONOUS] FUNCTION mth$clog ( complex_number : $UQUAD) : $UQUAD; EXTERNAL; (* MTH$CMPLX *) (* *) (* Complex Number Made from F-floating-Point *) (* *) (* The Complex Number Made from F-floating-Point *) (* routine returns a complex number from two floating-point input values. *) (* *) [ASYNCHRONOUS] FUNCTION mth$cmplx ( real_part : SINGLE; imaginary_part : SINGLE) : $UQUAD; EXTERNAL; (* MTH$DCMPLX *) (* *) (* Complex Number Made from D- or G-floating-Point *) (* *) (* The Complex Number Made from *) (* D- or G-floating-Point *) (* routine returns a complex number from two D- or G-floating input values. *) (* *) [ASYNCHRONOUS] PROCEDURE mth$dcmplx ( VAR complx : [VOLATILE] $UOCTA; real_part : D_FLOAT$$TYPE; imaginary_part : D_FLOAT$$TYPE); EXTERNAL; (* MTH$GCMPLX *) (* *) (* Complex Number Made from D- or G-floating-Point *) (* *) (* The Complex Number Made from *) (* D- or G-floating-Point *) (* routine returns a complex number from two D- or G-floating input values. *) (* *) [ASYNCHRONOUS] PROCEDURE mth$gcmplx ( VAR complx : [VOLATILE] $UOCTA; real_part : G_FLOAT$$TYPE; imaginary_part : G_FLOAT$$TYPE); EXTERNAL; (* MTH$CONJG *) (* *) (* Conjugate of a Complex Number (F-floating Value) *) (* *) (* The Conjugate of a Complex Number (F-floating *) (* Value) *) (* routine returns the complex conjugate (r,-i) of a complex number *) (* (r,i) as an F-floating value. *) (* *) [ASYNCHRONOUS] FUNCTION mth$conjg ( complex_number : $UQUAD) : $UQUAD; EXTERNAL; (* MTH$DCONJG *) (* *) (* Conjugate of a Complex Number *) (* *) (* The Conjugate of a Complex Number *) (* routine returns the complex conjugate (r,-i) of a complex number (r,i). *) (* *) [ASYNCHRONOUS] PROCEDURE mth$dconjg ( VAR complex_conjugate : [VOLATILE] $UOCTA; complex_number : $UOCTA); EXTERNAL; (* MTH$GCONJG *) (* *) (* Conjugate of a Complex Number *) (* *) (* The Conjugate of a Complex Number *) (* routine returns the complex conjugate (r,-i) of a complex number (r,i). *) (* *) [ASYNCHRONOUS] PROCEDURE mth$gconjg ( VAR complex_conjugate : [VOLATILE] $UOCTA; complex_number : $UOCTA); EXTERNAL; (* MTH$COS *) (* *) (* Cosine of Angle Expressed in Radians *) (* *) (* The Cosine of Angle Expressed in Radians *) (* routine returns the cosine of a given angle (in radians). *) (* *) [ASYNCHRONOUS] FUNCTION mth$cos ( angle_in_radians : SINGLE) : SINGLE; EXTERNAL; (* MTH$DCOS *) (* *) (* Cosine of Angle Expressed in Radians *) (* *) (* The Cosine of Angle Expressed in Radians *) (* routine returns the cosine of a given angle (in radians). *) (* *) [ASYNCHRONOUS] FUNCTION mth$dcos ( angle_in_radians : D_FLOAT$$TYPE) : D_FLOAT$$TYPE; EXTERNAL; (* MTH$GCOS *) (* *) (* Cosine of Angle Expressed in Radians *) (* *) (* The Cosine of Angle Expressed in Radians *) (* routine returns the cosine of a given angle (in radians). *) (* *) [ASYNCHRONOUS] FUNCTION mth$gcos ( angle_in_radians : G_FLOAT$$TYPE) : G_FLOAT$$TYPE; EXTERNAL; (* MTH$COSD *) (* *) (* Cosine of Angle Expressed in Degrees *) (* *) (* The Cosine of Angle Expressed in Degrees *) (* routine returns the cosine of a given angle (in degrees). *) (* *) [ASYNCHRONOUS] FUNCTION mth$cosd ( angle_in_degrees : SINGLE) : SINGLE; EXTERNAL; (* MTH$DCOSD *) (* *) (* Cosine of Angle Expressed in Degrees *) (* *) (* The Cosine of Angle Expressed in Degrees *) (* routine returns the cosine of a given angle (in degrees). *) (* *) [ASYNCHRONOUS] FUNCTION mth$dcosd ( angle_in_degrees : D_FLOAT$$TYPE) : D_FLOAT$$TYPE; EXTERNAL; (* MTH$GCOSD *) (* *) (* Cosine of Angle Expressed in Degrees *) (* *) (* The Cosine of Angle Expressed in Degrees *) (* routine returns the cosine of a given angle (in degrees). *) (* *) [ASYNCHRONOUS] FUNCTION mth$gcosd ( angle_in_degrees : G_FLOAT$$TYPE) : G_FLOAT$$TYPE; EXTERNAL; (* MTH$COSH *) (* *) (* Hyperbolic Cosine *) (* *) (* The Hyperbolic Cosine *) (* routine returns the hyperbolic cosine of *) (* the input value. *) (* *) [ASYNCHRONOUS] FUNCTION mth$cosh ( floating_point_input_value : SINGLE) : SINGLE; EXTERNAL; (* MTH$DCOSH *) (* *) (* Hyperbolic Cosine *) (* *) (* The Hyperbolic Cosine *) (* routine returns the hyperbolic cosine of *) (* the input value. *) (* *) [ASYNCHRONOUS] FUNCTION mth$dcosh ( floating_point_input_value : D_FLOAT$$TYPE) : D_FLOAT$$TYPE; EXTERNAL; (* MTH$GCOSH *) (* *) (* Hyperbolic Cosine *) (* *) (* The Hyperbolic Cosine *) (* routine returns the hyperbolic cosine of *) (* the input value. *) (* *) [ASYNCHRONOUS] FUNCTION mth$gcosh ( floating_point_input_value : G_FLOAT$$TYPE) : G_FLOAT$$TYPE; EXTERNAL; (* MTH$CSIN *) (* *) (* Sine of Complex Number (F-floating Value) *) (* *) (* The Sine of Complex Number (F-floating *) (* Value) *) (* routine returns the sine of a complex number (r,i) as an *) (* F-floating value. *) (* *) [ASYNCHRONOUS] FUNCTION mth$csin ( complex_number : $UQUAD) : $UQUAD; EXTERNAL; (* MTH$CSQRT *) (* *) (* Complex Square Root (F-floating Value) *) (* *) (* The Complex Square Root (F-floating Value) routine *) (* returns the complex square root of a complex number (r,i). *) (* *) [ASYNCHRONOUS] FUNCTION mth$csqrt ( complex_number : $UQUAD) : $UQUAD; EXTERNAL; (* MTH$CVT_D_G *) (* *) (* Convert One Double-Precision Value *) (* *) (* The Convert One Double-Precision Value routines *) (* convert one double-precision value to the *) (* destination data type and return the result as a function value. *) (* MTH$CVT_D_G converts a D_floating value to G_floating and *) (* MTH$CVT_G_D converts a G_floating value to a D_floating value. *) (* *) [ASYNCHRONOUS] FUNCTION mth$cvt_d_g ( floating_point_input_val : D_FLOAT$$TYPE) : G_FLOAT$$TYPE; EXTERNAL; (* MTH$CVT_G_D *) (* *) (* Convert One Double-Precision Value *) (* *) (* The Convert One Double-Precision Value routines *) (* convert one double-precision value to the *) (* destination data type and return the result as a function value. *) (* MTH$CVT_D_G converts a D_floating value to G_floating and *) (* MTH$CVT_G_D converts a G_floating value to a D_floating value. *) (* *) [ASYNCHRONOUS] FUNCTION mth$cvt_g_d ( floating_point_input_val : G_FLOAT$$TYPE) : D_FLOAT$$TYPE; EXTERNAL; (* MTH$CVT_DA_GA *) (* *) (* Convert an Array of Double-Precision Values *) (* *) (* The Convert an Array of *) (* Double-Precision Values *) (* routines convert a contiguous array of *) (* double-precision values to the destination data type and return the results *) (* as an array. MTH$CVT_DA_GA converts D_floating values to G_floating and *) (* MTH$CVT_GA_DA converts G_floating values to D_floating. *) (* *) [ASYNCHRONOUS] PROCEDURE mth$cvt_da_ga ( %REF floating_point_input_array : ARRAY [$l1..$u1:INTEGER] OF D_FLOAT$$TYPE; %REF floating_point_dest_array : [VOLATILE] ARRAY [$l2..$u2:INTEGER] OF G_FLOAT$$TYPE; array_size : INTEGER := %IMMED 0); EXTERNAL; (* MTH$CVT_GA_DA *) (* *) (* Convert an Array of Double-Precision Values *) (* *) (* The Convert an Array of *) (* Double-Precision Values *) (* routines convert a contiguous array of *) (* double-precision values to the destination data type and return the results *) (* as an array. MTH$CVT_DA_GA converts D_floating values to G_floating and *) (* MTH$CVT_GA_DA converts G_floating values to D_floating. *) (* *) [ASYNCHRONOUS] PROCEDURE mth$cvt_ga_da ( %REF floating_point_input_array : ARRAY [$l1..$u1:INTEGER] OF G_FLOAT$$TYPE; %REF floating_point_dest_array : [VOLATILE] ARRAY [$l2..$u2:INTEGER] OF D_FLOAT$$TYPE; array_size : INTEGER := %IMMED 0); EXTERNAL; (* MTH$CDCOS *) (* *) (* Cosine of a Complex Number *) (* *) (* The Cosine of a Complex Number *) (* routine returns the cosine of a complex number. *) (* *) [ASYNCHRONOUS] PROCEDURE mth$cdcos ( VAR complex_cosine : [VOLATILE] $UOCTA; complex_number : $UOCTA); EXTERNAL; (* MTH$CGCOS *) (* *) (* Cosine of a Complex Number *) (* *) (* The Cosine of a Complex Number *) (* routine returns the cosine of a complex number. *) (* *) [ASYNCHRONOUS] PROCEDURE mth$cgcos ( VAR complex_cosine : [VOLATILE] $UOCTA; complex_number : $UOCTA); EXTERNAL; (* MTH$CDEXP *) (* *) (* Complex Exponential *) (* *) (* The Complex Exponential *) (* routine returns the complex exponential of a *) (* complex number. *) (* *) [ASYNCHRONOUS] PROCEDURE mth$cdexp ( VAR complex_exponent : [VOLATILE] $UOCTA; complex_number : $UOCTA); EXTERNAL; (* MTH$CGEXP *) (* *) (* Complex Exponential *) (* *) (* The Complex Exponential *) (* routine returns the complex exponential of a *) (* complex number. *) (* *) [ASYNCHRONOUS] PROCEDURE mth$cgexp ( VAR complex_exponent : [VOLATILE] $UOCTA; complex_number : $UOCTA); EXTERNAL; (* MTH$CDLOG *) (* *) (* Complex Natural Logarithm *) (* *) (* The Complex Natural Logarithm *) (* routine returns the complex natural logarithm of a complex number. *) (* *) [ASYNCHRONOUS] PROCEDURE mth$cdlog ( VAR complex_natural_log : [VOLATILE] $UOCTA; complex_number : $UOCTA); EXTERNAL; (* MTH$CGLOG *) (* *) (* Complex Natural Logarithm *) (* *) (* The Complex Natural Logarithm *) (* routine returns the complex natural logarithm of a complex number. *) (* *) [ASYNCHRONOUS] PROCEDURE mth$cglog ( VAR complex_natural_log : [VOLATILE] $UOCTA; complex_number : $UOCTA); EXTERNAL; (* MTH$CDSIN *) (* *) (* Sine of Complex Number *) (* *) (* The Sine of Complex Number *) (* routine returns the sine of a complex number (r,i). *) (* *) [ASYNCHRONOUS] PROCEDURE mth$cdsin ( VAR complex_sine : [VOLATILE] $UOCTA; complex_number : $UOCTA); EXTERNAL; (* MTH$CGSIN *) (* *) (* Sine of Complex Number *) (* *) (* The Sine of Complex Number *) (* routine returns the sine of a complex number (r,i). *) (* *) [ASYNCHRONOUS] PROCEDURE mth$cgsin ( VAR complex_sine : [VOLATILE] $UOCTA; complex_number : $UOCTA); EXTERNAL; (* MTH$CDSQRT *) (* *) (* Complex Square Root *) (* *) (* The Complex Square Root routine *) (* returns the complex square root of a complex number (r,i). *) (* *) [ASYNCHRONOUS] PROCEDURE mth$cdsqrt ( VAR complex_square_root : [VOLATILE] $UOCTA; complex_number : $UOCTA); EXTERNAL; (* MTH$CGSQRT *) (* *) (* Complex Square Root *) (* *) (* The Complex Square Root routine *) (* returns the complex square root of a complex number (r,i). *) (* *) [ASYNCHRONOUS] PROCEDURE mth$cgsqrt ( VAR complex_square_root : [VOLATILE] $UOCTA; complex_number : $UOCTA); EXTERNAL; (* MTH$EXP *) (* *) (* Exponential *) (* *) (* The Exponential *) (* routine returns the exponential of the input value. *) (* *) [ASYNCHRONOUS] FUNCTION mth$exp ( floating_point_input_value : SINGLE) : SINGLE; EXTERNAL; (* MTH$DEXP *) (* *) (* Exponential *) (* *) (* The Exponential *) (* routine returns the exponential of the input value. *) (* *) [ASYNCHRONOUS] FUNCTION mth$dexp ( floating_point_input_value : D_FLOAT$$TYPE) : D_FLOAT$$TYPE; EXTERNAL; (* MTH$GEXP *) (* *) (* Exponential *) (* *) (* The Exponential *) (* routine returns the exponential of the input value. *) (* *) [ASYNCHRONOUS] FUNCTION mth$gexp ( floating_point_input_value : G_FLOAT$$TYPE) : G_FLOAT$$TYPE; EXTERNAL; (* MTH$HACOS *) (* *) (* Arc Cosine of Angle Expressed in Radians (H-floating Value) *) (* *) (* Given the cosine of an angle, the Arc Cosine of Angle Expressed in *) (* Radians (H-floating Value) routine returns that angle (in radians) in *) (* H-floating-point precision. *) (* *) [ASYNCHRONOUS] PROCEDURE mth$hacos ( VAR h_radians : [VOLATILE] QUADRUPLE; cosine : QUADRUPLE); EXTERNAL; (* MTH$HACOSD *) (* *) (* Arc Cosine of Angle Expressed in Degrees (H-Floating Value) *) (* *) (* Given the cosine of an angle, the Arc Cosine of Angle Expressed in *) (* Degrees (H-Floating Value) *) (* routine returns that *) (* angle (in degrees) as an H-floating value. *) (* *) [ASYNCHRONOUS] PROCEDURE mth$hacosd ( VAR h_degrees : [VOLATILE] QUADRUPLE; cosine : QUADRUPLE); EXTERNAL; (* MTH$HASIN *) (* *) (* Arc Sine in Radians (H-floating Value) *) (* *) (* Given the sine of an angle, the Arc Sine in Radians (H-floating Value) *) (* routine returns that angle *) (* (in radians) as an H-floating value. *) (* *) [ASYNCHRONOUS] PROCEDURE mth$hasin ( VAR h_radians : [VOLATILE] QUADRUPLE; sine : QUADRUPLE); EXTERNAL; (* MTH$HASIND *) (* *) (* Arc Sine in Degrees (H-Floating Value) *) (* *) (* Given the sine of an angle, the Arc Sine in Degrees (H-Floating Value) *) (* routine returns that angle *) (* (in degrees) as an H-floating value. *) (* *) [ASYNCHRONOUS] PROCEDURE mth$hasind ( VAR h_degrees : [VOLATILE] QUADRUPLE; sine : QUADRUPLE); EXTERNAL; (* MTH$HATAN *) (* *) (* Arc Tangent in Radians (H-floating Value) *) (* *) (* Given the tangent of an angle, the Arc Tangent in Radians (H-floating Value) *) (* routine returns that angle (in radians) *) (* as an H-floating value. *) (* *) [ASYNCHRONOUS] PROCEDURE mth$hatan ( VAR h_radians : [VOLATILE] QUADRUPLE; tangent : QUADRUPLE); EXTERNAL; (* MTH$HATAN2 *) (* *) (* Arc Tangent in Radians (H-floating Value) with Two Arguments *) (* *) (* Given cosine and cosine, the Arc Tangent in *) (* Radians (H-floating Value) with Two Arguments routine returns the *) (* angle (in radians) as an H-floating value whose tangent is given by *) (* the quotient of cosine and cosine, *) (* cosine/cosine. *) (* *) [ASYNCHRONOUS] PROCEDURE mth$hatan2 ( VAR h_radians : [VOLATILE] QUADRUPLE; sine : QUADRUPLE; cosine : QUADRUPLE); EXTERNAL; (* MTH$HATAND *) (* *) (* Arc Tangent in Degrees (H-floating Value) *) (* *) (* Given the tangent of an angle, the Arc Tangent in Degrees (H-floating Value) *) (* routine returns that angle (in degrees) *) (* as an H-floating point value. *) (* *) [ASYNCHRONOUS] PROCEDURE mth$hatand ( VAR h_degrees : [VOLATILE] QUADRUPLE; tangent : QUADRUPLE); EXTERNAL; (* MTH$HATANH *) (* *) (* Hyperbolic Arc Tangent (H-floating Value) *) (* *) (* Given the hyperbolic tangent of an angle, the Hyperbolic Arc *) (* Tangent (H-floating Value) *) (* routine returns *) (* the hyperbolic arc tangent (as an H-floating value) of that angle. *) (* *) [ASYNCHRONOUS] PROCEDURE mth$hatanh ( VAR h_atanh : [VOLATILE] QUADRUPLE; hyperbolic_tangent : QUADRUPLE); EXTERNAL; (* MTH$HCOS *) (* *) (* Cosine of Angle Expressed in Radians (H-floating Value) *) (* *) (* The Cosine of Angle Expressed in Radians *) (* (H-floating Value) *) (* routine returns the cosine of a given angle (in radians) as an *) (* H-floating value. *) (* *) [ASYNCHRONOUS] PROCEDURE mth$hcos ( VAR h_cosine : [VOLATILE] QUADRUPLE; angle_in_radians : QUADRUPLE); EXTERNAL; (* MTH$HCOSD *) (* *) (* Cosine of Angle Expressed in Degrees (H-floating Value) *) (* *) (* The Cosine of Angle Expressed in Degrees *) (* (H-floating Value) *) (* routine returns the cosine of a given angle (in degrees) as an *) (* H-floating value. *) (* *) [ASYNCHRONOUS] PROCEDURE mth$hcosd ( VAR h_cosine : [VOLATILE] QUADRUPLE; angle_in_degrees : QUADRUPLE); EXTERNAL; (* MTH$HCOSH *) (* *) (* Hyperbolic Cosine (H-floating Value) *) (* *) (* The Hyperbolic Cosine *) (* routine returns the hyperbolic cosine of *) (* the input value as an H-floating value. *) (* *) [ASYNCHRONOUS] PROCEDURE mth$hcosh ( VAR h_cosh : [VOLATILE] QUADRUPLE; floating_point_input_value : QUADRUPLE); EXTERNAL; (* MTH$HEXP *) (* *) (* Exponential (H-floating Value) *) (* *) (* The Exponential *) (* routine returns the exponential of the input value as an H-floating *) (* value. *) (* *) [ASYNCHRONOUS] PROCEDURE mth$hexp ( VAR h_exp : [VOLATILE] QUADRUPLE; floating_point_input_value : QUADRUPLE); EXTERNAL; (* MTH$HLOG10 *) (* *) (* Common Logarithm (H-floating Value) *) (* *) (* The Common Logarithm (H-floating Value) *) (* routine returns the common (base 10) logarithm of *) (* the input argument as an H-floating value. *) (* *) [ASYNCHRONOUS] PROCEDURE mth$hlog10 ( VAR h_log10 : [VOLATILE] QUADRUPLE; floating_point_input_value : QUADRUPLE); EXTERNAL; (* MTH$HLOG *) (* *) (* Natural Logarithm (H-floating Value) *) (* *) (* The Natural Logarithm (H-floating Value) *) (* routine returns the natural (base e) logarithm of *) (* the input argument as an H-floating value. *) (* *) [ASYNCHRONOUS] PROCEDURE mth$hlog ( VAR h_natlog : [VOLATILE] QUADRUPLE; floating_point_input_value : QUADRUPLE); EXTERNAL; (* MTH$HLOG2 *) (* *) (* Base 2 Logarithm (H-floating Value) *) (* *) (* The Base 2 Logarithm (H-floating Value) *) (* routine returns the base 2 logarithm of the input value *) (* specified by floating-point-input-value as an H-floating *) (* value. *) (* *) [ASYNCHRONOUS] PROCEDURE mth$hlog2 ( VAR h_log2 : [VOLATILE] QUADRUPLE; floating_point_input_value : QUADRUPLE); EXTERNAL; (* MTH$HSIN *) (* *) (* Sine of Angle Expressed in Radians (H-floating Value) *) (* *) (* The Sine of Angle Expressed in Radians (H-floating *) (* Value) *) (* routine returns the sine of a given angle (in radians) as an *) (* H-floating value. *) (* *) [ASYNCHRONOUS] PROCEDURE mth$hsin ( VAR h_sine : [VOLATILE] QUADRUPLE; angle_in_radians : QUADRUPLE); EXTERNAL; (* MTH$HSIND *) (* *) (* Sine of Angle Expressed in Degrees (H-floating Value) *) (* *) (* The Sine of Angle Expressed in Degrees (H-floating *) (* Value) *) (* routine returns the sine of a given angle (in degrees) as an *) (* H-floating value. *) (* *) [ASYNCHRONOUS] PROCEDURE mth$hsind ( VAR h_sine : [VOLATILE] QUADRUPLE; angle_in_degrees : QUADRUPLE); EXTERNAL; (* MTH$HSINH *) (* *) (* Hyperbolic Sine (H-floating Value) *) (* *) (* The Hyperbolic Sine (H-floating Value) *) (* routine returns the hyperbolic sine of the input *) (* value specified by floating-point-input-value as an *) (* H-floating value. *) (* *) [ASYNCHRONOUS] PROCEDURE mth$hsinh ( VAR h_sinh : [VOLATILE] QUADRUPLE; floating_point_input_value : QUADRUPLE); EXTERNAL; (* MTH$HSQRT *) (* *) (* Square Root (H-floating Value) *) (* *) (* The Square Root (H-floating Value) *) (* routine returns the square root of the input value *) (* floating-point-input-value as an H-floating value. *) (* *) [ASYNCHRONOUS] PROCEDURE mth$hsqrt ( VAR h_sqrt : [VOLATILE] QUADRUPLE; floating_point_input_value : QUADRUPLE); EXTERNAL; (* MTH$HTAN *) (* *) (* Tangent of Angle Expressed in Radians (H-floating Value) *) (* *) (* The Tangent of Angle Expressed in Radians *) (* (H-floating Value) *) (* routine returns the tangent of a given angle (in radians) as an *) (* H-floating value. *) (* *) [ASYNCHRONOUS] PROCEDURE mth$htan ( VAR h_tan : [VOLATILE] QUADRUPLE; angle_in_radians : QUADRUPLE); EXTERNAL; (* MTH$HTAND *) (* *) (* Tangent of Angle Expressed in Degrees (H-floating Value) *) (* *) (* The Tangent of Angle Expressed in Degrees *) (* (H-floating Value) *) (* routine returns the tangent of a given angle (in degrees) as an *) (* H-floating value. *) (* *) [ASYNCHRONOUS] PROCEDURE mth$htand ( VAR h_tan : [VOLATILE] QUADRUPLE; angle_in_degrees : QUADRUPLE); EXTERNAL; (* MTH$HTANH *) (* *) (* Compute the Hyperbolic Tangent (H-floating Value) *) (* *) (* The Compute the Hyperbolic Tangent (H-floating *) (* Value) *) (* routine returns the hyperbolic tangent *) (* of the input value as an H-floating value. *) (* *) [ASYNCHRONOUS] PROCEDURE mth$htanh ( VAR h_tanh : [VOLATILE] QUADRUPLE; floating_point_input_value : QUADRUPLE); EXTERNAL; (* MTH$HATAND2 *) (* *) (* Arc Tangent in Degrees (H-floating Value) with Two Arguments *) (* *) (* Given cosine and cosine, MTH$xHTAND2 returns *) (* the angle (in degrees) whose tangent *) (* is given by the quotient of cosine and cosine, *) (* cosine/cosine. *) (* *) [ASYNCHRONOUS] PROCEDURE mth$hatand2 ( VAR h_degrees : [VOLATILE] QUADRUPLE; sine : QUADRUPLE; cosine : QUADRUPLE); EXTERNAL; (* MTH$AIMAG *) (* *) (* Imaginary Part of a Complex Number *) (* *) (* The Imaginary Part of a Complex Number *) (* routine returns the imaginary part of a complex number. *) (* *) [ASYNCHRONOUS] FUNCTION mth$aimag ( complex_number : $UQUAD) : SINGLE; EXTERNAL; (* MTH$DIMAG *) (* *) (* Imaginary Part of a Complex Number *) (* *) (* The Imaginary Part of a Complex Number *) (* routine returns the imaginary part of a complex number. *) (* *) [ASYNCHRONOUS] FUNCTION mth$dimag ( complex_number : $UOCTA) : D_FLOAT$$TYPE; EXTERNAL; (* MTH$GIMAG *) (* *) (* Imaginary Part of a Complex Number *) (* *) (* The Imaginary Part of a Complex Number *) (* routine returns the imaginary part of a complex number. *) (* *) [ASYNCHRONOUS] FUNCTION mth$gimag ( complex_number : $UOCTA) : G_FLOAT$$TYPE; EXTERNAL; (* MTH$ALOG *) (* *) (* Natural Logarithm *) (* *) (* The Natural Logarithm *) (* routine returns the natural (base e) logarithm of *) (* the input argument. *) (* *) [ASYNCHRONOUS] FUNCTION mth$alog ( floating_point_input_value : SINGLE) : SINGLE; EXTERNAL; (* MTH$DLOG *) (* *) (* Natural Logarithm *) (* *) (* The Natural Logarithm *) (* routine returns the natural (base e) logarithm of *) (* the input argument. *) (* *) [ASYNCHRONOUS] FUNCTION mth$dlog ( floating_point_input_value : D_FLOAT$$TYPE) : D_FLOAT$$TYPE; EXTERNAL; (* MTH$GLOG *) (* *) (* Natural Logarithm *) (* *) (* The Natural Logarithm *) (* routine returns the natural (base e) logarithm of *) (* the input argument. *) (* *) [ASYNCHRONOUS] FUNCTION mth$glog ( floating_point_input_value : G_FLOAT$$TYPE) : G_FLOAT$$TYPE; EXTERNAL; (* MTH$ALOG10 *) (* *) (* Common Logarithm *) (* *) (* The Common Logarithm *) (* routine returns the common (base 10) logarithm of *) (* the input argument. *) (* *) [ASYNCHRONOUS] FUNCTION mth$alog10 ( floating_point_input_value : SINGLE) : SINGLE; EXTERNAL; (* MTH$DLOG10 *) (* *) (* Common Logarithm *) (* *) (* The Common Logarithm *) (* routine returns the common (base 10) logarithm of *) (* the input argument. *) (* *) [ASYNCHRONOUS] FUNCTION mth$dlog10 ( floating_point_input_value : D_FLOAT$$TYPE) : D_FLOAT$$TYPE; EXTERNAL; (* MTH$GLOG10 *) (* *) (* Common Logarithm *) (* *) (* The Common Logarithm *) (* routine returns the common (base 10) logarithm of *) (* the input argument. *) (* *) [ASYNCHRONOUS] FUNCTION mth$glog10 ( floating_point_input_value : G_FLOAT$$TYPE) : G_FLOAT$$TYPE; EXTERNAL; (* MTH$ALOG2 *) (* *) (* Base 2 Logarithm *) (* *) (* The Base 2 Logarithm *) (* routine returns the base 2 logarithm of the input value *) (* specified by floating-point-input-value. *) (* *) [ASYNCHRONOUS] FUNCTION mth$alog2 ( floating_point_input_value : SINGLE) : SINGLE; EXTERNAL; (* MTH$DLOG2 *) (* *) (* Base 2 Logarithm *) (* *) (* The Base 2 Logarithm *) (* routine returns the base 2 logarithm of the input value *) (* specified by floating-point-input-value. *) (* *) [ASYNCHRONOUS] FUNCTION mth$dlog2 ( floating_point_input_value : D_FLOAT$$TYPE) : D_FLOAT$$TYPE; EXTERNAL; (* MTH$GLOG2 *) (* *) (* Base 2 Logarithm *) (* *) (* The Base 2 Logarithm *) (* routine returns the base 2 logarithm of the input value *) (* specified by floating-point-input-value. *) (* *) [ASYNCHRONOUS] FUNCTION mth$glog2 ( floating_point_input_value : G_FLOAT$$TYPE) : G_FLOAT$$TYPE; EXTERNAL; (* MTH$RANDOM *) (* *) (* Random-Number Generator, Uniformly Distributed *) (* *) (* The Random-Number Generator, Uniformly Distributed *) (* routine is a general random-number generator. *) (* *) [ASYNCHRONOUS] FUNCTION mth$random ( VAR seed : [VOLATILE] UNSIGNED) : SINGLE; EXTERNAL; (* MTH$REAL *) (* *) (* Real Part of a Complex Number *) (* *) (* The Real Part of a Complex Number *) (* routine returns the real part of a complex number. *) (* *) [ASYNCHRONOUS] FUNCTION mth$real ( complex_number : $UQUAD) : SINGLE; EXTERNAL; (* MTH$DREAL *) (* *) (* Real Part of a Complex Number *) (* *) (* The Real Part of a Complex Number *) (* routine returns the real part of a complex number. *) (* *) [ASYNCHRONOUS] FUNCTION mth$dreal ( complex_number : $UOCTA) : D_FLOAT$$TYPE; EXTERNAL; (* MTH$GREAL *) (* *) (* Real Part of a Complex Number *) (* *) (* The Real Part of a Complex Number *) (* routine returns the real part of a complex number. *) (* *) [ASYNCHRONOUS] FUNCTION mth$greal ( complex_number : $UOCTA) : G_FLOAT$$TYPE; EXTERNAL; (* MTH$SIN *) (* *) (* Sine of Angle Expressed in Radians *) (* *) (* The Sine of Angle Expressed in Radians *) (* routine returns the sine of a given angle (in radians). *) (* *) [ASYNCHRONOUS] FUNCTION mth$sin ( angle_in_radians : SINGLE) : SINGLE; EXTERNAL; (* MTH$DSIN *) (* *) (* Sine of Angle Expressed in Radians *) (* *) (* The Sine of Angle Expressed in Radians *) (* routine returns the sine of a given angle (in radians). *) (* *) [ASYNCHRONOUS] FUNCTION mth$dsin ( angle_in_radians : D_FLOAT$$TYPE) : D_FLOAT$$TYPE; EXTERNAL; (* MTH$GSIN *) (* *) (* Sine of Angle Expressed in Radians *) (* *) (* The Sine of Angle Expressed in Radians *) (* routine returns the sine of a given angle (in radians). *) (* *) [ASYNCHRONOUS] FUNCTION mth$gsin ( angle_in_radians : G_FLOAT$$TYPE) : G_FLOAT$$TYPE; EXTERNAL; (* MTH$SIND *) (* *) (* Sine of Angle Expressed in Degrees *) (* *) (* The Sine of Angle Expressed in Degrees *) (* routine returns the sine of a given angle (in degrees). *) (* *) [ASYNCHRONOUS] FUNCTION mth$sind ( angle_in_degrees : SINGLE) : SINGLE; EXTERNAL; (* MTH$DSIND *) (* *) (* Sine of Angle Expressed in Degrees *) (* *) (* The Sine of Angle Expressed in Degrees *) (* routine returns the sine of a given angle (in degrees). *) (* *) [ASYNCHRONOUS] FUNCTION mth$dsind ( angle_in_degrees : D_FLOAT$$TYPE) : D_FLOAT$$TYPE; EXTERNAL; (* MTH$GSIND *) (* *) (* Sine of Angle Expressed in Degrees *) (* *) (* The Sine of Angle Expressed in Degrees *) (* routine returns the sine of a given angle (in degrees). *) (* *) [ASYNCHRONOUS] FUNCTION mth$gsind ( angle_in_degrees : G_FLOAT$$TYPE) : G_FLOAT$$TYPE; EXTERNAL; (* MTH$SINH *) (* *) (* Hyperbolic Sine *) (* *) (* The Hyperbolic Sine *) (* routine returns the hyperbolic sine of the input *) (* value specified by floating-point-input-value. *) (* *) [ASYNCHRONOUS] FUNCTION mth$sinh ( floating_point_input_value : SINGLE) : SINGLE; EXTERNAL; (* MTH$DSINH *) (* *) (* Hyperbolic Sine *) (* *) (* The Hyperbolic Sine *) (* routine returns the hyperbolic sine of the input *) (* value specified by floating-point-input-value. *) (* *) [ASYNCHRONOUS] FUNCTION mth$dsinh ( floating_point_input_value : D_FLOAT$$TYPE) : D_FLOAT$$TYPE; EXTERNAL; (* MTH$GSINH *) (* *) (* Hyperbolic Sine *) (* *) (* The Hyperbolic Sine *) (* routine returns the hyperbolic sine of the input *) (* value specified by floating-point-input-value. *) (* *) [ASYNCHRONOUS] FUNCTION mth$gsinh ( floating_point_input_value : G_FLOAT$$TYPE) : G_FLOAT$$TYPE; EXTERNAL; (* MTH$SINCOS *) (* *) (* Sine and Cosine of Angle Expressed in Radians *) (* *) (* The Sine and Cosine of Angle Expressed in Radians *) (* routine returns the sine *) (* and the cosine of a given angle (in radians). *) (* *) [ASYNCHRONOUS] PROCEDURE mth$sincos ( angle_in_radians : SINGLE; VAR sine : [VOLATILE] SINGLE; VAR cosine : [VOLATILE] SINGLE); EXTERNAL; (* MTH$DSINCOS *) (* *) (* Sine and Cosine of Angle Expressed in Radians *) (* *) (* The Sine and Cosine of Angle Expressed in Radians *) (* routine returns the sine *) (* and the cosine of a given angle (in radians). *) (* *) [ASYNCHRONOUS] PROCEDURE mth$dsincos ( angle_in_radians : D_FLOAT$$TYPE; VAR sine : [VOLATILE] D_FLOAT$$TYPE; VAR cosine : [VOLATILE] D_FLOAT$$TYPE); EXTERNAL; (* MTH$GSINCOS *) (* *) (* Sine and Cosine of Angle Expressed in Radians *) (* *) (* The Sine and Cosine of Angle Expressed in Radians *) (* routine returns the sine *) (* and the cosine of a given angle (in radians). *) (* *) [ASYNCHRONOUS] PROCEDURE mth$gsincos ( angle_in_radians : G_FLOAT$$TYPE; VAR sine : [VOLATILE] G_FLOAT$$TYPE; VAR cosine : [VOLATILE] G_FLOAT$$TYPE); EXTERNAL; (* MTH$HSINCOS *) (* *) (* Sine and Cosine of Angle Expressed in Radians *) (* *) (* The Sine and Cosine of Angle Expressed in Radians *) (* routine returns the sine *) (* and the cosine of a given angle (in radians). *) (* *) [ASYNCHRONOUS] PROCEDURE mth$hsincos ( angle_in_radians : QUADRUPLE; VAR sine : [VOLATILE] QUADRUPLE; VAR cosine : [VOLATILE] QUADRUPLE); EXTERNAL; (* MTH$SINCOSD *) (* *) (* Sine and Cosine of Angle Expressed in Degrees *) (* *) (* The Sine and Cosine of Angle Expressed in Degrees *) (* routine returns the sine and cosine of a given angle (in degrees). *) (* *) [ASYNCHRONOUS] PROCEDURE mth$sincosd ( angle_in_degrees : SINGLE; VAR sine : [VOLATILE] SINGLE; VAR cosine : [VOLATILE] SINGLE); EXTERNAL; (* MTH$DSINCOSD *) (* *) (* Sine and Cosine of Angle Expressed in Degrees *) (* *) (* The Sine and Cosine of Angle Expressed in Degrees *) (* routine returns the sine and cosine of a given angle (in degrees). *) (* *) [ASYNCHRONOUS] PROCEDURE mth$dsincosd ( angle_in_degrees : D_FLOAT$$TYPE; VAR sine : [VOLATILE] D_FLOAT$$TYPE; VAR cosine : [VOLATILE] D_FLOAT$$TYPE); EXTERNAL; (* MTH$GSINCOSD *) (* *) (* Sine and Cosine of Angle Expressed in Degrees *) (* *) (* The Sine and Cosine of Angle Expressed in Degrees *) (* routine returns the sine and cosine of a given angle (in degrees). *) (* *) [ASYNCHRONOUS] PROCEDURE mth$gsincosd ( angle_in_degrees : G_FLOAT$$TYPE; VAR sine : [VOLATILE] G_FLOAT$$TYPE; VAR cosine : [VOLATILE] G_FLOAT$$TYPE); EXTERNAL; (* MTH$HSINCOSD *) (* *) (* Sine and Cosine of Angle Expressed in Degrees *) (* *) (* The Sine and Cosine of Angle Expressed in Degrees *) (* routine returns the sine and cosine of a given angle (in degrees). *) (* *) [ASYNCHRONOUS] PROCEDURE mth$hsincosd ( angle_in_degrees : QUADRUPLE; VAR sine : [VOLATILE] QUADRUPLE; VAR cosine : [VOLATILE] QUADRUPLE); EXTERNAL; (* MTH$SQRT *) (* *) (* Square Root *) (* *) (* The Square Root *) (* routine returns the square root of the input value *) (* floating-point-input-value. *) (* *) [ASYNCHRONOUS] FUNCTION mth$sqrt ( floating_point_input_value : SINGLE) : SINGLE; EXTERNAL; (* MTH$DSQRT *) (* *) (* Square Root *) (* *) (* The Square Root *) (* routine returns the square root of the input value *) (* floating-point-input-value. *) (* *) [ASYNCHRONOUS] FUNCTION mth$dsqrt ( floating_point_input_value : D_FLOAT$$TYPE) : D_FLOAT$$TYPE; EXTERNAL; (* MTH$GSQRT *) (* *) (* Square Root *) (* *) (* The Square Root *) (* routine returns the square root of the input value *) (* floating-point-input-value. *) (* *) [ASYNCHRONOUS] FUNCTION mth$gsqrt ( floating_point_input_value : G_FLOAT$$TYPE) : G_FLOAT$$TYPE; EXTERNAL; (* MTH$TAN *) (* *) (* Tangent of Angle Expressed in Radians *) (* *) (* The Tangent of Angle Expressed in Radians *) (* routine returns the tangent of a given angle (in radians). *) (* *) [ASYNCHRONOUS] FUNCTION mth$tan ( angle_in_radians : SINGLE) : SINGLE; EXTERNAL; (* MTH$DTAN *) (* *) (* Tangent of Angle Expressed in Radians *) (* *) (* The Tangent of Angle Expressed in Radians *) (* routine returns the tangent of a given angle (in radians). *) (* *) [ASYNCHRONOUS] FUNCTION mth$dtan ( angle_in_radians : D_FLOAT$$TYPE) : D_FLOAT$$TYPE; EXTERNAL; (* MTH$GTAN *) (* *) (* Tangent of Angle Expressed in Radians *) (* *) (* The Tangent of Angle Expressed in Radians *) (* routine returns the tangent of a given angle (in radians). *) (* *) [ASYNCHRONOUS] FUNCTION mth$gtan ( angle_in_radians : G_FLOAT$$TYPE) : G_FLOAT$$TYPE; EXTERNAL; (* MTH$TAND *) (* *) (* Tangent of Angle Expressed in Degrees *) (* *) (* The Tangent of Angle Expressed in Degrees *) (* routine returns the tangent of a given angle (in degrees). *) (* *) [ASYNCHRONOUS] FUNCTION mth$tand ( angle_in_degrees : SINGLE) : SINGLE; EXTERNAL; (* MTH$DTAND *) (* *) (* Tangent of Angle Expressed in Degrees *) (* *) (* The Tangent of Angle Expressed in Degrees *) (* routine returns the tangent of a given angle (in degrees). *) (* *) [ASYNCHRONOUS] FUNCTION mth$dtand ( angle_in_degrees : D_FLOAT$$TYPE) : D_FLOAT$$TYPE; EXTERNAL; (* MTH$GTAND *) (* *) (* Tangent of Angle Expressed in Degrees *) (* *) (* The Tangent of Angle Expressed in Degrees *) (* routine returns the tangent of a given angle (in degrees). *) (* *) [ASYNCHRONOUS] FUNCTION mth$gtand ( angle_in_degrees : G_FLOAT$$TYPE) : G_FLOAT$$TYPE; EXTERNAL; (* MTH$TANH *) (* *) (* Compute the Hyperbolic Tangent *) (* *) (* The Compute the Hyperbolic Tangent *) (* routine returns the hyperbolic tangent *) (* of the input value. *) (* *) [ASYNCHRONOUS] FUNCTION mth$tanh ( floating_point_input_value : SINGLE) : SINGLE; EXTERNAL; (* MTH$DTANH *) (* *) (* Compute the Hyperbolic Tangent *) (* *) (* The Compute the Hyperbolic Tangent *) (* routine returns the hyperbolic tangent *) (* of the input value. *) (* *) [ASYNCHRONOUS] FUNCTION mth$dtanh ( floating_point_input_value : D_FLOAT$$TYPE) : D_FLOAT$$TYPE; EXTERNAL; (* MTH$GTANH *) (* *) (* Compute the Hyperbolic Tangent *) (* *) (* The Compute the Hyperbolic Tangent *) (* routine returns the hyperbolic tangent *) (* of the input value. *) (* *) [ASYNCHRONOUS] FUNCTION mth$gtanh ( floating_point_input_value : G_FLOAT$$TYPE) : G_FLOAT$$TYPE; EXTERNAL; (* MTH$UMAX *) (* *) (* Compute Unsigned Maximum *) (* *) (* The Compute Unsigned Maximum *) (* routine computes the unsigned longword maximum of n unsigned longword *) (* arguments, where n is greater than or equal to 1. *) (* *) [ASYNCHRONOUS] FUNCTION mth$umax ( argument : UNSIGNED; $p2 : [LIST] UNSIGNED) : INTEGER; EXTERNAL; (* MTH$UMIN *) (* *) (* Compute Unsigned Minimum *) (* *) (* The Compute Unsigned Minimum *) (* routine computes the unsigned longword minimum of n unsigned longword *) (* arguments, where n is greater than or *) (* equal to 1. *) (* *) [ASYNCHRONOUS] FUNCTION mth$umin ( argument : UNSIGNED; $p2 : [LIST] UNSIGNED) : INTEGER; EXTERNAL; (* MTH$ABS *) (* *) (* F_floating Absolute Value Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$abs ( F_FLOATING : SINGLE) : SINGLE; EXTERNAL; (* MTH$DABS *) (* *) (* D_floating Absolute Value Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$dabs ( D_FLOATING : D_FLOAT$$TYPE) : D_FLOAT$$TYPE; EXTERNAL; (* MTH$GABS *) (* *) (* G_floating Absolute Value Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$gabs ( G_FLOATING : G_FLOAT$$TYPE) : G_FLOAT$$TYPE; EXTERNAL; (* MTH$HABS *) (* *) (* H_floating Absolute Value Routine *) (* *) [ASYNCHRONOUS] PROCEDURE mth$habs ( VAR h_abs_val : [VOLATILE] QUADRUPLE; H_FLOATING : QUADRUPLE); EXTERNAL; (* MTH$IIABS *) (* *) (* Word Absolute Value Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$iiabs ( WORD : $WORD) : $WORD; EXTERNAL; (* MTH$JIABS *) (* *) (* Longword Absolute Value Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$jiabs ( LONGWORD : INTEGER) : INTEGER; EXTERNAL; (* MTH$IIAND *) (* *) (* Bitwise AND of Two Word Parameters Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$iiand ( word1 : $UWORD; word2 : $UWORD) : $UWORD; EXTERNAL; (* MTH$JIAND *) (* *) (* Bitwise AND of Two Longword Parameters Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$jiand ( longword1 : UNSIGNED; longword2 : UNSIGNED) : INTEGER; EXTERNAL; (* MTH$DBLE *) (* *) (* Convert F_floating to D_floating (Exact) Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$dble ( F_FLOATING : SINGLE) : D_FLOAT$$TYPE; EXTERNAL; (* MTH$GDBLE *) (* *) (* Convert F_floating to G_floating (Exact) Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$gdble ( F_FLOATING : SINGLE) : G_FLOAT$$TYPE; EXTERNAL; (* MTH$DIM *) (* *) (* Positive Difference of Two F_floating Parameters Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$dim ( f_floating1 : SINGLE; f_floating2 : SINGLE) : SINGLE; EXTERNAL; (* MTH$DDIM *) (* *) (* Positive Difference of Two D_floating Parameters Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$ddim ( d_floating1 : D_FLOAT$$TYPE; d_floating2 : D_FLOAT$$TYPE) : D_FLOAT$$TYPE; EXTERNAL; (* MTH$GDIM *) (* *) (* Positive Difference of Two D_floating Parameters Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$gdim ( g_floating1 : G_FLOAT$$TYPE; g_floating2 : G_FLOAT$$TYPE) : G_FLOAT$$TYPE; EXTERNAL; (* MTH$HDIM *) (* *) (* Positive Difference of Two D_floating Parameters Routine *) (* *) [ASYNCHRONOUS] PROCEDURE mth$hdim ( VAR H_FLOATING : [VOLATILE] QUADRUPLE; h_floating1 : QUADRUPLE; h_floating2 : QUADRUPLE); EXTERNAL; (* MTH$IIDIM *) (* *) (* Positive Difference of Two Word Parameters Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$iidim ( word1 : $WORD; word2 : $WORD) : $WORD; EXTERNAL; (* MTH$JIDIM *) (* *) (* Positive Difference of Two Longword Parameters Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$jidim ( longword1 : INTEGER; longword2 : INTEGER) : INTEGER; EXTERNAL; (* MTH$IIEOR *) (* *) (* Bitwise Exclusive OR of Two Word Parameters Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$iieor ( word1 : $UWORD; word2 : $UWORD) : $UWORD; EXTERNAL; (* MTH$JIEOR *) (* *) (* Bitwise Exclusive OR of Two Longword Parameters Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$jieor ( longword1 : UNSIGNED; longword2 : UNSIGNED) : INTEGER; EXTERNAL; (* MTH$IIFIX *) (* *) (* Convert F_floating to Word (Truncated) Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$iifix ( F_FLOATING : SINGLE) : $WORD; EXTERNAL; (* MTH$JIFIX *) (* *) (* Convert F_floating to Longword (Truncated) Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$jifix ( F_FLOATING : SINGLE) : INTEGER; EXTERNAL; (* MTH$FLOATI *) (* *) (* Convert Word to F_floating (Exact) Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$floati ( WORD : $WORD) : SINGLE; EXTERNAL; (* MTH$DFLOTI *) (* *) (* Convert Word to D_floating (Exact) Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$dfloti ( WORD : $WORD) : D_FLOAT$$TYPE; EXTERNAL; (* MTH$GFLOTI *) (* *) (* Convert Word to G_floating (Exact) Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$gfloti ( WORD : $WORD) : G_FLOAT$$TYPE; EXTERNAL; (* MTH$FLOATJ *) (* *) (* Convert Longword to F_floating (Exact) Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$floatj ( LONGWORD : INTEGER) : SINGLE; EXTERNAL; (* MTH$DFLOTJ *) (* *) (* Convert Longword to D_floating (Exact) Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$dflotj ( LONGWORD : INTEGER) : D_FLOAT$$TYPE; EXTERNAL; (* MTH$GFLOTJ *) (* *) (* Convert Longword to G_floating (Exact) Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$gflotj ( LONGWORD : INTEGER) : G_FLOAT$$TYPE; EXTERNAL; (* MTH$FLOOR *) (* *) (* Convert F_floating to Greatest F_floating Integer Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$floor ( F_FLOATING : SINGLE) : SINGLE; EXTERNAL; (* MTH$DFLOOR *) (* *) (* Convert D_floating to Greatest D_floating Integer Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$dfloor ( D_FLOATING : D_FLOAT$$TYPE) : D_FLOAT$$TYPE; EXTERNAL; (* MTH$GFLOOR *) (* *) (* Convert G_floating to Greatest G_floating Integer Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$gfloor ( G_FLOATING : G_FLOAT$$TYPE) : G_FLOAT$$TYPE; EXTERNAL; (* MTH$HFLOOR *) (* *) (* Convert H_floating to Greatest H_floating Integer Routine *) (* *) [ASYNCHRONOUS] PROCEDURE mth$hfloor ( VAR max_h_float : [VOLATILE] QUADRUPLE; H_FLOATING : QUADRUPLE); EXTERNAL; (* MTH$AINT *) (* *) (* Convert F_floating to Truncated F_floating Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$aint ( F_FLOATING : SINGLE) : SINGLE; EXTERNAL; (* MTH$DINT *) (* *) (* Convert D_floating to Truncated D_floating Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$dint ( D_FLOATING : D_FLOAT$$TYPE) : D_FLOAT$$TYPE; EXTERNAL; (* MTH$IIDINT *) (* *) (* Convert D_floating to Word (Truncated) Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$iidint ( D_FLOATING : D_FLOAT$$TYPE) : $WORD; EXTERNAL; (* MTH$JIDINT *) (* *) (* Convert D_floating to Longword (Truncated) Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$jidint ( D_FLOATING : D_FLOAT$$TYPE) : INTEGER; EXTERNAL; (* MTH$GINT *) (* *) (* Convert G_floating to G_floating (Truncated) Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$gint ( G_FLOATING : G_FLOAT$$TYPE) : G_FLOAT$$TYPE; EXTERNAL; (* MTH$IIGINT *) (* *) (* Convert G_floating to Word (Truncated) Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$iigint ( G_FLOATING : G_FLOAT$$TYPE) : $WORD; EXTERNAL; (* MTH$JIGINT *) (* *) (* Convert G_floating to Longword (Truncated) Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$jigint ( G_FLOATING : G_FLOAT$$TYPE) : INTEGER; EXTERNAL; (* MTH$HINT *) (* *) (* Convert H_floating to H_floating (Truncated) Routine *) (* *) [ASYNCHRONOUS] PROCEDURE mth$hint ( VAR trunc_h_flt : [VOLATILE] QUADRUPLE; H_FLOATING : QUADRUPLE); EXTERNAL; (* MTH$IIHINT *) (* *) (* Convert H_floating to Truncated Word Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$iihint ( H_FLOATING : QUADRUPLE) : $WORD; EXTERNAL; (* MTH$JIHINT *) (* *) (* Convert H_floating to Truncated Longword Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$jihint ( H_FLOATING : QUADRUPLE) : INTEGER; EXTERNAL; (* MTH$IINT *) (* *) (* Convert F_floating to Word (Truncated) Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$iint ( F_FLOATING : SINGLE) : $WORD; EXTERNAL; (* MTH$JINT *) (* *) (* Convert F_floating to Longword (Truncated) Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$jint ( F_FLOATING : SINGLE) : INTEGER; EXTERNAL; (* MTH$IIOR *) (* *) (* Bitwise Inclusive OR of Two Word Parameters Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$iior ( word1 : $UWORD; word2 : $UWORD) : $UWORD; EXTERNAL; (* MTH$JIOR *) (* *) (* Bitwise Inclusive OR of Two Longword Parameters Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$jior ( longword1 : UNSIGNED; longword2 : UNSIGNED) : INTEGER; EXTERNAL; (* MTH$AIMAX0 *) (* *) (* F_floating Maximum of N WordParameters Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$aimax0 ( WORD : $WORD; $p2 : [LIST] $WORD) : SINGLE; EXTERNAL; (* MTH$AJMAX0 *) (* *) (* F_floating Maximum of N Longword Parameters Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$ajmax0 ( LONGWORD : INTEGER; $p2 : [LIST] INTEGER) : SINGLE; EXTERNAL; (* MTH$IMAX0 *) (* *) (* Word Maximum of N Word Parameters Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$imax0 ( WORD : $WORD; $p2 : [LIST] $WORD) : $WORD; EXTERNAL; (* MTH$JMAX0 *) (* *) (* Longword Maximum of N Longword Parameters Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$jmax0 ( LONGWORD : INTEGER; $p2 : [LIST] INTEGER) : INTEGER; EXTERNAL; (* MTH$AMAX1 *) (* *) (* F_floating Maximum of N F_floating Parameters Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$amax1 ( F_FLOATING : SINGLE; $p2 : [LIST] SINGLE) : SINGLE; EXTERNAL; (* MTH$DMAX1 *) (* *) (* D_floating Maximum of N D_floating Parameters Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$dmax1 ( D_FLOATING : D_FLOAT$$TYPE; $p2 : [LIST] D_FLOAT$$TYPE) : D_FLOAT$$TYPE; EXTERNAL; (* MTH$GMAX1 *) (* *) (* G_floating Maximum of N G_floating Parameters Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$gmax1 ( G_FLOATING : G_FLOAT$$TYPE; $p2 : [LIST] G_FLOAT$$TYPE) : G_FLOAT$$TYPE; EXTERNAL; (* MTH$HMAX1 *) (* *) (* H_floating Maximum of N H_floating Parameters Routine *) (* *) [ASYNCHRONOUS] PROCEDURE mth$hmax1 ( VAR h_float_max : [VOLATILE] QUADRUPLE; H_FLOATING : QUADRUPLE; $p3 : [LIST] QUADRUPLE); EXTERNAL; (* MTH$IMAX1 *) (* *) (* Word Maximum of N F_floating Parameters Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$imax1 ( F_FLOATING : SINGLE; $p2 : [LIST] SINGLE) : $WORD; EXTERNAL; (* MTH$JMAX1 *) (* *) (* Longword Maximum of N F_floating Parameters Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$jmax1 ( F_FLOATING : SINGLE; $p2 : [LIST] SINGLE) : INTEGER; EXTERNAL; (* MTH$AIMIN0 *) (* *) (* F_floating Minimum of N Word Parameters Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$aimin0 ( WORD : $WORD; $p2 : [LIST] $WORD) : SINGLE; EXTERNAL; (* MTH$AJMIN0 *) (* *) (* F_floating Minimum of N Longword Parameters Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$ajmin0 ( LONGWORD : INTEGER; $p2 : [LIST] INTEGER) : SINGLE; EXTERNAL; (* MTH$IMIN0 *) (* *) (* Word Minimum of N Word Parameters Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$imin0 ( WORD : $WORD; $p2 : [LIST] $WORD) : $WORD; EXTERNAL; (* MTH$JMIN0 *) (* *) (* Longword Minimum of N Longword Parameters Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$jmin0 ( LONGWORD : INTEGER; $p2 : [LIST] INTEGER) : INTEGER; EXTERNAL; (* MTH$AMIN1 *) (* *) (* F_floating Minimum of N F_floating Parameters Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$amin1 ( F_FLOATING : SINGLE; $p2 : [LIST] SINGLE) : SINGLE; EXTERNAL; (* MTH$DMIN1 *) (* *) (* D_floating Minimum of N D_floating Parameters Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$dmin1 ( D_FLOATING : D_FLOAT$$TYPE; $p2 : [LIST] D_FLOAT$$TYPE) : D_FLOAT$$TYPE; EXTERNAL; (* MTH$GMIN1 *) (* *) (* G_floating Minimum of N G_floating Parameters Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$gmin1 ( G_FLOATING : G_FLOAT$$TYPE; $p2 : [LIST] G_FLOAT$$TYPE) : G_FLOAT$$TYPE; EXTERNAL; (* MTH$HMIN1 *) (* *) (* H_floating Minimum of N H_floating Parameters Routine *) (* *) [ASYNCHRONOUS] PROCEDURE mth$hmin1 ( VAR h_float_max : [VOLATILE] QUADRUPLE; H_FLOATING : QUADRUPLE; $p3 : [LIST] QUADRUPLE); EXTERNAL; (* MTH$IMIN1 *) (* *) (* Word Minimum of N F_floating Parameters Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$imin1 ( F_FLOATING : SINGLE; $p2 : [LIST] SINGLE) : $WORD; EXTERNAL; (* MTH$JMIN1 *) (* *) (* Longword Minimum of N F_floating Parameters Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$jmin1 ( F_FLOATING : SINGLE; $p2 : [LIST] SINGLE) : INTEGER; EXTERNAL; (* MTH$AMOD *) (* *) (* Remainder of Two F_floating Parameters Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$amod ( dividend : SINGLE; divisor : SINGLE) : SINGLE; EXTERNAL; (* MTH$DMOD *) (* *) (* Remainder of Two D_floating Parameters Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$dmod ( dividend : D_FLOAT$$TYPE; divisor : D_FLOAT$$TYPE) : D_FLOAT$$TYPE; EXTERNAL; (* MTH$GMOD *) (* *) (* Remainder of Two G_floating Parameters Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$gmod ( dividend : G_FLOAT$$TYPE; divisor : G_FLOAT$$TYPE) : G_FLOAT$$TYPE; EXTERNAL; (* MTH$HMOD *) (* *) (* Remainder of Two H_floating Parameters Routine *) (* *) [ASYNCHRONOUS] PROCEDURE mth$hmod ( VAR h_mod : [VOLATILE] QUADRUPLE; dividend : QUADRUPLE; divisor : QUADRUPLE); EXTERNAL; (* MTH$IMOD *) (* *) (* Remainder of Two Word Parameters Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$imod ( dividend : $WORD; divisor : $WORD) : $WORD; EXTERNAL; (* MTH$JMOD *) (* *) (* Remainder of Two Longword Parameters Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$jmod ( dividend : INTEGER; divisor : INTEGER) : INTEGER; EXTERNAL; (* MTH$ANINT *) (* *) (* Convert F_floating to Nearest F_floating Integer Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$anint ( F_FLOATING : SINGLE) : SINGLE; EXTERNAL; (* MTH$DNINT *) (* *) (* Convert D_floating to Nearest D_floating Integer Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$dnint ( D_FLOATING : D_FLOAT$$TYPE) : D_FLOAT$$TYPE; EXTERNAL; (* MTH$IIDNNT *) (* *) (* Convert D_floating to Word Integer Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$iidnnt ( D_FLOATING : D_FLOAT$$TYPE) : $WORD; EXTERNAL; (* MTH$JIDNNT *) (* *) (* Convert D_floating to Nearest Longword Integer Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$jidnnt ( D_FLOATING : D_FLOAT$$TYPE) : INTEGER; EXTERNAL; (* MTH$GNINT *) (* *) (* Convert G_floating to Nearest G_floating Integer Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$gnint ( G_FLOATING : G_FLOAT$$TYPE) : G_FLOAT$$TYPE; EXTERNAL; (* MTH$IIGNNT *) (* *) (* Convert T_floating to Nearest G_floating Integer Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$iignnt ( G_FLOATING : G_FLOAT$$TYPE) : $WORD; EXTERNAL; (* MTH$JIGNNT *) (* *) (* Convert G_floating to Nearest Longword Integer Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$jignnt ( G_FLOATING : G_FLOAT$$TYPE) : INTEGER; EXTERNAL; (* MTH$HNINT *) (* *) (* Convert H_floating to Nearest H_floating Integer Routine *) (* *) [ASYNCHRONOUS] PROCEDURE mth$hnint ( VAR nearst_h_flt : [VOLATILE] QUADRUPLE; H_FLOATING : QUADRUPLE); EXTERNAL; (* MTH$IIHNNT *) (* *) (* Convert H_floating to Nearest Word Integer Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$iihnnt ( H_FLOATING : QUADRUPLE) : $WORD; EXTERNAL; (* MTH$JIHNNT *) (* *) (* Convert H_floating to Nearest Longword Integer Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$jihnnt ( H_FLOATING : QUADRUPLE) : INTEGER; EXTERNAL; (* MTH$ININT *) (* *) (* Convert F_floating to Nearest Word Integer Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$inint ( F_FLOATING : SINGLE) : $WORD; EXTERNAL; (* MTH$JNINT *) (* *) (* Convert F_floating to Nearest Longword Integer Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$jnint ( F_FLOATING : SINGLE) : INTEGER; EXTERNAL; (* MTH$INOT *) (* *) (* Bitwise Complement of Word Parameter Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$inot ( WORD : $UWORD) : $UWORD; EXTERNAL; (* MTH$JNOT *) (* *) (* Bitwise Complement of Longword Parameter Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$jnot ( LONGWORD : UNSIGNED) : INTEGER; EXTERNAL; (* MTH$DPROD *) (* *) (* D_floating Product of Two F_floating Parameters Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$dprod ( f_floating1 : SINGLE; f_floating2 : SINGLE) : D_FLOAT$$TYPE; EXTERNAL; (* MTH$GPROD *) (* *) (* G_floating Product of Two F_floating Parameters Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$gprod ( f_floating1 : SINGLE; f_floating2 : SINGLE) : G_FLOAT$$TYPE; EXTERNAL; (* MTH$SGN *) (* *) (* F_floating Sign Function *) (* *) [ASYNCHRONOUS] FUNCTION mth$sgn ( %REF f_or_d_floating : [UNSAFE] ARRAY [$l1..$u1:INTEGER] OF $UBYTE) : INTEGER; EXTERNAL; (* MTH$IISHFT *) (* *) (* Bitwise Shift of Word Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$iishft ( WORD : $UWORD; shift_cnt : $WORD) : $UWORD; EXTERNAL; (* MTH$JISHFT *) (* *) (* Bitwise Shift of Longword Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$jishft ( LONGWORD : UNSIGNED; shift_cnt : INTEGER) : INTEGER; EXTERNAL; (* MTH$SIGN *) (* *) (* F_floating Transfer of Sign of Y to Sign of X Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$sign ( f_float_x : SINGLE; f_float_y : SINGLE) : SINGLE; EXTERNAL; (* MTH$DSIGN *) (* *) (* D_floating Transfer of Sign of Y to Sign of X Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$dsign ( d_float_x : D_FLOAT$$TYPE; d_float_y : D_FLOAT$$TYPE) : D_FLOAT$$TYPE; EXTERNAL; (* MTH$GSIGN *) (* *) (* G_floating Transfer of Sign of X to Sign of X Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$gsign ( g_float_x : G_FLOAT$$TYPE; g_float_y : G_FLOAT$$TYPE) : G_FLOAT$$TYPE; EXTERNAL; (* MTH$HSIGN *) (* *) (* H_floating Transfer of Sign of Y to Sign of X Routine *) (* *) [ASYNCHRONOUS] PROCEDURE mth$hsign ( VAR h_result : [VOLATILE] QUADRUPLE; h_float_x : QUADRUPLE; h_float_y : QUADRUPLE); EXTERNAL; (* MTH$IISIGN *) (* *) (* Word Transfer of Sign of Y to Sign of X Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$iisign ( word_x : $WORD; word_y : $WORD) : $WORD; EXTERNAL; (* MTH$JISIGN *) (* *) (* Longword Transfer of Sign of Y to Sign of X Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$jisign ( longwrd_x : INTEGER; longwrd_y : INTEGER) : INTEGER; EXTERNAL; (* MTH$SNGL *) (* *) (* Convert D_floating to F_floating (Rounded) Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$sngl ( D_FLOATING : D_FLOAT$$TYPE) : SINGLE; EXTERNAL; (* MTH$SNGLG *) (* *) (* Convert G_floating to F_floating (Rounded) Routine *) (* *) [ASYNCHRONOUS] FUNCTION mth$snglg ( G_FLOATING : G_FLOAT$$TYPE) : SINGLE; EXTERNAL; (* END. *) END.