summaryrefslogtreecommitdiff
path: root/sc
diff options
context:
space:
mode:
authorshiming zhang <shiming@multicorewareinc.com>2013-12-31 13:09:33 +0800
committerI-Jui (Ray) Sung <ray@multicorewareinc.com>2013-12-31 17:36:58 -0600
commit8b3632fbeeb1dbb297dd2c5c3c7c676448a3a25a (patch)
tree49eadba1f7f44180a9283ad37fe17ac4233c58ff /sc
parentbea76c6b1a898b57abbe7da534f164a0ee5e974e (diff)
GPU Calc: Fix bug of support optional parameter for VARA
AMLOEXT-402 FIX Change-Id: I61b051324bb1421aafb048d3b76b50e182734076 Signed-off-by: haochen <haochen@multicorewareinc.com> Signed-off-by: Wei Wei <weiwei@multicorewareinc.com> Signed-off-by: I-Jui (Ray) Sung <ray@multicorewareinc.com> Signed-off-by: Wei Wei <weiwei@multicorewareinc.com>
Diffstat (limited to 'sc')
-rw-r--r--sc/source/core/opencl/op_statistical.cxx23
1 files changed, 23 insertions, 0 deletions
diff --git a/sc/source/core/opencl/op_statistical.cxx b/sc/source/core/opencl/op_statistical.cxx
index 334a40b27bdd..cb020ce6fce3 100644
--- a/sc/source/core/opencl/op_statistical.cxx
+++ b/sc/source/core/opencl/op_statistical.cxx
@@ -9754,6 +9754,7 @@ void OpVarA::GenSlidingWindowFunction(std::stringstream &ss,
{
const formula::DoubleVectorRefToken* pDVR =
dynamic_cast<const formula::DoubleVectorRefToken *>(pCur);
+ assert(pDVR);
if(pDVR->GetArrays()[0].mpNumericArray
&& pDVR->GetArrays()[0].mpStringArray)
isMixedDV = svDoubleVectorRefDoubleString;
@@ -9966,6 +9967,17 @@ void OpVarA::GenSlidingWindowFunction(std::stringstream &ss,
{
const formula::DoubleVectorRefToken* pDVR =
dynamic_cast<const formula::DoubleVectorRefToken *>(pCur);
+ assert(pDVR);
+ if(pDVR->GetArrays()[0].mpNumericArray
+ && pDVR->GetArrays()[0].mpStringArray)
+ isMixedDV = svDoubleVectorRefDoubleString;
+ else if(pDVR->GetArrays()[0].mpNumericArray)
+ isMixedDV = svDoubleVectorRefDouble;
+ else if(pDVR->GetArrays()[0].mpStringArray)
+ isMixedDV = svDoubleVectorRefString;
+ else
+ isMixedDV = svDoubleVectorRefNULL;
+
size_t nCurWindowSize = pDVR->GetRefRowSize();
ss << " for (int i = ";
if (!pDVR->IsStartFixed() && pDVR->IsEndFixed())
@@ -10064,6 +10076,16 @@ void OpVarA::GenSlidingWindowFunction(std::stringstream &ss,
const formula::SingleVectorRefToken* pSVR =
dynamic_cast< const formula::SingleVectorRefToken* >(pCur);
assert(pSVR);
+ if(pSVR->GetArray().mpNumericArray
+ && pSVR->GetArray().mpStringArray)
+ isMixedSV = svSingleVectorRefDoubleString;
+ else if(pSVR->GetArray().mpNumericArray)
+ isMixedSV = svSingleVectorRefDouble;
+ else if(pSVR->GetArray().mpStringArray)
+ isMixedSV = svSingleVectorRefString;
+ else
+ isMixedSV = svSingleVectorRefNULL;
+
if(isMixedSV == svSingleVectorRefDoubleString)
{
#ifdef ISNAN
@@ -10143,6 +10165,7 @@ void OpVarA::GenSlidingWindowFunction(std::stringstream &ss,
ss << " return vSum * pow(fCount - 1.0,-1.0);\n";
ss << "}\n";
}
+
void OpVarPA::GenSlidingWindowFunction(std::stringstream &ss,
const std::string sSymName, SubArguments &vSubArguments)
{