sc/source/core/tool/interpr3.cxx | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-)
New commits: commit 245b615400904274e264d5051baf63b3613db935 Author: Winfried Donkers <winfrieddonk...@libreoffice.org> Date: Mon Dec 12 16:09:04 2016 +0100 tdf#104581 handle constraints for NEGBINOMDIST in compliance with ODFF1.2. Also changed varaiable names for easier understanding of their meaning. Change-Id: I7c6f338c04898c7b07ebeb97fb331d51fa691f5b Reviewed-on: https://gerrit.libreoffice.org/31910 Reviewed-by: Eike Rathke <er...@redhat.com> Tested-by: Eike Rathke <er...@redhat.com> diff --git a/sc/source/core/tool/interpr3.cxx b/sc/source/core/tool/interpr3.cxx index d05c34d..1b6a367 100644 --- a/sc/source/core/tool/interpr3.cxx +++ b/sc/source/core/tool/interpr3.cxx @@ -1493,17 +1493,17 @@ void ScInterpreter::ScNegBinomDist() { if ( MustHaveParamCount( GetByte(), 3 ) ) { - double p = GetDouble(); // p - double r = GetDouble(); // r - double x = GetDouble(); // x - if (r < 0.0 || x < 0.0 || p < 0.0 || p > 1.0) + double p = GetDouble(); // probability + double s = ::rtl::math::approxFloor(GetDouble()); // No of successes + double f = ::rtl::math::approxFloor(GetDouble()); // No of failures + if ((f + s) <= 1.0 || p < 0.0 || p > 1.0) PushIllegalArgument(); else { double q = 1.0 - p; - double fFactor = pow(p,r); - for (double i = 0.0; i < x; i++) - fFactor *= (i+r)/(i+1.0)*q; + double fFactor = pow(p,s); + for (double i = 0.0; i < f; i++) + fFactor *= (i+s)/(i+1.0)*q; PushDouble(fFactor); } } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits