diff options
author | Luboš Luňák <l.lunak@collabora.com> | 2018-11-30 21:36:03 +0100 |
---|---|---|
committer | Luboš Luňák <l.lunak@collabora.com> | 2018-12-03 15:35:15 +0100 |
commit | f7e7a59f38682dcd1f916c63fe8e2a437ecb5cf1 (patch) | |
tree | e1b299bb4a4c098bd432c51cbca70db23237eb58 | |
parent | ac439c8c838a14db6ae02dff72dc8e8fffc333ef (diff) |
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@collabora.com>
-rw-r--r-- | officecfg/registry/schema/org/openoffice/Office/Calc.xcs | 2 | ||||
-rw-r--r-- | sc/source/core/tool/calcconfig.cxx | 5 |
2 files changed, 6 insertions, 1 deletions
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; } |