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:20:05 -0600
commit7c0f22ffd20417abde916ad08468b8230f349e8b (patch)
tree7d1d60ef7d5669fdd5435fe3a6b4715093423908 /sc
parent28759cea9eecd2be14028ebbd76d48031070e663 (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>
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 54ec99cf0d80..864146cd9265 100644
--- a/sc/source/core/opencl/op_statistical.cxx
+++ b/sc/source/core/opencl/op_statistical.cxx
@@ -9753,6 +9753,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;
@@ -9965,6 +9966,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())
@@ -10063,6 +10075,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
@@ -10142,6 +10164,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)
{