Commit | Line | Data |
---|---|---|
7af5ad59 PH |
1 | / |
2 | /EXPCI | |
3 | /COMPLEX RAISED TO INTEGER OR REAL | |
4 | / | |
5 | / VERSION 5A 4-26-77 MH | |
6 | / | |
7 | / | |
8 | /C=A+I*B | |
9 | /C^D=R^D*EXP(D*I*THETA) | |
10 | / | |
11 | /C IS IN #BASE | |
12 | /D IS IN AC | |
13 | / | |
14 | /ENTER IN STARTF,EXIT IN STARTE | |
15 | / | |
16 | SECT #EXPCI | |
17 | ENTRY #EXPCR | |
18 | DPCHK | |
19 | EXTERN SQRT | |
20 | EXTERN ATAN2 | |
21 | EXTERN SIN | |
22 | EXTERN COS | |
23 | EXTERN EXP3 | |
24 | EXTERN #CAC | |
25 | BASE 0 | |
26 | #EXPCR, JA . | |
27 | FSTA EXPON,0 | |
28 | FLDA 0 /REAL | |
29 | FSTA A,0 | |
30 | FLDA 3 /IMAG | |
31 | FSTA B,0 | |
32 | /SET DUMMY BASE PAGE | |
33 | BASE .+2000 | |
34 | / | |
35 | /R=SQRT(A*A+B*B) | |
36 | FLDA A | |
37 | FMUL A | |
38 | FSTA R | |
39 | FLDA B | |
40 | FMUL B | |
41 | FADDM R | |
42 | JSR SQRT | |
43 | JA .+4 | |
44 | JA R | |
45 | FSTA R | |
46 | /R^EXPON | |
47 | JSR EXP3 | |
48 | JA .+6 | |
49 | JA R | |
50 | JA EXPON | |
51 | FSTA R | |
52 | /THETA=ATAN(B/A) | |
53 | JSR ATAN2 | |
54 | JA .+6 | |
55 | JA B | |
56 | JA A | |
57 | /THETA*EXPON | |
58 | FMUL EXPON | |
59 | FSTA A /PHASE ANGLE | |
60 | /IMAG=R*SIN(PHASE) | |
61 | JSR SIN | |
62 | JA .+4 | |
63 | JA A | |
64 | FMUL R | |
65 | FSTA B | |
66 | /REAL=R*COS(PHASE) | |
67 | JSR COS | |
68 | JA .+4 | |
69 | JA A | |
70 | FMUL R | |
71 | FSTA A | |
72 | JGE .+3 /SKIP IF RESULT IS POS | |
73 | FNEG /IF NOT,MAKE IT POS | |
74 | FSUB LOWLIM /TEST FOR ZERO | |
75 | JGE .+5 /JUMP IF NOT 0 | |
76 | FCLA /ASSUME RESULT SHOULD BE 0 | |
77 | FSTA A /AND STORE A 0 | |
78 | /RETURN RESULT IN #CAC AND STARTE | |
79 | STARTE | |
80 | FLDA A | |
81 | FSTA #CAC | |
82 | JA #EXPCR | |
83 | A, F 0.0 | |
84 | B, F 0.0 | |
85 | EXPON, F 0.0 | |
86 | R, F 0.0 | |
87 | LOWLIM, F 0.000009 /NUMBERS >= 1.E-5 OK | |
88 | \f |