diff options
-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; } |