[Beignet] [PATCH] Prepend std namespace to isnan and isinf calls.
Yang, Rong R
rong.r.yang at intel.com
Fri Apr 8 03:40:26 UTC 2016
The format have some error, fix it by manual. Pushed, thanks for your contribution.
From: Beignet [mailto:beignet-bounces at lists.freedesktop.org] On Behalf Of Pan, Xiuli
Sent: Wednesday, April 6, 2016 12:35
To: Pan, Xiuli <xiuli.pan at intel.com>; Sean Lynch <seanl at literati.org>
Cc: beignet at lists.freedesktop.org
Subject: Re: [Beignet] [PATCH] Prepend std namespace to isnan and isinf calls.
Ping for pushed for mater and OCL2.0 branch.
Face same problem in Ubuntu 16.04.
From: Beignet [mailto:beignet-bounces at lists.freedesktop.org] On Behalf Of Pan, Xiuli
Sent: Tuesday, March 29, 2016 4:08 PM
To: Sean Lynch <seanl at literati.org<mailto:seanl at literati.org>>
Cc: beignet at lists.freedesktop.org<mailto:beignet at lists.freedesktop.org>
Subject: Re: [Beignet] [PATCH] Prepend std namespace to isnan and isinf calls.
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<mailto:xiuli.pan at intel.com>>
Cc: beignet at lists.freedesktop.org<mailto: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/20160408/dce1a8a1/attachment-0001.html>
More information about the Beignet
mailing list