Google
 

Trailing-Edge - PDP-10 Archives - decuslib20-01 - decus/20-0025/comp1.for
There is 1 other file named comp1.for in the archive. Click here to see a list.
00010	C   COMP1.SRC     OLS     52 LINES
00020	C
00030	      FUNCTION COMP1(IND,A)
00040	C	EVALUATION OF HYPERBOLIC SINE, COSINE, TANGENT,
00050	C	ARC SINE, AND ARC COSINE
00060		SERIES(C,D)=C+C*D*(.16666782+D*(.0749469671+D*
00070	     +(.045520633+D*(.0239940153+D*.0424173419))))
00080	      GO TO (10,20,30,40,40),IND
00090	10    X1=ABS(A)
00100	      IF (X1-.3465735903)  12, 12, 14
00110	12    X1=X1*X1
00120	      COMP1=A*(1.+X1*(.16666666667+X1*(.00833333333+
00130	     +X1*.198412698E-3)))
00140	      GO TO 60
00150	14    COMP1=(EXP(A)-EXP(-A))/2
00160	      GO TO 60
00170	20    COMP1=(EXP(A)+EXP(-A))/2
00180	      GO TO 60
00190	30    IF (A)  32, 31, 32
00200	31    COMP1=0.
00210	      GO TO 60
00220	32    B=ABS(A)
00230	      IF (B-10.4)  34, 34, 33
00240	33    COMP1=SIGN(1.,A)
00250	      GO TO 60
00260	34    IF (B-.5493061442)  36, 36, 35
00270	35    COMP1=SIGN(1.-2./(1.+EXP(2.*B)),A)
00280	      GO TO 60
00290	36    B=B*B
00300	      COMP1=A/(1.+B/(3.+B/(5.+B/(7.+B/9.0274307))))
00310	      GO TO 60
00320	   40 B=ABS(A)
00330	      IF (B-1.0)  42, 42, 41
00340	41    COMP1=SIGN(5.789604E+36,A)
00350	      GO TO 60
00360	42    E=B*B
00370	      IF (1.-B)  46, 43, 46
00380	43    IF (IND-4)  44, 44, 45
00390	44    COMP1=SIGN(1.5707963268,A)
00400	      GO TO 60
00410	45    COMP1=1.5707963268-SIGN(1.5707963268,A)
00420	      GO TO 60
00430	46    IF (.5-B)  48, 47, 47
00440	47    COMP1=SIGN(SERIES(B,E),A)
00450	      IF (IND-4)  60, 60, 50
00460	48    B=SQRT((1.-B)/2.)
00470	      E=B*B
00480	      COMP1=SIGN(1.5707963268-2.*SERIES(B,E),A)
00490	      IF (IND-4)  60, 60, 50
00500	50    COMP1=1.5707963268-COMP1
00510	60    RETURN
00520	      END