A large commit.
[pdp8.git] / sw / os8 / v3d / sources / fortran / all / asin.ra
CommitLineData
81e70d48
PH
1/
2/
3/ A S I N
4/ - - - -
5/
6/SUBROUTINE ASIN(X)
7/
8/ VERSION 5A 4-27-77 PT
9/
10 SECT ASIN
11 JA #ASIN
12ASINEQ, FLDA FPI2AS /RETURN PI OVER TWO.
13 FMUL ASIN8 /TIMES ARG.
14 JA ASNRTN
15 TEXT +ASIN +
16ASINXR, SETX XRASIN
17 SETB BPASIN
18BPASIN, FNOP
19 0
20 0
21XRASIN, F 0.0
22ASIN8, F 0.0
23ASIN7, F 0.0
24F1ASIN, F 1.
25FPI2AS, 1 /PI OVER 2
26 3110
27 3755
28 ORG 10*3+BPASIN
29 FNOP
30 JA ASINXR
31 0
32ASNRTN, JA .
33 BASE 0
34#ASIN, STARTD
35 FLDA 10*3
36 FSTA ASNRTN
37 FLDA 0
38 SETX XRASIN
39 SETB BPASIN
40 BASE BPASIN
41 LDX 1,1
42 FSTA BPASIN
43 FLDA% BPASIN,1 /ADDR OF X
44 FSTA BPASIN
45 STARTF
46 FLDA% BPASIN /GET X
47 FSTA ASIN8 /STORE ARG AWAY.
48 JGE .+3 /TAKE ABSOLUTE VALUE.
49 FNEG
50 FSUB F1ASIN /SEE IF >1
51 JLE ASINOK /CONTINUE PROCESS.
52 EXTERN #ARGER
53 TRAP4 #ARGER /TRAP OUT.
54 JA ASNRTN /RETURN.
55ASINOK, FLDA ASIN8 /X USES STRAIGHT TRIG RELATION.
56 FNEG
57 FMUL ASIN8 /-X^2
58 FADD F1ASIN /1.-X^2
59 JEQ ASINEQ /IF 0,FAC=PI OVER 2
60 FSTA ASIN7
61 EXTERN SQRT
62 JSR SQRT
63 JA .+4
64 JA ASIN7
65 FSTA ASIN7 /SQRT(1.-X^2)
66 FLDA ASIN8
67 FDIV ASIN7 /X/SQRT(1.X^2)
68 FSTA ASIN7
69 EXTERN ATAN
70 JSR ATAN /TAKE THE ARCTANGENT.
71 JA ASNRTN
72 JA ASIN7
73\f