isfinite

> # NAME

> isfinite - test whether or not a scalar or each vector component is a finite value

> # SYNOPSIS

>       bool  isfinite(float x);
>       bool1 isfinite(float1 x);
>       bool2 isfinite(float2 x);
>       bool3 isfinite(float3 x);
>       bool4 isfinite(float4 x);

>       bool   isfinite(half x);
>       bool1  isfinite(half1 x);
>       bool2  isfinite(half2 x);
>       bool3  isfinite(half3 x);
>       bool4  isfinite(half4 x);

>       bool  isfinite(fixed x);
>       bool1 isfinite(fixed1 x);
>       bool2 isfinite(fixed2 x);
>       bool3 isfinite(fixed3 x);
>       bool4 isfinite(fixed4 x);

> # PARAMETERS

> x

>   Vector or scalar to test for finiteness.

> # DESCRIPTION

> Returns whether or not a scalar or each vector component is a finite value. Infinity and not-a-number (NaN) values are not finite.

> # REFERENCE IMPLEMENTATION

> isfinite for float3 vectors could be implemented like this.

>       bool3 isfinite(float3 s)
>       {
>         // By IEEE 754 rule, 2*Inf equals Inf
>         return (s == s) && ((s == 0) || (s != 2*s));
>       }

> # PROFILE SUPPORT

> isfinite is supported in all profiles except fp20.

> # SEE ALSO

> isinf, isnan