[Libreoffice-commits] core.git: Branch 'libreoffice-6-2' - 2 commits - sc/source

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Wed Dec 5 09:58:51 UTC 2018


 sc/source/core/opencl/op_statistical.cxx |   28 +++++++---------------------
 1 file changed, 7 insertions(+), 21 deletions(-)

New commits:
commit 94efbf7b1eb854cae5087239a2cd1555b752edf9
Author:     Luboš Luňák <l.lunak at collabora.com>
AuthorDate: Tue Nov 27 15:53:45 2018 +0100
Commit:     Luboš Luňák <l.lunak at collabora.com>
CommitDate: Wed Dec 5 10:58:41 2018 +0100

    make OpenCL SLOPE() handle problems more gracefully
    
    It's silly to just return NaN just because the function can't handle
    something. If nothing else, at least a proper error should be reported
    (or in this case, the fallback to the core function will take care of it).
    
    Change-Id: I9c971082f4c5c9836318cf63d15fa7c278274273
    Reviewed-on: https://gerrit.libreoffice.org/64244
    Tested-by: Jenkins
    Reviewed-by: Luboš Luňák <l.lunak at collabora.com>
    (cherry picked from commit c0c03aadb3ec25ca5c4c07f270164158b6667cc2)
    Reviewed-on: https://gerrit.libreoffice.org/64534

diff --git a/sc/source/core/opencl/op_statistical.cxx b/sc/source/core/opencl/op_statistical.cxx
index 5278ad2b31f7..d18b3ffceec1 100644
--- a/sc/source/core/opencl/op_statistical.cxx
+++ b/sc/source/core/opencl/op_statistical.cxx
@@ -2548,6 +2548,7 @@ void OpStDevP::GenSlidingWindowFunction(std::stringstream &ss,
 void OpSlope::GenSlidingWindowFunction(std::stringstream &ss,
             const std::string &sSymName, SubArguments &vSubArguments)
 {
+    CHECK_PARAMETER_COUNT(2,2);
     ss << "\ndouble " << sSymName;
     ss << "_" << BinFuncName() << "(";
     for (size_t i = 0; i < vSubArguments.size(); i++)
@@ -2567,12 +2568,6 @@ void OpSlope::GenSlidingWindowFunction(std::stringstream &ss,
     ss << "    double fCount = 0.0;\n";
     ss << "    double argX = 0.0;\n";
     ss << "    double argY = 0.0;\n";
-    if(vSubArguments.size() != 2)
-    {
-        ss << "    return NAN;\n";
-        ss << "}\n";
-        return ;
-    }
     FormulaToken *pCur = vSubArguments[1]->GetFormulaToken();
     FormulaToken *pCur1 = vSubArguments[0]->GetFormulaToken();
     assert(pCur);
@@ -2591,11 +2586,7 @@ void OpSlope::GenSlidingWindowFunction(std::stringstream &ss,
                pDVR1->GetArrayLength() ? pDVR->GetArrayLength():
                     pDVR1->GetArrayLength();
         if(nCurWindowSize != nCurWindowSize1)
-        {
-            ss << "    return NAN;\n";
-            ss << "}\n";
-            return ;
-        }
+            throw Unhandled(__FILE__, __LINE__);
         ss << "    for (int i = ";
         if ((!pDVR->IsStartFixed() && pDVR->IsEndFixed())
             &&(!pDVR1->IsStartFixed() && pDVR1->IsEndFixed()))
@@ -2626,13 +2617,7 @@ void OpSlope::GenSlidingWindowFunction(std::stringstream &ss,
         }
         else
         {
-            ss << "0; i < " << nCurWindowSize << "; i++)\n";
-            ss << "    {\n";
-            ss << "        break;\n";
-            ss << "    }";
-            ss << "    return NAN;\n";
-            ss << "}\n";
-            return ;
+            throw Unhandled(__FILE__, __LINE__);
         }
 
         ss << "        argX = ";
@@ -2701,8 +2686,7 @@ void OpSlope::GenSlidingWindowFunction(std::stringstream &ss,
     }
     else
     {
-        ss << "    return NAN;\n";
-        ss << "}\n";
+        throw Unhandled(__FILE__, __LINE__);
     }
 }
 void OpSTEYX::GenSlidingWindowFunction(std::stringstream &ss,
commit 4cf986afb3d7fb9f59b900f766c0273d4455b8e0
Author:     Luboš Luňák <l.lunak at collabora.com>
AuthorDate: Tue Nov 27 15:35:27 2018 +0100
Commit:     Luboš Luňák <l.lunak at collabora.com>
CommitDate: Wed Dec 5 10:58:26 2018 +0100

    check that OpenCL NORMDIST() takes a proper number of arguments
    
    Change-Id: I885a1b70556311f5a0862fec24a3596dbeada5d6
    Reviewed-on: https://gerrit.libreoffice.org/64243
    Tested-by: Jenkins
    Reviewed-by: Luboš Luňák <l.lunak at collabora.com>
    (cherry picked from commit 93054cd09f521499ed48848cb4d3563e629593f7)
    Reviewed-on: https://gerrit.libreoffice.org/64533

diff --git a/sc/source/core/opencl/op_statistical.cxx b/sc/source/core/opencl/op_statistical.cxx
index 374b383dcc4c..5278ad2b31f7 100644
--- a/sc/source/core/opencl/op_statistical.cxx
+++ b/sc/source/core/opencl/op_statistical.cxx
@@ -4016,6 +4016,7 @@ void OpNormdist::GenSlidingWindowFunction(
     std::stringstream &ss, const std::string &sSymName,
     SubArguments &vSubArguments)
 {
+    CHECK_PARAMETER_COUNT(3,4);
     ss << "\ndouble " << sSymName;
     ss << "_"<< BinFuncName() <<"(";
     for (size_t i = 0; i < vSubArguments.size(); i++)
@@ -4028,7 +4029,8 @@ void OpNormdist::GenSlidingWindowFunction(
     ss << "{\n";
     ss << "    double x,mue,sigma,c;\n";
     ss << "    int gid0=get_global_id(0);\n";
-    ss << "    double tmp0,tmp1,tmp2,tmp3;\n";
+    ss << "    double tmp0,tmp1,tmp2;\n";
+    ss << "    double tmp3 = 0;\n"; // optional argument
     ss <<"\n    ";
     for (size_t i = 0; i < vSubArguments.size(); i++)
     {


More information about the Libreoffice-commits mailing list