1 cd5bae78 2004-04-21 devnull #include "astro.h"
5 cd5bae78 2004-04-21 devnull icosadd(double *fp, char *cp)
8 cd5bae78 2004-04-21 devnull cafp = fp;
9 cd5bae78 2004-04-21 devnull cacp = cp;
13 cd5bae78 2004-04-21 devnull cosadd(int n, double coef, ...)
15 cd5bae78 2004-04-21 devnull double *coefp;
16 cd5bae78 2004-04-21 devnull char *cp;
18 cd5bae78 2004-04-21 devnull double sum, a1, a2;
21 cd5bae78 2004-04-21 devnull cp = cacp;
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;
29 cd5bae78 2004-04-21 devnull a2 = *cafp++;
31 cd5bae78 2004-04-21 devnull coefp = &coef;
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;
40 cd5bae78 2004-04-21 devnull sinadd(int n, double coef, ...)
42 cd5bae78 2004-04-21 devnull double *coefp;
43 cd5bae78 2004-04-21 devnull char *cp;
45 cd5bae78 2004-04-21 devnull double sum, a1, a2;
48 cd5bae78 2004-04-21 devnull cp = cacp;
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;
56 cd5bae78 2004-04-21 devnull a2 = *cafp++;
58 cd5bae78 2004-04-21 devnull coefp = &coef;
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;