COT
This function evaluates the cotangent.
Function Value Return
COT — Function value. (Output)
Required Arguments
X — Angle in radians for which the cotangent is desired. (Input)
FORTRAN 90 Interface
Generic: COT (X)
Specific: The specific interface names are COT, DCOT, CCOT, and ZCOT.
FORTRAN 77 Interface
Single: COT (X)
Double: The double precision function name is DCOT.
Complex: The complex name is CCOT.
Double Complex:  The double complex name is ZCOT.
Description
For real x, the magnitude of x must not be so large that most of the computer word contains the integer part of x. Likewise, x must not be too near an integer multiple of π, although x close to the origin causes no accuracy loss. Finally, x must not be so close to the origin that COT(X 1/x overflows.
For complex arguments, let z = x + iy. If sin z2 is very small, that is, if x is very close to a multiple of π and if y is small, then cot z is nearly singular and a fatal error condition is reported. If sin z2 is somewhat larger but still small, then the result will be less accurate than half precision. When 2x is so large that sin 2x cannot be evaluated accurately to even zero precision, the following situation results. If y < 3/2, then CCOT cannot be evaluated accurately to be better than one significant figure. If 3/2 ≤∣y < 1/2 ln ɛ/2, where ɛ = AMACH(4) is the machine precision, then CCOT can be evaluated by ignoring the real part of the argument; however, the answer will be less accurate than half precision. Finally, z must not be so small that cot z  1/z overflows.
Comments
1. Informational error for Real arguments
Type
Code
Description
3
2
Result of COT(X) is accurate to less than one‑half precision because ABS(X) is too large, or X is nearly a multiple of π.
2. Informational error for Complex arguments
Type
Code
Description
3
2
Result of CCOT(Z) is accurate to less than one‑half precision because the real part of Z is too near a multiple of π when the imaginary part of Z is zero, or because the absolute value of the real part is very large and the absolute value of the imaginary part is small.
3. Referencing COT(X) is not the same as computing 1.0/TAN(X) because the error conditions are quite different. For example, when X is near π/2, TAN(X) cannot be evaluated accurately and an error message must be issued. However, COT(X) can be evaluated accurately in the sense of absolute error.
Examples
Example 1
In this example, cot(0.3) is computed and printed.
 
USE COT_INT
USE UMACH_INT
 
IMPLICIT NONE
! Declare variables
INTEGER NOUT
REAL VALUE, X
! Compute
X = 0.3
VALUE = COT(X)
! Print the results
CALL UMACH (2, NOUT)
WRITE (NOUT,99999) X, VALUE
99999 FORMAT (' COT(', F6.3, ') = ', F6.3)
END
Output
 
COT( 0.300) = 3.233
Example 2
In this example, cot(1 + i) is computed and printed.
 
USE COT_INT
USE UMACH_INT
 
IMPLICIT NONE
! Declare variables
INTEGER NOUT
COMPLEX VALUE, Z
! Compute
Z = (1.0, 1.0)
VALUE = COT(Z)
! Print the results
CALL UMACH (2, NOUT)
WRITE (NOUT,99999) Z, VALUE
99999 FORMAT (' COT((', F6.3, ',', F6.3, ')) = (', &
F6.3, ',', F6.3, ')')
END
Output
 
COT(( 1.000, 1.000)) = ( 0.218,-0.868)