From 4ff587c1df025d9cd422fcb986c596c3c48ad76d Mon Sep 17 00:00:00 2001 From: Ian Bell Date: Thu, 11 Feb 2016 22:42:02 -0700 Subject: [PATCH] Fix bug in PhaseEnvelopeRoutines::evaluate; closes #971 --- src/Backends/Helmholtz/PhaseEnvelopeRoutines.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/Backends/Helmholtz/PhaseEnvelopeRoutines.cpp b/src/Backends/Helmholtz/PhaseEnvelopeRoutines.cpp index c51d276d..db4f5af5 100644 --- a/src/Backends/Helmholtz/PhaseEnvelopeRoutines.cpp +++ b/src/Backends/Helmholtz/PhaseEnvelopeRoutines.cpp @@ -360,7 +360,7 @@ void PhaseEnvelopeRoutines::refine(HelmholtzEOSMixtureBackend &HEOS) } double PhaseEnvelopeRoutines::evaluate(const PhaseEnvelopeData &env, parameters output, parameters iInput1, double value1, std::size_t &i) { - int _i = i; + int _i = static_cast(i); std::vector const *x, *y; switch (output){ @@ -388,9 +388,11 @@ double PhaseEnvelopeRoutines::evaluate(const PhaseEnvelopeData &env, parameters } if ( _i + 2 >= y->size() ){ _i--; } if ( _i + 1 >= y->size() ){ _i--; } - if ( _i - 1 < 0 ){ i++; } + if ( _i - 1 < 0 ){ _i++; } - return CubicInterp(*x, *y, _i - 1, _i, _i + 1, _i + 2, inval); + double outval = CubicInterp(*x, *y, _i - 1, _i, _i + 1, _i + 2, inval); + i = static_cast(_i); + return outval; } void PhaseEnvelopeRoutines::finalize(HelmholtzEOSMixtureBackend &HEOS) {