[Libreoffice-commits] core.git: officecfg/registry sc/source

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Mon Dec 3 14:35:37 UTC 2018


 officecfg/registry/schema/org/openoffice/Office/Calc.xcs |    2 +-
 sc/source/core/tool/calcconfig.cxx                       |    5 +++++
 2 files changed, 6 insertions(+), 1 deletion(-)

New commits:
commit f7e7a59f38682dcd1f916c63fe8e2a437ecb5cf1
Author:     Luboš Luňák <l.lunak at collabora.com>
AuthorDate: Fri Nov 30 21:36:03 2018 +0100
Commit:     Luboš Luňák <l.lunak at collabora.com>
CommitDate: Mon Dec 3 15:35:15 2018 +0100

    add ^ (=power) and - (=unary minus) to OpenCLSubsetOpCodes
    
    Both of these are trivial and quite common mathematical operations.
    Unary minus is a bit complicated in that unary '-' is the same symbol
    as binary '-' and so there needs to be a hack to expand the '-'
    from the list to both of the opcodes ocSub and ocNegSub.
    
    Change-Id: I556e20e161c22dc89919afffbf904c1ef1d552ff
    Reviewed-on: https://gerrit.libreoffice.org/64362
    Tested-by: Jenkins
    Reviewed-by: Luboš Luňák <l.lunak at collabora.com>

diff --git a/officecfg/registry/schema/org/openoffice/Office/Calc.xcs b/officecfg/registry/schema/org/openoffice/Office/Calc.xcs
index 7951d4bf91cc..e5b3318ff701 100644
--- a/officecfg/registry/schema/org/openoffice/Office/Calc.xcs
+++ b/officecfg/registry/schema/org/openoffice/Office/Calc.xcs
@@ -1480,7 +1480,7 @@
             true, and a formula contains only these operators and
             functions, it might be calculated using OpenCL.</desc>
           </info>
-          <value>+;-;*;/;RAND;SIN;COS;TAN;ATAN;EXP;LN;SQRT;NORMSDIST;NORMSINV;ROUND;POWER;SUMPRODUCT;MIN;MAX;SUM;PRODUCT;AVERAGE;COUNT;VAR;NORMDIST;VLOOKUP;CORREL;COVAR;PEARSON;SLOPE;SUMIFS</value>
+          <value>+;-;*;/;^;RAND;SIN;COS;TAN;ATAN;EXP;LN;SQRT;NORMSDIST;NORMSINV;ROUND;POWER;SUMPRODUCT;MIN;MAX;SUM;PRODUCT;AVERAGE;COUNT;VAR;NORMDIST;VLOOKUP;CORREL;COVAR;PEARSON;SLOPE;SUMIFS</value>
         </prop>
         <prop oor:name="OpenCLAutoSelect" oor:type="xs:boolean" oor:nillable="false">
           <info>
diff --git a/sc/source/core/tool/calcconfig.cxx b/sc/source/core/tool/calcconfig.cxx
index 4525df730484..6bafa226e8b5 100644
--- a/sc/source/core/tool/calcconfig.cxx
+++ b/sc/source/core/tool/calcconfig.cxx
@@ -111,8 +111,10 @@ void ScCalcConfig::setOpenCLConfigToDefault()
     static OpCodeSet pDefaultOpenCLSubsetOpCodes(new std::set<OpCode>({
         ocAdd,
         ocSub,
+        ocNegSub,
         ocMul,
         ocDiv,
+        ocPow,
         ocRandom,
         ocSin,
         ocCos,
@@ -236,6 +238,9 @@ ScCalcConfig::OpCodeSet ScStringToOpCodeSet(const OUString& rOpCodes)
         }
         fromIndex = semicolon+1;
     }
+    // HACK: Both unary and binary minus have the same string but different opcodes.
+    if( result->find( ocSub ) != result->end())
+        result->insert( ocNegSub );
     return result;
 }
 


More information about the Libreoffice-commits mailing list