[Libreoffice-commits] core.git: sc/source
Takeshi Abe
tabe at fixedpoint.jp
Thu Jun 7 10:03:49 UTC 2018
sc/source/core/tool/interpr3.cxx | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
New commits:
commit d155f7af035e0fd818340c1affe41d3b6e97b502
Author: Takeshi Abe <tabe at fixedpoint.jp>
Date: Wed Jun 6 19:05:01 2018 +0900
sc: A putative micro optimization of MEDIAN() for even-length arrays
As the previous run of std::nth_element() already collects all of
smaller elements than the upper median into the first half of the
vector (which may also contain an equal one to the upper median,
that's OK), we can safely ignore the later half for finding the lower
median.
Change-Id: I64c97ee03b02ea363399077244dd99d0d10defcb
Reviewed-on: https://gerrit.libreoffice.org/55370
Tested-by: Jenkins <ci at libreoffice.org>
Reviewed-by: Eike Rathke <erack at redhat.com>
diff --git a/sc/source/core/tool/interpr3.cxx b/sc/source/core/tool/interpr3.cxx
index b52a62fd3d20..a43ec7835193 100644
--- a/sc/source/core/tool/interpr3.cxx
+++ b/sc/source/core/tool/interpr3.cxx
@@ -3374,8 +3374,7 @@ double ScInterpreter::GetMedian( vector<double> & rArray )
{
double fUp = *iMid;
// Lower median.
- iMid = rArray.begin() + nMid - 1;
- ::std::nth_element( rArray.begin(), iMid, rArray.end());
+ iMid = ::std::max_element( rArray.begin(), rArray.begin() + nMid);
return (fUp + *iMid) / 2;
}
}
More information about the Libreoffice-commits
mailing list