diff options
Diffstat (limited to 'lib/Numeric/GSL/gsl-aux.c')
-rw-r--r-- | lib/Numeric/GSL/gsl-aux.c | 16 |
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 |