Kaydet (Commit) 7469b5a3 authored tarafından hongyu zhong's avatar hongyu zhong Kaydeden (comit) I-Jui (Ray) Sung

GPU Calc: Optimized BETADIST

AMLOEXT-364

Change-Id: Ife6444d998b250023fcbb5173bd371e4bc51947d
Signed-off-by: 's avatarhaochen <haochen@multicorewareinc.com>
Signed-off-by: 's avatarWei Wei <weiwei@multicorewareinc.com>
Signed-off-by: 's avatarI-Jui (Ray) Sung <ray@multicorewareinc.com>
üst 85605e15
...@@ -8312,7 +8312,7 @@ void OpBetaDist::GenSlidingWindowFunction(std::stringstream &ss, ...@@ -8312,7 +8312,7 @@ void OpBetaDist::GenSlidingWindowFunction(std::stringstream &ss,
" tmp = 1.0;\n" " tmp = 1.0;\n"
" return tmp;\n" " return tmp;\n"
" }\n" " }\n"
" arg0 = (arg0-arg3)/fScale;\n" " arg0 = (arg0-arg3)*pow(fScale,-1);\n"
" tmp = GetBetaDist(arg0, arg1, arg2);\n" " tmp = GetBetaDist(arg0, arg1, arg2);\n"
" }\n" " }\n"
" else\n" " else\n"
...@@ -8322,8 +8322,8 @@ void OpBetaDist::GenSlidingWindowFunction(std::stringstream &ss, ...@@ -8322,8 +8322,8 @@ void OpBetaDist::GenSlidingWindowFunction(std::stringstream &ss,
" tmp = 0.0;\n" " tmp = 0.0;\n"
" return tmp;\n" " return tmp;\n"
" }\n" " }\n"
" arg0 = (arg0 - arg3)/fScale;\n" " arg0 = (arg0 - arg3)*pow(fScale,-1);\n"
" tmp = GetBetaDistPDF(arg0, arg1, arg2)/fScale;\n" " tmp = GetBetaDistPDF(arg0, arg1, arg2)*pow(fScale,-1);\n"
" }\n"; " }\n";
ss << " return tmp;\n"; ss << " return tmp;\n";
ss << "}\n"; ss << "}\n";
......
...@@ -207,7 +207,7 @@ std::string GetBetaDist = ...@@ -207,7 +207,7 @@ std::string GetBetaDist =
" if (fA > 1.0 && fB > 1.0 && fP < 0.97 && fQ < 0.97)\n" " if (fA > 1.0 && fB > 1.0 && fP < 0.97 && fQ < 0.97)\n"
" fResult *= GetBetaDistPDF(fX,fA,fB)*fX*fY;\n" " fResult *= GetBetaDistPDF(fX,fA,fB)*fX*fY;\n"
" else\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" " if (bReflect)\n"
" fResult = 0.5 - fResult + 0.5;\n" " fResult = 0.5 - fResult + 0.5;\n"
" if (fResult > 1.0)\n" " if (fResult > 1.0)\n"
...@@ -359,7 +359,7 @@ std::string GetLogGamma = ...@@ -359,7 +359,7 @@ std::string GetLogGamma =
" if (fZ >= 1.0)\n" " if (fZ >= 1.0)\n"
" return log(lcl_GetGammaHelper(fZ));\n" " return log(lcl_GetGammaHelper(fZ));\n"
" if (fZ >= 0.5)\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" " return lcl_GetLogGammaHelper(fZ+2) - log(fZ+1) - log(fZ);\n"
"}\n"; "}\n";
...@@ -1076,7 +1076,7 @@ std::string GetBeta = ...@@ -1076,7 +1076,7 @@ std::string GetBeta =
" double fLanczos = lcl_getLanczosSum(fA)*lcl_getLanczosSum(fB)\n" " double fLanczos = lcl_getLanczosSum(fA)*lcl_getLanczosSum(fB)\n"
" *pow(lcl_getLanczosSum(fAB),-1.0);\n" " *pow(lcl_getLanczosSum(fAB),-1.0);\n"
" fLanczos *= sqrt(((fAB + fgm)*pow(fA + fgm,-1.0))*pow(fB + fgm,-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" " - fB*log1p(fA*pow(fB + fgm,-1.0)) - fgm);\n"
"}\n"; "}\n";
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment