sc/source/core/tool/interpr3.cxx | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-)
New commits: commit e46df81b679cbb44235e891c81e8b30ae50b31d4 Author: Takeshi Abe <t...@fixedpoint.jp> Date: Mon Jun 11 13:18:31 2018 +0900 sc: A micro optimization of PERCENTILE() for interpolation cases As the leading std::nth_element() already partitions the vector, all we have to do is to pick the minimum in its latter part. Change-Id: I7767edc538819251c8fe9d26441ae57b06b2f865 Reviewed-on: https://gerrit.libreoffice.org/55575 Tested-by: Jenkins Reviewed-by: Eike Rathke <er...@redhat.com> diff --git a/sc/source/core/tool/interpr3.cxx b/sc/source/core/tool/interpr3.cxx index d85d1a561073..78756b0810e8 100644 --- a/sc/source/core/tool/interpr3.cxx +++ b/sc/source/core/tool/interpr3.cxx @@ -3406,8 +3406,7 @@ double ScInterpreter::GetPercentile( vector<double> & rArray, double fPercentile { OSL_ENSURE(nIndex < nSize-1, "GetPercentile: wrong index(2)"); double fVal = *iter; - iter = rArray.begin() + nIndex+1; - ::std::nth_element( rArray.begin(), iter, rArray.end()); + iter = ::std::min_element( rArray.begin() + nIndex + 1, rArray.end()); return fVal + fDiff * (*iter - fVal); } } @@ -3438,8 +3437,7 @@ double ScInterpreter::GetPercentileExclusive( vector<double> & rArray, double fP { OSL_ENSURE(nIndex < nSize1, "GetPercentile: wrong index(2)"); double fVal = *iter; - iter = rArray.begin() + nIndex + 1; - ::std::nth_element( rArray.begin(), iter, rArray.end()); + iter = ::std::min_element( rArray.begin() + nIndex + 1, rArray.end()); return fVal + fDiff * (*iter - fVal); } } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits