tUse va_args in cosadd/sinadd (Michael Teichgräber) - plan9port - [fork] Plan … | |
git clone git://src.adamsgaard.dk/plan9port | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit 2ad582ee88c98eefdd00d4f16704783f3db52d6f | |
parent dfbaaaa65076fe72b99e3953efc3baf1ec487332 | |
Author: rsc <devnull@localhost> | |
Date: Sat, 27 May 2006 18:35:26 +0000 | |
Use va_args in cosadd/sinadd (Michael Teichgräber) | |
Diffstat: | |
M src/cmd/astro/astro.h | 4 ++-- | |
M src/cmd/astro/cosadd.c | 24 +++++++++++++++++------- | |
2 files changed, 19 insertions(+), 9 deletions(-) | |
--- | |
diff --git a/src/cmd/astro/astro.h b/src/cmd/astro/astro.h | |
t@@ -152,7 +152,7 @@ extern void args(int, char**); | |
extern void bdtsetup(double, Tim*); | |
extern double betcross(double); | |
extern double convdate(Tim*); | |
-extern double cosadd(int, double, ...); | |
+extern double cosadd(int, ...); | |
extern double cosx(double, int, int, int, int, double); | |
extern double dist(Obj1*, Obj1*); | |
extern double dsrc(double, Tim*, int); | |
t@@ -201,7 +201,7 @@ extern void setime(double); | |
extern void setobj(Obj1*); | |
extern void setpt(Occ*, double); | |
extern void shad(void); | |
-extern double sinadd(int, double, ...); | |
+extern double sinadd(int, ...); | |
extern double sinx(double, int, int, int, int, double); | |
extern char* skip(int); | |
extern double solstice(int); | |
diff --git a/src/cmd/astro/cosadd.c b/src/cmd/astro/cosadd.c | |
t@@ -10,15 +10,20 @@ icosadd(double *fp, char *cp) | |
} | |
double | |
-cosadd(int n, double coef, ...) | |
+cosadd(int n, ...) | |
{ | |
- double *coefp; | |
+ double *coefp, coef[10]; | |
char *cp; | |
int i; | |
double sum, a1, a2; | |
- | |
+ va_list arg; | |
+ | |
sum = 0; | |
cp = cacp; | |
+ va_start(arg, n); | |
+ for(i=0; i<n; i++) | |
+ coef[i] = va_arg(arg, double); | |
+ va_end(arg); | |
loop: | |
a1 = *cafp++; | |
t@@ -28,7 +33,7 @@ loop: | |
} | |
a2 = *cafp++; | |
i = n; | |
- coefp = &coef; | |
+ coefp = coef; | |
do | |
a2 += *cp++ * *coefp++; | |
while(--i); | |
t@@ -37,15 +42,20 @@ loop: | |
} | |
double | |
-sinadd(int n, double coef, ...) | |
+sinadd(int n, ...) | |
{ | |
- double *coefp; | |
+ double *coefp, coef[10]; | |
char *cp; | |
int i; | |
double sum, a1, a2; | |
+ va_list arg; | |
sum = 0; | |
cp = cacp; | |
+ va_start(arg, n); | |
+ for(i=0; i<n; i++) | |
+ coef[i] = va_arg(arg, double); | |
+ va_end(arg); | |
loop: | |
a1 = *cafp++; | |
t@@ -55,7 +65,7 @@ loop: | |
} | |
a2 = *cafp++; | |
i = n; | |
- coefp = &coef; | |
+ coefp = coef; | |
do | |
a2 += *cp++ * *coefp++; | |
while(--i); |