From 355b6aa24b26fb25f5f266dc14c7cac1a87e255a Mon Sep 17 00:00:00 2001 From: Erik Schnetter Date: Mon, 2 Sep 2013 09:55:06 -0400 Subject: Correct SSE frexp() --- vec_sse_double1.h | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/vec_sse_double1.h b/vec_sse_double1.h index 75ee4c6..9b1e565 100644 --- a/vec_sse_double1.h +++ b/vec_sse_double1.h @@ -433,13 +433,14 @@ namespace vecmathlib { return to_double(_mm_min_sd(from_double(v), from_double(y.v))); } realvec fmod(realvec y) const { return std::fmod(v, y.v); } - realvec frexp(intvec_t* ir) const + realvec frexp(intvec_t* irv) const { int iri; realvec r = std::frexp(v, &iri); - if (isinf()) iri = std::numeric_limits::max(); - if (isnan()) iri = std::numeric_limits::min(); - ir->v = iri; + int_t ir = iri; + if (isinf()) ir = std::numeric_limits::max(); + if (isnan()) ir = std::numeric_limits::min(); + irv->v = ir; return r; } realvec hypot(realvec y) const { return MF::vml_hypot(*this, y); } -- cgit v1.1