<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
{font-family:宋体;
panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:"\@宋体";
panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
margin-bottom:.0001pt;
font-size:12.0pt;
font-family:"Times New Roman",serif;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:purple;
text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
{mso-style-priority:34;
margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:.5in;
margin-bottom:.0001pt;
font-size:12.0pt;
font-family:"Times New Roman",serif;}
span.EmailStyle18
{mso-style-type:personal;
font-family:"Calibri",sans-serif;
color:#1F497D;}
span.EmailStyle19
{mso-style-type:personal;
font-family:"Calibri",sans-serif;
color:windowtext;}
span.EmailStyle20
{mso-style-type:personal;
font-family:"Calibri",sans-serif;
color:#1F497D;}
span.EmailStyle21
{mso-style-type:personal-reply;
font-family:"Calibri",sans-serif;
color:#1F497D;}
.MsoChpDefault
{mso-style-type:export-only;
font-size:10.0pt;}
@page WordSection1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">The format have some error, fix it by manual. Pushed, thanks for your contribution.<o:p></o:p></span></p>
<p class="MsoNormal"><a name="_MailEndCompose"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"><o:p> </o:p></span></a></p>
<div style="border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in 4.0pt">
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><a name="_____replyseparator"></a><b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">From:</span></b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"> Beignet [mailto:beignet-bounces@lists.freedesktop.org]
<b>On Behalf Of </b>Pan, Xiuli<br>
<b>Sent:</b> Wednesday, April 6, 2016 12:35<br>
<b>To:</b> Pan, Xiuli <xiuli.pan@intel.com>; Sean Lynch <seanl@literati.org><br>
<b>Cc:</b> beignet@lists.freedesktop.org<br>
<b>Subject:</b> Re: [Beignet] [PATCH] Prepend std namespace to isnan and isinf calls.<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">Ping for pushed for mater and OCL2.0 branch.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">Face same problem in Ubuntu 16.04.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"><o:p> </o:p></span></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">From:</span></b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"> Beignet [<a href="mailto:beignet-bounces@lists.freedesktop.org">mailto:beignet-bounces@lists.freedesktop.org</a>]
<b>On Behalf Of </b>Pan, Xiuli<br>
<b>Sent:</b> Tuesday, March 29, 2016 4:08 PM<br>
<b>To:</b> Sean Lynch <<a href="mailto:seanl@literati.org">seanl@literati.org</a>><br>
<b>Cc:</b> <a href="mailto:beignet@lists.freedesktop.org">beignet@lists.freedesktop.org</a><br>
<b>Subject:</b> Re: [Beignet] [PATCH] Prepend std namespace to isnan and isinf calls.<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">LGTM!<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">It seems may be the mathcalls.h have some small difference. Actually there is three types of isnan here:
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">One is the #define isnan in math.h included by cmath<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">Another is std::isnan in cmath<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">The last one that are missing here is from mathcalls.h
<o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent:.5in"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">#if defined __USE_MISC || defined __USE_XOPEN<o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent:.5in"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">/* Return nonzero if VALUE is not a number. */<o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent:.5in"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">__MATHDECL_1 (int,isnan,, (_Mdouble_ __value)) __attribute__ ((__const__));<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">Here in Ubuntu, we used this isnan in this case, but in general the std::isnan should be used.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">You can have a look at your mathcalls.h and __USE_MISC, __USE_XOPEN to figure out what is happening!<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">Thanks!<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">From:</span></b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"> Beignet [<a href="mailto:beignet-bounces@lists.freedesktop.org">mailto:beignet-bounces@lists.freedesktop.org</a>]
<b>On Behalf Of </b>Sean Lynch<br>
<b>Sent:</b> Tuesday, March 29, 2016 2:20 PM<br>
<b>To:</b> Pan, Xiuli <<a href="mailto:xiuli.pan@intel.com">xiuli.pan@intel.com</a>><br>
<b>Cc:</b> <a href="mailto:beignet@lists.freedesktop.org">beignet@lists.freedesktop.org</a><br>
<b>Subject:</b> [Beignet] [PATCH] Prepend std namespace to isnan and isinf calls.<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Signed-off-by: Sean Lynch <<a href="mailto:seanl@literati.org">seanl@literati.org</a>><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">---<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> utests/builtin_acos_asin.cpp | 12 ++++++------<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> utests/builtin_exp.cpp | 12 ++++++------<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> utests/builtin_pow.cpp | 12 ++++++------<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> utests/builtin_tgamma.cpp | 4 ++--<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> utests/compiler_half.cpp | 4 ++--<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> utests/compiler_math.cpp | 8 ++++----<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> utests/compiler_math_2op.cpp | 8 ++++----<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> utests/compiler_math_3op.cpp | 8 ++++----<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> utests/utest_generator.py | 20 ++++++++++----------<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> utests/utest_math_gen.py | 4 ++--<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> 10 files changed, 46 insertions(+), 46 deletions(-)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">diff --git a/utests/builtin_acos_asin.cpp b/utests/builtin_acos_asin.cpp<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">index 0187226..395460b 100644<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">--- a/utests/builtin_acos_asin.cpp<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">+++ b/utests/builtin_acos_asin.cpp<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">@@ -59,10 +59,10 @@ static void builtin_acos_asin(void)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> {<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> index_cur = k * max_function + i;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> #if udebug<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">- if (isinf(cpu_data[index_cur]) && !isinf(gpu_data[index_cur])){<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">+ if (std::isinf(cpu_data[index_cur]) && !std::isinf(gpu_data[index_cur])){<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> printf_c("%d/%d: %f -> gpu:%f cpu:%f\n", k, i, input_data[k], gpu_data[index_cur], cpu_data[index_cur]);<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> }<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">- else if (isnan(cpu_data[index_cur]) && !isnan(gpu_data[index_cur])){<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">+ else if (std::isnan(cpu_data[index_cur]) && !std::isnan(gpu_data[index_cur])){<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> printf_c("%d/%d: %f -> gpu:%f cpu:%f\n", k, i, input_data[k], gpu_data[index_cur], cpu_data[index_cur]);<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> }<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> else if(fabs(gpu_data[index_cur] - cpu_data[index_cur]) > 1e-3f){<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">@@ -71,10 +71,10 @@ static void builtin_acos_asin(void)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> else<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> printf("%d/%d: %f -> gpu:%f cpu:%f\n", k, i, input_data[k], gpu_data[index_cur], cpu_data[index_cur]);<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> #else<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">- if (isinf(cpu_data[index_cur]))<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">- OCL_ASSERT(isinf(gpu_data[index_cur]));<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">- else if (isnan(cpu_data[index_cur]))<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">- OCL_ASSERT(isnan(gpu_data[index_cur]));<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">+ if (std::isinf(cpu_data[index_cur]))<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">+ OCL_ASSERT(std::isinf(gpu_data[index_cur]));<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">+ else if (std::isnan(cpu_data[index_cur]))<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">+ OCL_ASSERT(std::isnan(gpu_data[index_cur]));<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> else<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> {<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> OCL_ASSERT(fabs(gpu_data[index_cur] - cpu_data[index_cur]) < 1e-3f);<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">diff --git a/utests/builtin_exp.cpp b/utests/builtin_exp.cpp<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">index d5288c8..406d223 100644<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">--- a/utests/builtin_exp.cpp<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">+++ b/utests/builtin_exp.cpp<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">@@ -71,10 +71,10 @@ static void builtin_exp(void)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> diff/gpu_data[index_cur], 3 * FLT_ULP);<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> #if udebug<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">- if (isinf(cpu_data[index_cur]) && isinf(gpu_data[index_cur])){<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">+ if (std::isinf(cpu_data[index_cur]) && std::isinf(gpu_data[index_cur])){<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> printf(log);<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> }<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">- else if (isnan(cpu_data[index_cur]) && isnan(gpu_data[index_cur])){<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">+ else if (std::isnan(cpu_data[index_cur]) && std::isnan(gpu_data[index_cur])){<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> printf(log);<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> }<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> else if( diff / cpu_data[index_cur] < 3 * FLT_ULP \<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">@@ -86,10 +86,10 @@ static void builtin_exp(void)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> else<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> printf_c(log);<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> #else<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">- if (isinf(cpu_data[index_cur]))<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">- OCL_ASSERTM(isinf(gpu_data[index_cur]), log);<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">- else if (isnan(cpu_data[index_cur]))<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">- OCL_ASSERTM(isnan(gpu_data[index_cur]), log);<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">+ if (std::isinf(cpu_data[index_cur]))<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">+ OCL_ASSERTM(std::isinf(gpu_data[index_cur]), log);<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">+ else if (std::isnan(cpu_data[index_cur]))<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">+ OCL_ASSERTM(std::isnan(gpu_data[index_cur]), log);<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> else if ( gpu_data[index_cur] > FLT_ULP || cpu_data[index_cur] > FLT_ULP)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> OCL_ASSERTM(fabs( diff / cpu_data[index_cur]) < 3 * FLT_ULP, log);<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> else<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">diff --git a/utests/builtin_pow.cpp b/utests/builtin_pow.cpp<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">index f586448..21fa895 100644<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">--- a/utests/builtin_pow.cpp<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">+++ b/utests/builtin_pow.cpp<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">@@ -74,8 +74,8 @@ static void builtin_pow(void)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> {<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> index_cur = k * max_function + i;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> #if udebug<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">- if ( (isinf(cpu_data[index_cur]) && !isinf(gpu_data[index_cur])) ||<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">- (isnan(cpu_data[index_cur]) && !isnan(gpu_data[index_cur])) ||<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">+ if ( (std::isinf(cpu_data[index_cur]) && !std::isinf(gpu_data[index_cur])) ||<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">+ (std::isnan(cpu_data[index_cur]) && !std::isnan(gpu_data[index_cur])) ||<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> (fabs(gpu_data[index_cur] - cpu_data[index_cur]) > cl_FLT_ULP(cpu_data[index_cur]) * ULPSIZE_FACTOR<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> && (denormals_supported || gpu_data[index_cur]!=0 || std::fpclassify(cpu_data[index_cur])!=FP_SUBNORMAL) ) )<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">@@ -85,10 +85,10 @@ static void builtin_pow(void)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> else<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> printf("%d/%d: x:%f, y:%f -> gpu:%f cpu:%f\n", k, i, input_data1[k], input_data2[k], gpu_data[index_cur], cpu_data[index_cur]);<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> #else<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">- if (isinf(cpu_data[index_cur]))<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">- OCL_ASSERT(isinf(gpu_data[index_cur]));<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">- else if (isnan(cpu_data[index_cur]))<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">- OCL_ASSERT(isnan(gpu_data[index_cur]));<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">+ if (std::isinf(cpu_data[index_cur]))<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">+ OCL_ASSERT(std::isinf(gpu_data[index_cur]));<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">+ else if (std::isnan(cpu_data[index_cur]))<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">+ OCL_ASSERT(std::isnan(gpu_data[index_cur]));<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> else<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> {<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> OCL_ASSERT((fabs(gpu_data[index_cur] - cpu_data[index_cur]) < cl_FLT_ULP(cpu_data[index_cur]) * ULPSIZE_FACTOR) ||<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">diff --git a/utests/builtin_tgamma.cpp b/utests/builtin_tgamma.cpp<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">index db9ab3c..204f49e 100644<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">--- a/utests/builtin_tgamma.cpp<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">+++ b/utests/builtin_tgamma.cpp<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">@@ -43,8 +43,8 @@ void builtin_tgamma(void)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> max_ulp = fabsf(cpu - dst[i]) / cl_FLT_ULP(cpu);<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> max_ulp_at = src[i];<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> }<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">- if (isinf(cpu)) {<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">- OCL_ASSERT(isinf(dst[i]));<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">+ if (std::isinf(cpu)) {<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">+ OCL_ASSERT(std::isinf(dst[i]));<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> } else if (fabsf(cpu - dst[i]) >= cl_FLT_ULP(cpu) * ULPSIZE_FACTOR) {<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> printf("%f %f %f\n", src[i], cpu, dst[i]);<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> OCL_ASSERT(0);<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">diff --git a/utests/compiler_half.cpp b/utests/compiler_half.cpp<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">index d486193..194c308 100644<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">--- a/utests/compiler_half.cpp<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">+++ b/utests/compiler_half.cpp<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">@@ -236,7 +236,7 @@ static float half_test_src[half_n] = {<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> OCL_ASSERT(((fabs(fdst[i]) < 6e-8f) && (fabs(f) < 6e-8f)) || \<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> (fabs(f - fdst[i]) <= 0.03 * fabs(fdst[i])) || \<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> (isInf && ((infSign && fdst[i] > 65504.0f) || (!infSign && fdst[i] < -65504.0f))) || \<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">- (isnan(f) && isnan(fdst[i]))); \<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">+ (std::isnan(f) && std::isnan(fdst[i]))); \<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> } \<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> OCL_UNMAP_BUFFER(1); \<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> } \<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">@@ -310,7 +310,7 @@ HALF_MATH_TEST_1ARG(ceil, ceilf);<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> OCL_ASSERT(((fabs(fdst[i]) < 6e-8f) && (fabs(f) < 6e-8f)) || \<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> (fabs(f - fdst[i]) <= 0.03 * fabs(fdst[i])) || \<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> (isInf && ((infSign && fdst[i] > 65504.0f) || (!infSign && fdst[i] < -65504.0f))) || \<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">- (isnan(f) && isnan(fdst[i]))); \<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">+ (std::isnan(f) && std::isnan(fdst[i]))); \<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> } \<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> OCL_UNMAP_BUFFER(2); \<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> } \<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">diff --git a/utests/compiler_math.cpp b/utests/compiler_math.cpp<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">index e0c4487..0c238c9 100644<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">--- a/utests/compiler_math.cpp<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">+++ b/utests/compiler_math.cpp<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">@@ -72,10 +72,10 @@ static void compiler_math(void)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> for (int i = 0; i < 16; ++i) {<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> const float cpu = cpu_dst[i];<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> const float gpu = ((float*)buf_data[0])[i];<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">- if (isinf(cpu))<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">- OCL_ASSERT(isinf(gpu));<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">- else if (isnan(cpu))<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">- OCL_ASSERT(isnan(gpu));<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">+ if (std::isinf(cpu))<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">+ OCL_ASSERT(std::isinf(gpu));<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">+ else if (std::isnan(cpu))<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">+ OCL_ASSERT(std::isnan(gpu));<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> else<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> OCL_ASSERT(fabs(gpu-cpu) < 1e-3f);<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> }<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">diff --git a/utests/compiler_math_2op.cpp b/utests/compiler_math_2op.cpp<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">index 454967d..d771dba 100644<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">--- a/utests/compiler_math_2op.cpp<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">+++ b/utests/compiler_math_2op.cpp<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">@@ -65,10 +65,10 @@ static void compiler_math_2op(void)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> for (int i = 0; i < 16; ++i) {<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> const float cpu = cpu_dst[i];<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> const float gpu = ((float*)buf_data[0])[i];<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">- if (isinf(cpu))<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">- OCL_ASSERT(isinf(gpu));<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">- else if (isnan(cpu))<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">- OCL_ASSERT(isnan(gpu));<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">+ if (std::isinf(cpu))<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">+ OCL_ASSERT(std::isinf(gpu));<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">+ else if (std::isnan(cpu))<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">+ OCL_ASSERT(std::isnan(gpu));<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> else {<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> OCL_ASSERT(fabs(gpu-cpu) < 1e-3f);<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> }<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">diff --git a/utests/compiler_math_3op.cpp b/utests/compiler_math_3op.cpp<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">index a382b0a..f90f9d6 100644<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">--- a/utests/compiler_math_3op.cpp<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">+++ b/utests/compiler_math_3op.cpp<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">@@ -50,10 +50,10 @@ static void compiler_math_3op(void)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> for (int i = 0; i < 16; ++i) {<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> const float cpu = cpu_dst[i];<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> const float gpu = ((float*)buf_data[0])[i];<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">- if (isinf(cpu))<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">- OCL_ASSERT(isinf(gpu));<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">- else if (isnan(cpu))<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">- OCL_ASSERT(isnan(gpu));<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">+ if (std::isinf(cpu))<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">+ OCL_ASSERT(std::isinf(gpu));<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">+ else if (std::isnan(cpu))<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">+ OCL_ASSERT(std::isnan(gpu));<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> else<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> OCL_ASSERT(fabs(gpu-cpu) < 1e-3f);<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> }<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">diff --git a/utests/utest_generator.py b/utests/utest_generator.py<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">index 91cc938..2ab908e 100644<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">--- a/utests/utest_generator.py<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">+++ b/utests/utest_generator.py<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">@@ -112,10 +112,10 @@ def udebug(ulpSize,returnType,function):<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> ULPSIZE_FACTOR = select_ulpsize(ULPSIZE_FAST_MATH,ULPSIZE_NO_FAST_MATH);<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> bool fast_math = ULPSIZE_FACTOR == ULPSIZE_FAST_MATH;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">- if (isinf(cpu_data[index])){<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">+ if (std::isinf(cpu_data[index])){<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> INFORNAN="INF";<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> }<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">- else if (isnan(cpu_data[index])){<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">+ else if (std::isnan(cpu_data[index])){<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> INFORNAN="NAN";<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> }<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> else{<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">@@ -124,14 +124,14 @@ def udebug(ulpSize,returnType,function):<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> }<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> #if udebug <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">- if (isinf(cpu_data[index])){ <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">- if (isinf(gpu_data[index]))<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">+ if (std::isinf(cpu_data[index])){ <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">+ if (std::isinf(gpu_data[index]))<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> printf("%s expect:%s\\n", log, INFORNAN);<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> else<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> printf_c("%s expect:%s\\n", log, INFORNAN);<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> }<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">- else if (isnan(cpu_data[index])){<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">- if (isnan(gpu_data[index]))<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">+ else if (std::isnan(cpu_data[index])){<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">+ if (std::isnan(gpu_data[index]))<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> printf("%s expect:%s\\n", log, INFORNAN);<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> else<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> printf_c("%s expect:%s\\n", log, INFORNAN);<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">@@ -142,13 +142,13 @@ def udebug(ulpSize,returnType,function):<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> else<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> printf_c("%s expect:%s\\n", log, ULPSIZE);<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> #else<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">- if (isinf(cpu_data[index])){<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">+ if (std::isinf(cpu_data[index])){<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> sprintf(log, "%s expect:%s\\n", log, INFORNAN);<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">- OCL_ASSERTM(isinf(gpu_data[index]) || fast_math,log);<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">+ OCL_ASSERTM(std::isinf(gpu_data[index]) || fast_math,log);<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> }<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">- else if (isnan(cpu_data[index])){<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">+ else if (std::isnan(cpu_data[index])){<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> sprintf(log, "%s expect:%s\\n", log, INFORNAN);<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">- OCL_ASSERTM(isnan(gpu_data[index]) || fast_math,log);<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">+ OCL_ASSERTM(std::isnan(gpu_data[index]) || fast_math,log);<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> }<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> else{<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> sprintf(log, "%s expect:%s\\n", log, ULPSIZE);<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">diff --git a/utests/utest_math_gen.py b/utests/utest_math_gen.py<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">index eca6c87..ac70979 100755<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">--- a/utests/utest_math_gen.py<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">+++ b/utests/utest_math_gen.py<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">@@ -490,9 +490,9 @@ static float powr(float x, float y){<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> return 1;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> else if ((x == +INFINITY) && (y == 0.0f))<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> return NAN;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">- else if (isnan(x) || (x < 0))<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">+ else if (std::isnan(x) || (x < 0))<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> return NAN;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">- else if ((x >= 0) && (isnan(y)))<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">+ else if ((x >= 0) && (std::isnan(y)))<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> return NAN;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> else<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> return powf(x,y);<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">-- <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">2.7.4<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</div>
</div>
</div>
</body>
</html>