summaryrefslogtreecommitdiff
path: root/lib/Numeric/GSL
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Numeric/GSL')
-rw-r--r--lib/Numeric/GSL/gsl-aux.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/lib/Numeric/GSL/gsl-aux.c b/lib/Numeric/GSL/gsl-aux.c
index 3e9e2cb..33d7dab 100644
--- a/lib/Numeric/GSL/gsl-aux.c
+++ b/lib/Numeric/GSL/gsl-aux.c
@@ -157,7 +157,7 @@ int prodF(KFVEC(x),FVEC(r)) {
157 DEBUGMSG("prodF"); 157 DEBUGMSG("prodF");
158 REQUIRES(rn==1,BAD_SIZE); 158 REQUIRES(rn==1,BAD_SIZE);
159 int i; 159 int i;
160 float res = 0; 160 float res = 1;
161 for (i = 0; i < xn; i++) res *= xp[i]; 161 for (i = 0; i < xn; i++) res *= xp[i];
162 rp[0] = res; 162 rp[0] = res;
163 OK 163 OK
@@ -167,7 +167,7 @@ int prodR(KRVEC(x),RVEC(r)) {
167 DEBUGMSG("prodR"); 167 DEBUGMSG("prodR");
168 REQUIRES(rn==1,BAD_SIZE); 168 REQUIRES(rn==1,BAD_SIZE);
169 int i; 169 int i;
170 double res = 0; 170 double res = 1;
171 for (i = 0; i < xn; i++) res *= xp[i]; 171 for (i = 0; i < xn; i++) res *= xp[i];
172 rp[0] = res; 172 rp[0] = res;
173 OK 173 OK
@@ -178,11 +178,13 @@ int prodQ(KQVEC(x),QVEC(r)) {
178 REQUIRES(rn==1,BAD_SIZE); 178 REQUIRES(rn==1,BAD_SIZE);
179 int i; 179 int i;
180 gsl_complex_float res; 180 gsl_complex_float res;
181 res.dat[0] = 0; 181 float temp;
182 res.dat[0] = 1;
182 res.dat[1] = 0; 183 res.dat[1] = 0;
183 for (i = 0; i < xn; i++) { 184 for (i = 0; i < xn; i++) {
184 res.dat[0] = res.dat[0] * xp[i].dat[0] - res.dat[1] * xp[i].dat[1]; 185 temp = res.dat[0] * xp[i].dat[0] - res.dat[1] * xp[i].dat[1];
185 res.dat[1] = res.dat[0] * xp[i].dat[1] + res.dat[1] * xp[i].dat[0]; 186 res.dat[1] = res.dat[0] * xp[i].dat[1] + res.dat[1] * xp[i].dat[0];
187 res.dat[0] = temp;
186 } 188 }
187 rp[0] = res; 189 rp[0] = res;
188 OK 190 OK
@@ -193,11 +195,13 @@ int prodC(KCVEC(x),CVEC(r)) {
193 REQUIRES(rn==1,BAD_SIZE); 195 REQUIRES(rn==1,BAD_SIZE);
194 int i; 196 int i;
195 gsl_complex res; 197 gsl_complex res;
196 res.dat[0] = 0; 198 double temp;
199 res.dat[0] = 1;
197 res.dat[1] = 0; 200 res.dat[1] = 0;
198 for (i = 0; i < xn; i++) { 201 for (i = 0; i < xn; i++) {
199 res.dat[0] = res.dat[0] * xp[i].dat[0] - res.dat[1] * xp[i].dat[1]; 202 temp = res.dat[0] * xp[i].dat[0] - res.dat[1] * xp[i].dat[1];
200 res.dat[1] = res.dat[0] * xp[i].dat[1] + res.dat[1] * xp[i].dat[0]; 203 res.dat[1] = res.dat[0] * xp[i].dat[1] + res.dat[1] * xp[i].dat[0];
204 res.dat[0] = temp;
201 } 205 }
202 rp[0] = res; 206 rp[0] = res;
203 OK 207 OK