summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorshiming zhang <shiming@multicorewareinc.com>2013-12-31 14:01:08 +0800
committerI-Jui (Ray) Sung <ray@multicorewareinc.com>2013-12-31 17:20:06 -0600
commit2203cc63c494a9330cb4e078797b44310a684148 (patch)
tree3e53dbe15a31905f1f20d4033ee9de5270385830
parent93c0e1dfc64ffbf155cdc8fbd235d628444967b0 (diff)
GPU Calc: Fix bug of support optional parameter for STDEVA
AMLOEXT-404 FIX Change-Id: Idb3dae8907b753c8680de8673621102128e43ef0 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>
-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 ba1e20a86a4a..f26d7ba0f6e9 100644
--- a/sc/source/core/opencl/op_statistical.cxx
+++ b/sc/source/core/opencl/op_statistical.cxx
@@ -10640,6 +10640,7 @@ void OpStDevA::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;
@@ -10852,6 +10853,17 @@ void OpStDevA::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())
@@ -10950,6 +10962,16 @@ void OpStDevA::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
@@ -11029,6 +11051,7 @@ void OpStDevA::GenSlidingWindowFunction(std::stringstream &ss,
ss << " return sqrt(vSum * pow(fCount - 1.0,-1.0));\n";
ss << "}\n";
}
+
void OpStDevPA::GenSlidingWindowFunction(std::stringstream &ss,
const std::string sSymName, SubArguments &vSubArguments)
{