Commit | Line | Data |
---|---|---|
7af5ad59 PH |
1 | /SQUARE ROOT SUBROUTINE OS8 FORTRAN II LIBRARY LIBRARY |
2 | / | |
3 | / | |
4 | / | |
5 | / | |
6 | / | |
7 | / | |
8 | / | |
9 | / | |
10 | / | |
11 | /COPYRIGHT (C) 1974,1977 BY DIGITAL EQUIPMENT CORPORATION | |
12 | / | |
13 | / | |
14 | / | |
15 | / | |
16 | / | |
17 | / | |
18 | / | |
19 | / | |
20 | / | |
21 | / | |
22 | /THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT NOTICE | |
23 | /AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT | |
24 | /CORPORATION. DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY | |
25 | /FOR ANY ERRORS THAT MAY APPEAR IN THIS MANUAL. | |
26 | / | |
27 | /THE SOFTWARE DESCRIBED IN THIS DOCUMENT IS FURNISHED TO THE PURCHASER | |
28 | /UNDER A LICENSE FOR USE ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED | |
29 | /(WITH INCLUSION OF DIGITAL'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH | |
30 | /SYSTEM, EXCEPT AS MAY OTHERWISE BE PROVIDED IN WRITING BY DIGITAL. | |
31 | / | |
32 | /DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY FOR THE USE | |
33 | /OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY | |
34 | /DIGITAL. | |
35 | / | |
36 | / | |
37 | / | |
38 | / | |
39 | / | |
40 | / | |
41 | / | |
42 | / | |
43 | / | |
44 | / | |
45 | \f/ VERSION 4A | |
46 | / VERSION NUMBER IS AVAILABLE AT ENTRY POINTS | |
47 | ENTRY SQRT | |
48 | / | |
49 | / SQUARE ROOT ROUTINE | |
50 | / IF X0 IS AN APPROXIMATION FOR Y**(1/2) | |
51 | / THEN (X0+(Y/X0))/2 IS A BETTER APPROXIMATION | |
52 | / | |
53 | X0, BLOCK 3 | |
54 | Y, BLOCK 3 | |
55 | CNT, BLOCK 1 | |
56 | / | |
57 | / | |
58 | CPAGE 4 | |
59 | SQER, 6321 /"SQRT" ERROR FROM LOC XXXXX | |
60 | 2224 | |
61 | SQRT, BLOCK 1 | |
62 | 4 /ENTRY POINT | |
63 | TAD I SQRT | |
64 | DCA IN | |
65 | INC SQRT# | |
66 | TAD I SQRT | |
67 | DCA IN# | |
68 | ISZ SQRT# | |
69 | CALL 1,FAD | |
70 | IN, ARG 0 | |
71 | CALL 1,STO /Y=ARGUMENT | |
72 | ARG Y | |
73 | CALL 1,FAD | |
74 | ARG Y | |
75 | TAD ACH /IF Y NEGATIVE THEN ERROR | |
76 | SMA | |
77 | JMP POS | |
78 | CALL 1,ERROR | |
79 | ARG SQER | |
80 | CLA CLL CMA RAR | |
81 | AND ACH | |
82 | POS, SZA /IF Y=0 THEN ROOT=0 | |
83 | JMP NONZ | |
84 | RETRN SQRT | |
85 | NONZ, RAR CLL /FORM INITIAL APPROXIMATION | |
86 | TAD (1004 | |
87 | DCA ACH | |
88 | TAD ACM | |
89 | RAR | |
90 | DCA ACM | |
91 | TAD ACL | |
92 | RAR | |
93 | DCA ACL | |
94 | TAD ACH | |
95 | AND (4 | |
96 | SNA CLA | |
97 | TAD (2 | |
98 | TAD ACH | |
99 | DCA ACH | |
100 | TAD (-3 /DO 3 ITERATIONS | |
101 | DCA CNT | |
102 | INIT, CALL 1,STO | |
103 | ARG X0 | |
104 | CALL 1,FAD | |
105 | ARG Y | |
106 | CALL 1,FDV /Y/X0 | |
107 | ARG X0 | |
108 | CALL 1,FAD /(Y/X0)+X0 | |
109 | ARG X0 | |
110 | TAD ACH /((Y/X0)+X0)/2 | |
111 | TAD (7770 | |
112 | DCA ACH | |
113 | ISZ CNT | |
114 | JMP INIT | |
115 | RETRN SQRT | |
116 | END | |
117 | \f |