]>
Commit | Line | Data |
---|---|---|
fe4da5cc | 1 | * |
2 | * $Id$ | |
3 | * | |
4 | * $Log$ | |
5 | * Revision 1.1.1.1 1996/04/01 15:02:25 mclareni | |
6 | * Mathlib gen | |
7 | * | |
8 | * | |
9 | #include "gen/pilot.h" | |
10 | FUNCTION TRISUM(X,A,N,B,M,IOP) | |
11 | C | |
12 | C PURPOSE = TO COMPUTE THE SUM OF THE TRIGONOMETRIC SERIES | |
13 | C | |
14 | C TRISUM = A(1)/2+A(2)*COS(X)+....................A(N)*COS((N-1)*X) | |
15 | C +B(1)*SIN(X)+....................B(M)*SIN(M*X) | |
16 | C | |
17 | C PARAMETERS | |
18 | C | |
19 | C X = FUNCTION ARGUMENT | |
20 | C A = ARRAY DIMENSIONED A(N),KEEPING THE COEFFICIENTS FOR THE | |
21 | C COSINE TERMS | |
22 | C N = THE NUMBER OF COEFFICIENTS IN THE COSINE SERIE | |
23 | C B = ARRAY DIMENSIONED B(M),KEEPING THE COEFFICIENTS FOR THE | |
24 | C SINE TERMS | |
25 | C M = THE NUMBER OF COEFFICIENTS IN THE SINE SERIE | |
26 | C IOP = OPTION NUMBER , IOP = 1 , THE GENERAL CASE | |
27 | C IOP = 2 , THE EVEN CASE | |
28 | C IOP = 3 , THE ODD CASE | |
29 | C | |
30 | DIMENSION A(N) , B(M) | |
31 | C | |
32 | C*UL 1000 COF=2.*COS(X) | |
33 | COF=2.*COS(X) | |
34 | TRISUM=0. | |
35 | C | |
36 | IF (IOP.EQ.3) GO TO 1030 | |
37 | C | |
38 | C COMPUTE SUM OF COSINE TERMS | |
39 | C | |
40 | A2 =0. | |
41 | A1 =A2 | |
42 | A0 =A(N) | |
43 | C | |
44 | IF (N.EQ.1) GO TO 1020 | |
45 | C | |
46 | NN=N-1 | |
47 | DO 1010 K=1,NN | |
48 | A2=A1 | |
49 | A1=A0 | |
50 | INDEX=NN+1-K | |
51 | A0=A(INDEX)+COF*A1-A2 | |
52 | 1010 CONTINUE | |
53 | C | |
54 | 1020 TRISUM=.5*(A0-A2) | |
55 | C | |
56 | 1030 IF (IOP.EQ.2) RETURN | |
57 | C | |
58 | C COMPUTE SUM OF SINUS TERMS | |
59 | C | |
60 | A2 =0. | |
61 | A1 =A2 | |
62 | A0 =B(M) | |
63 | C | |
64 | IF (M.EQ.1) GO TO 1050 | |
65 | C | |
66 | NN=M-1 | |
67 | DO 1040 K=1,NN | |
68 | A2=A1 | |
69 | A1=A0 | |
70 | INDEX=NN+1-K | |
71 | A0=B(INDEX)+COF*A1-A2 | |
72 | 1040 CONTINUE | |
73 | C | |
74 | 1050 TRISUM=TRISUM+A0*SIN(X) | |
75 | C | |
76 | RETURN | |
77 | C | |
78 | END |