[Beignet] [PATCH] Prepend std namespace to isnan and isinf calls.

Pan, Xiuli xiuli.pan at intel.com
Tue Mar 29 08:08:03 UTC 2016


LGTM!
It seems may be the mathcalls.h have some small difference. Actually there is three types of isnan here:
One is the #define isnan in math.h included by cmath
Another is std::isnan in cmath
The last one that are missing here is from mathcalls.h
#if defined __USE_MISC || defined __USE_XOPEN
/* Return nonzero if VALUE is not a number.  */
__MATHDECL_1 (int,isnan,, (_Mdouble_ __value)) __attribute__ ((__const__));
Here in Ubuntu, we used this isnan in this case, but in general the std::isnan should be used.
You can have a look at your mathcalls.h and __USE_MISC, __USE_XOPEN to figure out what is happening!

Thanks!

From: Beignet [mailto:beignet-bounces at lists.freedesktop.org] On Behalf Of Sean Lynch
Sent: Tuesday, March 29, 2016 2:20 PM
To: Pan, Xiuli <xiuli.pan at intel.com>
Cc: beignet at lists.freedesktop.org
Subject: [Beignet] [PATCH] Prepend std namespace to isnan and isinf calls.


Signed-off-by: Sean Lynch <seanl at literati.org<mailto:seanl at literati.org>>
---
 utests/builtin_acos_asin.cpp | 12 ++++++------
 utests/builtin_exp.cpp       | 12 ++++++------
 utests/builtin_pow.cpp       | 12 ++++++------
 utests/builtin_tgamma.cpp    |  4 ++--
 utests/compiler_half.cpp     |  4 ++--
 utests/compiler_math.cpp     |  8 ++++----
 utests/compiler_math_2op.cpp |  8 ++++----
 utests/compiler_math_3op.cpp |  8 ++++----
 utests/utest_generator.py    | 20 ++++++++++----------
 utests/utest_math_gen.py     |  4 ++--
 10 files changed, 46 insertions(+), 46 deletions(-)

diff --git a/utests/builtin_acos_asin.cpp b/utests/builtin_acos_asin.cpp
index 0187226..395460b 100644
--- a/utests/builtin_acos_asin.cpp
+++ b/utests/builtin_acos_asin.cpp
@@ -59,10 +59,10 @@ static void builtin_acos_asin(void)
     {
       index_cur = k * max_function + i;
 #if udebug
-      if (isinf(cpu_data[index_cur]) && !isinf(gpu_data[index_cur])){
+      if (std::isinf(cpu_data[index_cur]) && !std::isinf(gpu_data[index_cur])){
         printf_c("%d/%d: %f -> gpu:%f  cpu:%f\n", k, i, input_data[k], gpu_data[index_cur], cpu_data[index_cur]);
       }
-      else if (isnan(cpu_data[index_cur]) && !isnan(gpu_data[index_cur])){
+      else if (std::isnan(cpu_data[index_cur]) && !std::isnan(gpu_data[index_cur])){
         printf_c("%d/%d: %f -> gpu:%f  cpu:%f\n", k, i, input_data[k], gpu_data[index_cur], cpu_data[index_cur]);
       }
       else if(fabs(gpu_data[index_cur] - cpu_data[index_cur]) > 1e-3f){
@@ -71,10 +71,10 @@ static void builtin_acos_asin(void)
       else
         printf("%d/%d: %f -> gpu:%f  cpu:%f\n", k, i, input_data[k], gpu_data[index_cur], cpu_data[index_cur]);
 #else
-     if (isinf(cpu_data[index_cur]))
-       OCL_ASSERT(isinf(gpu_data[index_cur]));
-     else if (isnan(cpu_data[index_cur]))
-       OCL_ASSERT(isnan(gpu_data[index_cur]));
+     if (std::isinf(cpu_data[index_cur]))
+       OCL_ASSERT(std::isinf(gpu_data[index_cur]));
+     else if (std::isnan(cpu_data[index_cur]))
+       OCL_ASSERT(std::isnan(gpu_data[index_cur]));
      else
      {
        OCL_ASSERT(fabs(gpu_data[index_cur] - cpu_data[index_cur]) < 1e-3f);
diff --git a/utests/builtin_exp.cpp b/utests/builtin_exp.cpp
index d5288c8..406d223 100644
--- a/utests/builtin_exp.cpp
+++ b/utests/builtin_exp.cpp
@@ -71,10 +71,10 @@ static void builtin_exp(void)
          diff/gpu_data[index_cur], 3 * FLT_ULP);

 #if udebug
-      if (isinf(cpu_data[index_cur]) && isinf(gpu_data[index_cur])){
+      if (std::isinf(cpu_data[index_cur]) && std::isinf(gpu_data[index_cur])){
         printf(log);
       }
-      else if (isnan(cpu_data[index_cur]) && isnan(gpu_data[index_cur])){
+      else if (std::isnan(cpu_data[index_cur]) && std::isnan(gpu_data[index_cur])){
         printf(log);
       }
       else if( diff / cpu_data[index_cur] < 3 * FLT_ULP \
@@ -86,10 +86,10 @@ static void builtin_exp(void)
       else
         printf_c(log);
 #else
-      if (isinf(cpu_data[index_cur]))
-        OCL_ASSERTM(isinf(gpu_data[index_cur]), log);
-      else if (isnan(cpu_data[index_cur]))
-        OCL_ASSERTM(isnan(gpu_data[index_cur]), log);
+      if (std::isinf(cpu_data[index_cur]))
+        OCL_ASSERTM(std::isinf(gpu_data[index_cur]), log);
+      else if (std::isnan(cpu_data[index_cur]))
+        OCL_ASSERTM(std::isnan(gpu_data[index_cur]), log);
       else if ( gpu_data[index_cur] > FLT_ULP || cpu_data[index_cur] > FLT_ULP)
         OCL_ASSERTM(fabs( diff / cpu_data[index_cur]) < 3 * FLT_ULP, log);
       else
diff --git a/utests/builtin_pow.cpp b/utests/builtin_pow.cpp
index f586448..21fa895 100644
--- a/utests/builtin_pow.cpp
+++ b/utests/builtin_pow.cpp
@@ -74,8 +74,8 @@ static void builtin_pow(void)
     {
       index_cur = k * max_function + i;
 #if udebug
-      if ( (isinf(cpu_data[index_cur]) && !isinf(gpu_data[index_cur])) ||
-           (isnan(cpu_data[index_cur]) && !isnan(gpu_data[index_cur])) ||
+      if ( (std::isinf(cpu_data[index_cur]) && !std::isinf(gpu_data[index_cur])) ||
+           (std::isnan(cpu_data[index_cur]) && !std::isnan(gpu_data[index_cur])) ||
            (fabs(gpu_data[index_cur] - cpu_data[index_cur]) > cl_FLT_ULP(cpu_data[index_cur]) * ULPSIZE_FACTOR
            && (denormals_supported || gpu_data[index_cur]!=0 || std::fpclassify(cpu_data[index_cur])!=FP_SUBNORMAL) ) )

@@ -85,10 +85,10 @@ static void builtin_pow(void)
       else
         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]);
 #else
-     if (isinf(cpu_data[index_cur]))
-       OCL_ASSERT(isinf(gpu_data[index_cur]));
-     else if (isnan(cpu_data[index_cur]))
-       OCL_ASSERT(isnan(gpu_data[index_cur]));
+     if (std::isinf(cpu_data[index_cur]))
+       OCL_ASSERT(std::isinf(gpu_data[index_cur]));
+     else if (std::isnan(cpu_data[index_cur]))
+       OCL_ASSERT(std::isnan(gpu_data[index_cur]));
      else
      {
        OCL_ASSERT((fabs(gpu_data[index_cur] - cpu_data[index_cur]) < cl_FLT_ULP(cpu_data[index_cur]) * ULPSIZE_FACTOR) ||
diff --git a/utests/builtin_tgamma.cpp b/utests/builtin_tgamma.cpp
index db9ab3c..204f49e 100644
--- a/utests/builtin_tgamma.cpp
+++ b/utests/builtin_tgamma.cpp
@@ -43,8 +43,8 @@ void builtin_tgamma(void)
         max_ulp = fabsf(cpu - dst[i]) / cl_FLT_ULP(cpu);
         max_ulp_at = src[i];
       }
-      if (isinf(cpu)) {
-        OCL_ASSERT(isinf(dst[i]));
+      if (std::isinf(cpu)) {
+        OCL_ASSERT(std::isinf(dst[i]));
       } else if (fabsf(cpu - dst[i]) >= cl_FLT_ULP(cpu) * ULPSIZE_FACTOR) {
         printf("%f %f %f\n", src[i], cpu, dst[i]);
         OCL_ASSERT(0);
diff --git a/utests/compiler_half.cpp b/utests/compiler_half.cpp
index d486193..194c308 100644
--- a/utests/compiler_half.cpp
+++ b/utests/compiler_half.cpp
@@ -236,7 +236,7 @@ static float half_test_src[half_n] = {
       OCL_ASSERT(((fabs(fdst[i]) < 6e-8f) && (fabs(f) < 6e-8f)) ||      \
                  (fabs(f - fdst[i]) <= 0.03 * fabs(fdst[i])) ||         \
                  (isInf && ((infSign && fdst[i] > 65504.0f) || (!infSign && fdst[i] < -65504.0f))) || \
-                 (isnan(f) && isnan(fdst[i])));                         \
+                 (std::isnan(f) && std::isnan(fdst[i])));                         \
     }                                                                   \
     OCL_UNMAP_BUFFER(1);                                                \
   }                                                                     \
@@ -310,7 +310,7 @@ HALF_MATH_TEST_1ARG(ceil, ceilf);
     OCL_ASSERT(((fabs(fdst[i]) < 6e-8f) && (fabs(f) < 6e-8f)) ||        \
                (fabs(f - fdst[i]) <= 0.03 * fabs(fdst[i])) ||           \
                (isInf && ((infSign && fdst[i] > 65504.0f) || (!infSign && fdst[i] < -65504.0f))) || \
-               (isnan(f) && isnan(fdst[i])));                           \
+               (std::isnan(f) && std::isnan(fdst[i])));                           \
     }                                                                   \
     OCL_UNMAP_BUFFER(2);                                                \
   }                                                                     \
diff --git a/utests/compiler_math.cpp b/utests/compiler_math.cpp
index e0c4487..0c238c9 100644
--- a/utests/compiler_math.cpp
+++ b/utests/compiler_math.cpp
@@ -72,10 +72,10 @@ static void compiler_math(void)
     for (int i = 0; i < 16; ++i) {
       const float cpu = cpu_dst[i];
       const float gpu = ((float*)buf_data[0])[i];
-      if (isinf(cpu))
-        OCL_ASSERT(isinf(gpu));
-      else if (isnan(cpu))
-        OCL_ASSERT(isnan(gpu));
+      if (std::isinf(cpu))
+        OCL_ASSERT(std::isinf(gpu));
+      else if (std::isnan(cpu))
+        OCL_ASSERT(std::isnan(gpu));
       else
         OCL_ASSERT(fabs(gpu-cpu) < 1e-3f);
     }
diff --git a/utests/compiler_math_2op.cpp b/utests/compiler_math_2op.cpp
index 454967d..d771dba 100644
--- a/utests/compiler_math_2op.cpp
+++ b/utests/compiler_math_2op.cpp
@@ -65,10 +65,10 @@ static void compiler_math_2op(void)
     for (int i = 0; i < 16; ++i) {
       const float cpu = cpu_dst[i];
       const float gpu = ((float*)buf_data[0])[i];
-      if (isinf(cpu))
-        OCL_ASSERT(isinf(gpu));
-      else if (isnan(cpu))
-        OCL_ASSERT(isnan(gpu));
+      if (std::isinf(cpu))
+        OCL_ASSERT(std::isinf(gpu));
+      else if (std::isnan(cpu))
+        OCL_ASSERT(std::isnan(gpu));
       else {
         OCL_ASSERT(fabs(gpu-cpu) < 1e-3f);
       }
diff --git a/utests/compiler_math_3op.cpp b/utests/compiler_math_3op.cpp
index a382b0a..f90f9d6 100644
--- a/utests/compiler_math_3op.cpp
+++ b/utests/compiler_math_3op.cpp
@@ -50,10 +50,10 @@ static void compiler_math_3op(void)
     for (int i = 0; i < 16; ++i) {
       const float cpu = cpu_dst[i];
       const float gpu = ((float*)buf_data[0])[i];
-      if (isinf(cpu))
-        OCL_ASSERT(isinf(gpu));
-      else if (isnan(cpu))
-        OCL_ASSERT(isnan(gpu));
+      if (std::isinf(cpu))
+        OCL_ASSERT(std::isinf(gpu));
+      else if (std::isnan(cpu))
+        OCL_ASSERT(std::isnan(gpu));
       else
         OCL_ASSERT(fabs(gpu-cpu) < 1e-3f);
     }
diff --git a/utests/utest_generator.py b/utests/utest_generator.py
index 91cc938..2ab908e 100644
--- a/utests/utest_generator.py
+++ b/utests/utest_generator.py
@@ -112,10 +112,10 @@ def udebug(ulpSize,returnType,function):
     ULPSIZE_FACTOR = select_ulpsize(ULPSIZE_FAST_MATH,ULPSIZE_NO_FAST_MATH);
     bool fast_math = ULPSIZE_FACTOR == ULPSIZE_FAST_MATH;

-    if (isinf(cpu_data[index])){
+    if (std::isinf(cpu_data[index])){
       INFORNAN="INF";
     }
-    else if (isnan(cpu_data[index])){
+    else if (std::isnan(cpu_data[index])){
       INFORNAN="NAN";
     }
     else{
@@ -124,14 +124,14 @@ def udebug(ulpSize,returnType,function):
     }

 #if udebug
-    if (isinf(cpu_data[index])){
-      if (isinf(gpu_data[index]))
+    if (std::isinf(cpu_data[index])){
+      if (std::isinf(gpu_data[index]))
         printf("%s expect:%s\\n", log, INFORNAN);
       else
         printf_c("%s expect:%s\\n", log, INFORNAN);
       }
-    else if (isnan(cpu_data[index])){
-      if (isnan(gpu_data[index]))
+    else if (std::isnan(cpu_data[index])){
+      if (std::isnan(gpu_data[index]))
         printf("%s expect:%s\\n", log, INFORNAN);
       else
         printf_c("%s expect:%s\\n", log, INFORNAN);
@@ -142,13 +142,13 @@ def udebug(ulpSize,returnType,function):
     else
       printf_c("%s expect:%s\\n", log, ULPSIZE);
 #else
-    if (isinf(cpu_data[index])){
+    if (std::isinf(cpu_data[index])){
       sprintf(log, "%s expect:%s\\n", log, INFORNAN);
-      OCL_ASSERTM(isinf(gpu_data[index]) || fast_math,log);
+      OCL_ASSERTM(std::isinf(gpu_data[index]) || fast_math,log);
     }
-    else if (isnan(cpu_data[index])){
+    else if (std::isnan(cpu_data[index])){
       sprintf(log, "%s expect:%s\\n", log, INFORNAN);
-      OCL_ASSERTM(isnan(gpu_data[index]) || fast_math,log);
+      OCL_ASSERTM(std::isnan(gpu_data[index]) || fast_math,log);
     }
     else{
       sprintf(log, "%s expect:%s\\n", log, ULPSIZE);
diff --git a/utests/utest_math_gen.py b/utests/utest_math_gen.py
index eca6c87..ac70979 100755
--- a/utests/utest_math_gen.py
+++ b/utests/utest_math_gen.py
@@ -490,9 +490,9 @@ static float powr(float x, float y){
         return 1;
     else if ((x == +INFINITY) && (y == 0.0f))
         return NAN;
-    else if (isnan(x) || (x < 0))
+    else if (std::isnan(x) || (x < 0))
         return NAN;
-    else if ((x >=  0) && (isnan(y)))
+    else if ((x >=  0) && (std::isnan(y)))
         return NAN;
     else
         return powf(x,y);
--
2.7.4

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/beignet/attachments/20160329/13370fa3/attachment-0001.html>


More information about the Beignet mailing list