diff options
author | Tor Lillqvist <tml@collabora.com> | 2015-10-15 11:45:49 +0300 |
---|---|---|
committer | Tor Lillqvist <tml@collabora.com> | 2015-10-15 13:45:44 +0300 |
commit | 5e0e953f8f8fc5b27db8421ba15e33cfa664fb7a (patch) | |
tree | 1eef70a20aede23887ee5bcfc87c98f51733e7bd | |
parent | d67262fb540114b2c29d19cfd4075cc7faa20d74 (diff) |
tdf#94924: Return correct #DIV/0! error from AVERAGE in the OpenCL case
Change-Id: If7326fd1242d90ff92e62d141714960476198605
-rw-r--r-- | sc/source/core/opencl/formulagroupcl.cxx | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/sc/source/core/opencl/formulagroupcl.cxx b/sc/source/core/opencl/formulagroupcl.cxx index 7690035c1956..82ef58d81e1c 100644 --- a/sc/source/core/opencl/formulagroupcl.cxx +++ b/sc/source/core/opencl/formulagroupcl.cxx @@ -1779,6 +1779,10 @@ public: ss << ";\n"; } } + if (isAverage()) + ss << + "if (nCount==0)\n" + " return CreateDoubleError(errDivisionByZero);\n"; ss << "return tmp"; if (isAverage()) ss << "*pow((double)nCount,-1.0)"; @@ -2127,7 +2131,7 @@ public: ss << "fsum_count(" << lhs << "," << rhs << ", &nCount)"; return ss.str(); } - virtual std::string BinFuncName() const override { return "fsum"; } + virtual std::string BinFuncName() const override { return "average"; } virtual bool isAverage() const override { return true; } }; |