Document revision date: 30 March 2001 | |
Previous | Contents | Index |
The Sine of Angle Expressed in Radians routine returns the sine of a given angle (in radians).
MTH$SIN angle-in-radiansMTH$DSIN angle-in-radians
MTH$GSIN angle-in-radians
Each of the above formats accepts one of the floating-point types as input.
Corresponding JSB Entry Points
MTH$SIN_R4MTH$DSIN_R7
MTH$GSIN_R7
Each of the above JSB entry points accepts one of the floating-point types as input.
OpenVMS usage: floating_point type: F_floating, D_floating, G_floating access: write only mechanism: by value
Sine of the angle specified by angle-in-radians. MTH$SIN returns an F-floating number. MTH$DSIN returns a D-floating number. MTH$GSIN returns a G-floating number.
angle-in-radians
OpenVMS usage: floating_point type: F_floating, D_floating, G_floating access: read only mechanism: by reference
Angle (in radians). The angle-in-radians argument is the address of a floating-point number that is this angle. For MTH$SIN, angle-in-radians specifies an F-floating number. For MTH$DSIN, angle-in-radians specifies a D-floating number. For MTH$GSIN, angle-in-radians specifies a G-floating number.
See MTH$xSINCOS for the algorithm used to compute this sine.See MTH$HSIN for the description of the H-floating point version of this routine.
SS$_ROPRAND Reserved operand. The MTH$xSIN routine encountered a floating-point reserved operand due to incorrect user input. A floating-point reserved operand is a floating-point datum with a sign bit of 1 and a biased exponent of 0. Floating-point reserved operands are reserved for future use by Compaq.
The Sine and Cosine of Angle Expressed in Radians routine returns the sine and cosine of a given angle (in radians).
MTH$SINCOS angle-in-radians ,sine ,cosineMTH$DSINCOS angle-in-radians ,sine ,cosine
MTH$GSINCOS angle-in-radians ,sine ,cosine
MTH$HSINCOS angle-in-radians ,sine ,cosine
Each of the above formats accepts one of the floating-point types as input.
Corresponding JSB Entry Points
MTH$SINCOS_R5MTH$DSINCOS_R7
MTH$GSINCOS_R7
MTH$HSINCOS_R7
Each of the above JSB entry points accepts one of the floating-point types as input.
MTH$SINCOS, MTH$DSINCOS, MTH$GSINCOS, and MTH$HSINCOS return the sine and cosine of the input angle by reference in the sine and cosine arguments.
angle-in-radians
OpenVMS usage: floating_point type: F_floating, D_floating, G_floating, H_floating access: read only mechanism: by reference
Angle (in radians) whose sine and cosine are to be returned. The angle-in-radians argument is the address of a floating-point number that is this angle. For MTH$SINCOS, angle-in-radians is an F-floating number. For MTH$DSINCOS, angle-in-radians is a D-floating number. For MTH$GSINCOS, angle-in-radians is a G-floating number. For MTH$HSINCOS, angle-in-radians is an H-floating number.sine
OpenVMS usage: floating_point type: F_floating, D_floating, G_floating, H_floating access: write only mechanism: by reference
Sine of the angle specified by angle-in-radians. The sine argument is the address of a floating-point number. MTH$SINCOS writes an F-floating number into sine. MTH$DSINCOS writes a D-floating number into sine. MTH$GSINCOS writes a G-floating number into sine. MTH$HSINCOS writes an H-floating number into sine.
cosine
OpenVMS usage: floating_point type: F_floating, D_floating, G_floating, H_floating access: write only mechanism: by reference
Cosine of the angle specified by angle-in-radians. The cosine argument is the address of a floating-point number. MTH$SINCOS writes an F-floating number into cosine. MTH$DSINCOS writes a D-floating number into cosine. MTH$GSINCOS writes a G-floating number into cosine. MTH$HSINCOS writes an H-floating number into cosine.
All routines with JSB entry points accept a single argument in R0:Rm, where m, which is defined below, is dependent on the data type.
Data Type m F_floating 0 D_floating 1 G_floating 1 H_floating 3 In general, Run-Time Library routines with JSB entry points return one value in R0:Rm. The MTHxSINCOS routine returns two values, however. The sine of angle-in-radians is returned in R0:Rm and the cosine of angle-in-radians is returned in (R<m+1>:R<2*m+1>).
In radians, the computation of zSIN(X) and zCOS(X) is based on the following polynomial expansions:
sin(X) = X - X3/(3!) + X5/(5!) - X7/(7!) ...
=X + X*P(X2), where
P(y) = y/(3!) + y2/(5!) + y3/(7!) ...
cos(X) = 1 - X2/(2!) + x4/(4!) -X6/(6!) ...
=Q(X2), where
Q(y) = (1 - y/(2!) + y2/(4!) + y3/(6!) ...)
- If |X| < 2 (-f/2),
then zSIN(X) = X and zCOS(X) = 1
(see the section on MTH$zCOSH for
the definition of f)- If 2-f/2 <= |X| < Pi sign/4,
then zSIN(X) = X + P(X2)
and zCOS(X) = Q(X2)
- If Pi sign/4 <= |X| and X > 0,
- Let J = INT(X/(Pi sign/4))
and I = J modulo 8- If J is even, let Y = X - J* (Pi sign/4)
otherwise, let Y = (J+1)* (Pi sign/4) - X
With the above definitions, the following table relates zSIN(X) and zCOS(X) to zSIN(Y) and zCOS(Y):
Value of I zSIN(X) zCOS(X) 0 zSIN(Y) zCOS(Y) 1 zCOS(Y) zSIN(Y) 2 zCOS(Y) -zSIN(Y) 3 zSIN(Y) -zCOS(Y) 4 -zSIN(Y) -zCOS(Y) 5 -zCOS(Y) -zSIN(Y) 6 -zCOS(Y) zSIN(Y) 7 -zSIN(Y) zCOS(Y) - zSIN(Y) and zCOS(Y) are computed as follows:
zSIN(Y) = Y + P(Y2),
and zCOS(Y) = Q(Y2)- If Pi sign/4 <= |X| and X < 0,
then zSIN(X) = -zSIN(|X|)
and zCOS(X) = zCOS(|X|)
SS$_ROPRAND Reserved operand. The MTH$xSINCOS routine encountered a floating-point reserved operand due to incorrect user input. A floating-point reserved operand is a floating-point datum with a sign bit of 1 and a biased exponent of 0. Floating-point reserved operands are reserved for future use by Compaq.
The Sine and Cosine of Angle Expressed in Degrees routine returns the sine and cosine of a given angle (in degrees).
MTH$SINCOSD angle-in-degrees ,sine ,cosineMTH$DSINCOSD angle-in-degrees ,sine ,cosine
MTH$GSINCOSD angle-in-degrees ,sine ,cosine
MTH$HSINCOSD angle-in-degrees ,sine ,cosine
Each of the above formats accepts one of the floating-point types as input.
Corresponding JSB Entry Points
MTH$SINCOSD_R5MTH$DSINCOSD_R7
MTH$GSINCOSD_R7
MTH$HSINCOSD_R7
Each of the above JSB entry points accepts one of the floating-point types as input.
MTH$SINCOSD, MTH$DSINCOSD, MTH$GSINCOSD, and MTH$HSINCOSD return the sine and cosine of the input angle by reference in the sine and cosine arguments.
angle-in-degrees
OpenVMS usage: floating_point type: F_floating, D_floating, G_floating, H_floating access: read only mechanism: by reference
Angle (in degrees) whose sine and cosine are returned by MTH$xSINCOSD. The angle-in-degrees argument is the address of a floating-point number that is this angle. For MTH$SINCOSD, angle-in-degrees is an F-floating number. For MTH$DSINCOSD, angle-in-degrees is a D-floating number. For MTH$GSINCOSD, angle-in-degrees is a G-floating number. For MTH$HSINCOSD, angle-in-degrees is an H-floating number.sine
OpenVMS usage: floating_point type: F_floating, D_floating, G_floating, H_floating access: write only mechanism: by reference
Sine of the angle specified by angle-in-degrees. The sine argument is the address of a floating-point number. MTH$SINCOSD writes an F-floating number into sine. MTH$DSINCOSD writes a D-floating number into sine. MTH$GSINCOSD writes a G-floating number into sine. MTH$HSINCOSD writes an H-floating number into sine.cosine
OpenVMS usage: floating_point type: F_floating, D_floating, G_floating, H_floating access: write only mechanism: by reference
Cosine of the angle specified by angle-in-degrees. The cosine argument is the address of a floating-point number. MTH$SINCOSD writes an F-floating number into cosine. MTH$DSINCOSD writes a D-floating number into cosine. MTH$GSINCOSD writes a G-floating number into cosine. MTH$HSINCOSD writes an H-floating number into cosine.
All routines with JSB entry points accept a single argument in R0:Rm, where m, which is defined below, is dependent on the data type.
Data Type m F_floating 0 D_floating 1 G_floating 1 H_floating 3 In general, Run-Time Library routines with JSB entry points return one value in R0:Rm. The MTH$xSINCOSD routine returns two values, however. The sine of angle-in-degrees is returned in R0:Rm and the cosine of angle-in-degrees is returned in (R<m+1>:R<2*m+1>).
In degrees, the computation of zSIND(X) and zCOSD(X) is based on the following polynomial expansions:
SIND(X) = (C*X) - (C*X)3/(3!) +
(C*X)5/(5!) - (C*X)7/(7!) ...
= X/26 + X*P(X2), where
P(y) = -y/(3!) + y2/(5!) - y3/(7!) ...
COSD(X) = 1 - (C*X)2/(2!) +
(C*X)4/(4!) - (C*X)6/(6!) ...
=Q(X2), where
Q(y) = 1 - y/(2!) + y2/(4!) - y3/(6!) ...
and C = Pi sign/180
- If |X| <(180/Pi sign)*2-2^e-1 and underflow signaling is enabled,
underflow is signaled for zSIND(X) and zSINCOSD(X).
(See MTH$zCOSH for the definition of e.)
otherwise:- If |X| < (180/Pi sign)*2(-f/2),
then zSIND(X)= (Pi sign/180)*X and zCOSD(X) = 1.
(See MTH$zCOSH for the definition of f.)- If (180/Pi sign)*2(-f/2) <= |X| < 45
then zSIND(X) = X/26 + P(X2)
and zCOSD(X) = Q(X2)- If 45 <= |X| and X > 0,
- Let J = INT(X/(45)) and
I = J modulo 8- If J is even, let Y = X - J*45 ;
otherwise, let Y = (J+1)*45 - X .
With the above definitions, the following table relates
zSIND(X) and zCOSD(X) to zSIND(Y) and zCOSD(Y):
Value of I zSIND(X) zCOSD(X) 0 zSIND(Y) zCOSD(Y) 1 zCOSD(Y) zSIND(Y) 2 zCOSD(Y) -zSIND(Y) 3 zSIND(Y) -zCOSD(Y) 4 -zSIND(Y) -zCOSD(Y) 5 -zCOSD(Y) -zSIND(Y) 6 -zCOSD(Y) zSIND(Y) 7 -zSIND(Y) zCOSD(Y) - zSIND(Y) and zCOSD(Y) are computed as follows:
zSIND(Y) = Y/26 + P(Y2)
zCOSD(Y) = Q(Y2)- If 45 <= |X| and X < 0,
then zSIND(X) = -zSIND(|X|)
and zCOSD(X) = zCOSD(|X|)
SS$_ROPRAND Reserved operand. The MTH$xSINCOSD routine encountered a floating-point reserved operand due to incorrect user input. A floating-point reserved operand is a floating-point datum with a sign bit of 1 and a biased exponent of 0. Floating-point reserved operands are reserved for future use by Compaq. MTH$_FLOUNDMAT Floating-point underflow in Math Library. The absolute value of the input angle is less than 180/Pi sign*2 -m (where m = 128 for F-floating and D-floating, 1,024 for G-floating, and 16,384 for H-floating).
The Sine of Angle Expressed in Degrees routine returns the sine of a given angle (in degrees).
MTH$SIND angle-in-degreesMTH$DSIND angle-in-degrees
MTH$GSIND angle-in-degrees
Each of the above formats accepts one of the floating-point types as input.
Corresponding JSB Entry Points
MTH$SIND_R4MTH$DSIND_R7
MTH$GSIND_R7
Each of the above JSB entry points accepts one of the floating-point types as input.
OpenVMS usage: floating_point type: F_floating, D_floating, G_floating access: write only mechanism: by value
The sine of the angle. MTH$SIND returns an F-floating number. MTH$DSIND returns a D-floating number. MTH$GSIND returns a G-floating number.
angle-in-degrees
OpenVMS usage: floating_point type: F_floating, D_floating, G_floating access: read only mechanism: by reference
Angle (in degrees). The angle-in-degrees argument is the address of a floating-point number that is this angle. For MTH$SIND, angle-in-degrees specifies an F-floating number. For MTH$DSIND, angle-in-degrees specifies a D-floating number. For MTH$GSIND, angle-in-degrees specifies a G-floating number.
See MTH$xSINCOSD for the algorithm that is used to compute the sine.See MTH$HSIND for the description of the H-floating point version of this routine.
SS$_ROPRAND Reserved operand. The MTH$xSIND routine encountered a floating-point reserved operand due to incorrect user input. A floating-point reserved operand is a floating-point datum with a sign bit of 1 and a biased exponent of 0. Floating-point reserved operands are reserved for future use by Compaq. MTH$_FLOUNDMAT Floating-point underflow in Math Library. The absolute value of the input angle is less than 180/Pi sign*2 -m (where m = 128 for F-floating and D-floating, and 1,024 for G-floating).
The Hyperbolic Sine routine returns the hyperbolic sine of the input value specified by floating-point-input-value.
MTH$SINH floating-point-input-valueMTH$DSINH floating-point-input-value
MTH$GSINH floating-point-input-value
Each of the above formats accepts one of the floating-point types as input.
OpenVMS usage: floating_point type: F_floating, D_floating, G_floating access: write only mechanism: by value
The hyperbolic sine of floating-point-input-value. MTH$SINH returns an F-floating number. MTH$DSINH returns a D-floating number. MTH$GSINH returns a G-floating number.
floating-point-input-value
OpenVMS usage: floating_point type: F_floating, D_floating, G_floating access: read only mechanism: by reference
The input value. The floating-point-input-value argument is the address of a floating-point number that is this value. For MTH$SINH, floating-point-input-value specifies an F-floating number. For MTH$DSINH, floating-point-input-value specifies a D-floating number. For MTH$GSINH, floating-point-input-value specifies a G-floating number.
Computation of the hyperbolic sine function depends on the magnitude of the input argument. The range of the function is partitioned using four data type dependent constants: a(z), b(z), and c(z). The subscript z indicates the data type. The constants depend on the number of exponent bits (e) and the number of fraction bits (f) associated with the data type (z).The values of e and f are:
z e f F 8 24 D 8 56 G 11 53 The values of the constants in terms of e and f are:
Variable Value a(z) 2 (-f/2) b(z) CEILING[ (f+1)/2*ln(2) ] c(z) (2 (e-1)*ln(2)) Based on the above definitions, zSINH(X) is computed as follows:
Value of X Value Returned |X| < a(z) X a(z) <= |X| < 1.0 zSINH(X) is computed using a
power series expansion in |X| 21.0 <= |X| < b(z) (zEXP(X) - zEXP(-X))/2 b(z) <= |X| < c(z) SIGN(X)*zEXP(|X|)/2 c(z) <= |X| Overflow occurs See MTH$HSINH for the description of the H-floating point version of this routine.
SS$_ROPRAND Reserved operand. The MTH$HTANH routine encountered a floating-point reserved operand (a floating-point datum with a sign bit of 1 and a biased exponent of 0) due to incorrect user input. Floating-point reserved operands are reserved for use by Compaq. MTH$_FLOOVEMAT Floating-point overflow in Math Library: the absolute value of floating-point-input-value is greater than yyy. LIB$SIGNAL copies the floating-point reserved operand to the mechanism argument vector CHF$L_MCH_SAVR0/R1. The result is the floating-point reserved operand unless you have written a condition handler to change CHF$L_MCH_SAVR0/R1. The values of yyy are approximately:
MTH$SINH---88.722
MTH$DSINH---88.722
MTH$GSINH---709.782
Previous | Next | Contents | Index |
privacy and legal statement | ||
6117PRO_013.HTML |