diff options
-rw-r--r-- | test.cc | 8 | ||||
-rw-r--r-- | vec_pseudo.h | 8 | ||||
-rw-r--r-- | vec_test.h | 8 |
3 files changed, 12 insertions, 12 deletions
@@ -1129,16 +1129,16 @@ struct vecmathlib_test { check_real<RV,RV>("*", local_mul, local_mul, x, y, R(0.0)); { - real_t rstd = 0.0; - for (int i=0; i<realvec_t::size; ++i) { + real_t rstd = x[0]; + for (int i=1; i<realvec_t::size; ++i) { rstd += x[i]; } real_t rvml = sum(x); check_real("sum", rstd, rvml, x, accuracy()); } { - real_t rstd = 1.0; - for (int i=0; i<realvec_t::size; ++i) { + real_t rstd = x[0]; + for (int i=1; i<realvec_t::size; ++i) { rstd *= x[i]; } real_t rvml = prod(x); diff --git a/vec_pseudo.h b/vec_pseudo.h index 0ee5a60..0af1c77 100644 --- a/vec_pseudo.h +++ b/vec_pseudo.h @@ -670,14 +670,14 @@ namespace vecmathlib { } real_t prod() const { - real_t res = R(1.0); - for (int d=0; d<size; ++d) res *= v[d]; + real_t res = v[0]; + for (int d=1; d<size; ++d) res *= v[d]; return res; } real_t sum() const { - real_t res = R(0.0); - for (int d=0; d<size; ++d) res += v[d]; + real_t res = v[0]; + for (int d=1; d<size; ++d) res += v[d]; return res; } @@ -619,14 +619,14 @@ namespace vecmathlib { } real_t prod() const { - real_t res = R(1.0); - for (int d=0; d<size; ++d) res *= v[d]; + real_t res = v[0]; + for (int d=1; d<size; ++d) res *= v[d]; return res; } real_t sum() const { - real_t res = R(0.0); - for (int d=0; d<size; ++d) res += v[d]; + real_t res = v[0]; + for (int d=1; d<size; ++d) res += v[d]; return res; } |