[Beignet] [PATCH] Remove some unreasonable input values for rootn
Zhigang Gong
zhigang.gong at linux.intel.com
Thu Feb 20 19:16:16 PST 2014
LGTM, will push latter, thanks.
On Thu, Feb 20, 2014 at 09:32:32AM +0800, Yi Sun wrote:
> In manual for function pow(), there's following description:
> "If x is a finite value less than 0,
> and y is a finite noninteger,
> a domain error occurs, and a NaN is returned."
> That means we can't calculate rootn in cpu like this pow(x,1.0/y) which is mentioned in OpenCL spec.
> E.g. when y=3 and x=-8, rootn should return -2. But when we calculate pow(x, 1.0/y), it will return a Nan.
> I didn't find multi-root math function in glibc.
>
> Signed-off-by: Yi Sun <yi.sun at intel.com>
>
> diff --git a/utests/utest_math_gen.py b/utests/utest_math_gen.py
> index f268739..2b70d65 100755
> --- a/utests/utest_math_gen.py
> +++ b/utests/utest_math_gen.py
> @@ -417,8 +417,8 @@ static float powr(float x, int y){
> rintUtests = func('rint','rint',[rint_input_type],rint_output_type,[rint_input_values],'0 * FLT_ULP')
>
> ##### floatn rootn(floatn x, intn y)
> - rootn_input_values1 = [FLT_MAX_POSI,FLT_MIN_NEGA,FLT_MIN_POSI,FLT_MAX_NEGA,80, -80, 3.14, -3.14, -0.5, 0.5, 1, -1, 0.0,6,-6,1500.24,-1500.24,2,3,4]
> - rootn_input_values2 = [-1,-2,-3,2,3,6,7,8,9,2,11,12,13,14,15,16,2,2,2,2]
> + rootn_input_values1 = [0.0, 0.0012, 0.5, 1, 3.14, 12345]
> + rootn_input_values2 = [-1, 1, -20, 20, -123, 456]
> rootn_input_type1 = ['float','float2','float4','float8','float16']
> rootn_input_type2 = ['int','int2','int4','int8','int16']
> rootn_output_type = ['float','float2','float4','float8','float16']
> --
> 1.8.5.3
>
> _______________________________________________
> Beignet mailing list
> Beignet at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/beignet
More information about the Beignet
mailing list