Blame


1 cd5bae78 2004-04-21 devnull #include "astro.h"
2 cd5bae78 2004-04-21 devnull
3 cd5bae78 2004-04-21 devnull
4 cd5bae78 2004-04-21 devnull void
5 cd5bae78 2004-04-21 devnull icosadd(double *fp, char *cp)
6 cd5bae78 2004-04-21 devnull {
7 cd5bae78 2004-04-21 devnull
8 cd5bae78 2004-04-21 devnull cafp = fp;
9 cd5bae78 2004-04-21 devnull cacp = cp;
10 cd5bae78 2004-04-21 devnull }
11 cd5bae78 2004-04-21 devnull
12 cd5bae78 2004-04-21 devnull double
13 cd5bae78 2004-04-21 devnull cosadd(int n, double coef, ...)
14 cd5bae78 2004-04-21 devnull {
15 cd5bae78 2004-04-21 devnull double *coefp;
16 cd5bae78 2004-04-21 devnull char *cp;
17 cd5bae78 2004-04-21 devnull int i;
18 cd5bae78 2004-04-21 devnull double sum, a1, a2;
19 cd5bae78 2004-04-21 devnull
20 cd5bae78 2004-04-21 devnull sum = 0;
21 cd5bae78 2004-04-21 devnull cp = cacp;
22 cd5bae78 2004-04-21 devnull
23 cd5bae78 2004-04-21 devnull loop:
24 cd5bae78 2004-04-21 devnull a1 = *cafp++;
25 cd5bae78 2004-04-21 devnull if(a1 == 0) {
26 cd5bae78 2004-04-21 devnull cacp = cp;
27 cd5bae78 2004-04-21 devnull return sum;
28 cd5bae78 2004-04-21 devnull }
29 cd5bae78 2004-04-21 devnull a2 = *cafp++;
30 cd5bae78 2004-04-21 devnull i = n;
31 cd5bae78 2004-04-21 devnull coefp = &coef;
32 cd5bae78 2004-04-21 devnull do
33 cd5bae78 2004-04-21 devnull a2 += *cp++ * *coefp++;
34 cd5bae78 2004-04-21 devnull while(--i);
35 cd5bae78 2004-04-21 devnull sum += a1 * cos(a2);
36 cd5bae78 2004-04-21 devnull goto loop;
37 cd5bae78 2004-04-21 devnull }
38 cd5bae78 2004-04-21 devnull
39 cd5bae78 2004-04-21 devnull double
40 cd5bae78 2004-04-21 devnull sinadd(int n, double coef, ...)
41 cd5bae78 2004-04-21 devnull {
42 cd5bae78 2004-04-21 devnull double *coefp;
43 cd5bae78 2004-04-21 devnull char *cp;
44 cd5bae78 2004-04-21 devnull int i;
45 cd5bae78 2004-04-21 devnull double sum, a1, a2;
46 cd5bae78 2004-04-21 devnull
47 cd5bae78 2004-04-21 devnull sum = 0;
48 cd5bae78 2004-04-21 devnull cp = cacp;
49 cd5bae78 2004-04-21 devnull
50 cd5bae78 2004-04-21 devnull loop:
51 cd5bae78 2004-04-21 devnull a1 = *cafp++;
52 cd5bae78 2004-04-21 devnull if(a1 == 0) {
53 cd5bae78 2004-04-21 devnull cacp = cp;
54 cd5bae78 2004-04-21 devnull return sum;
55 cd5bae78 2004-04-21 devnull }
56 cd5bae78 2004-04-21 devnull a2 = *cafp++;
57 cd5bae78 2004-04-21 devnull i = n;
58 cd5bae78 2004-04-21 devnull coefp = &coef;
59 cd5bae78 2004-04-21 devnull do
60 cd5bae78 2004-04-21 devnull a2 += *cp++ * *coefp++;
61 cd5bae78 2004-04-21 devnull while(--i);
62 cd5bae78 2004-04-21 devnull sum += a1 * sin(a2);
63 cd5bae78 2004-04-21 devnull goto loop;
64 cd5bae78 2004-04-21 devnull }