diff options
author | hongyu zhong <hongyu@multicorewareinc.com> | 2013-12-13 15:34:25 +0800 |
---|---|---|
committer | I-Jui (Ray) Sung <ray@multicorewareinc.com> | 2013-12-19 17:53:57 -0600 |
commit | 7469b5a3d2baaf3ee4b26cddc1e19384d95a0617 (patch) | |
tree | 79adace9e8cf24ced5aab445b54060cf39a25fc8 | |
parent | 85605e15e90308c94aa510e42c45db740464021a (diff) |
GPU Calc: Optimized BETADIST
AMLOEXT-364
Change-Id: Ife6444d998b250023fcbb5173bd371e4bc51947d
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.cxx | 6 | ||||
-rw-r--r-- | sc/source/core/opencl/opinlinefun_statistical.cxx | 6 |
2 files changed, 6 insertions, 6 deletions
diff --git a/sc/source/core/opencl/op_statistical.cxx b/sc/source/core/opencl/op_statistical.cxx index 3f2d43cf94aa..5d4241421433 100644 --- a/sc/source/core/opencl/op_statistical.cxx +++ b/sc/source/core/opencl/op_statistical.cxx @@ -8312,7 +8312,7 @@ void OpBetaDist::GenSlidingWindowFunction(std::stringstream &ss, " tmp = 1.0;\n" " return tmp;\n" " }\n" - " arg0 = (arg0-arg3)/fScale;\n" + " arg0 = (arg0-arg3)*pow(fScale,-1);\n" " tmp = GetBetaDist(arg0, arg1, arg2);\n" " }\n" " else\n" @@ -8322,8 +8322,8 @@ void OpBetaDist::GenSlidingWindowFunction(std::stringstream &ss, " tmp = 0.0;\n" " return tmp;\n" " }\n" - " arg0 = (arg0 - arg3)/fScale;\n" - " tmp = GetBetaDistPDF(arg0, arg1, arg2)/fScale;\n" + " arg0 = (arg0 - arg3)*pow(fScale,-1);\n" + " tmp = GetBetaDistPDF(arg0, arg1, arg2)*pow(fScale,-1);\n" " }\n"; ss << " return tmp;\n"; ss << "}\n"; diff --git a/sc/source/core/opencl/opinlinefun_statistical.cxx b/sc/source/core/opencl/opinlinefun_statistical.cxx index 9e9b8cc7c58c..71cfd3df01b7 100644 --- a/sc/source/core/opencl/opinlinefun_statistical.cxx +++ b/sc/source/core/opencl/opinlinefun_statistical.cxx @@ -207,7 +207,7 @@ std::string GetBetaDist = " if (fA > 1.0 && fB > 1.0 && fP < 0.97 && fQ < 0.97)\n" " fResult *= GetBetaDistPDF(fX,fA,fB)*fX*fY;\n" " else\n" -" fResult *= exp(fA*flnX + fB*flnY - GetLogBeta(fA,fB));\n" +" fResult *= pow(exp(1.0),(fA*flnX + fB*flnY - GetLogBeta(fA,fB)));\n" " if (bReflect)\n" " fResult = 0.5 - fResult + 0.5;\n" " if (fResult > 1.0)\n" @@ -359,7 +359,7 @@ std::string GetLogGamma = " if (fZ >= 1.0)\n" " return log(lcl_GetGammaHelper(fZ));\n" " if (fZ >= 0.5)\n" -" return log( lcl_GetGammaHelper(fZ+1) / fZ);\n" +" return log( lcl_GetGammaHelper(fZ+1) *pow(fZ,-1.0));\n" " return lcl_GetLogGammaHelper(fZ+2) - log(fZ+1) - log(fZ);\n" "}\n"; @@ -1076,7 +1076,7 @@ std::string GetBeta = " double fLanczos = lcl_getLanczosSum(fA)*lcl_getLanczosSum(fB)\n" " *pow(lcl_getLanczosSum(fAB),-1.0);\n" " fLanczos *= sqrt(((fAB + fgm)*pow(fA + fgm,-1.0))*pow(fB + fgm,-1.0));\n" -" return fLanczos * exp(-fA*log1p(fB*pow(fA + fgm,-1.0))\n" +" return fLanczos * pow(exp(1.0),(-fA*log1p(fB*pow(fA + fgm,-1.0)))" " - fB*log1p(fA*pow(fB + fgm,-1.0)) - fgm);\n" "}\n"; |