trunc

> # NAME

> trunc - returns largest integer not greater than a scalar or each vector component.

> # SYNOPSIS

>       float  trunc(float x);
>       float1 trunc(float1 x);
>       float2 trunc(float2 x);
>       float3 trunc(float3 x);
>       float4 trunc(float4 x);

>       half   trunc(half x);
>       half1  trunc(half1 x);
>       half2  trunc(half2 x);
>       half3  trunc(half3 x);
>       half4  trunc(half4 x);

>       fixed  trunc(fixed x);
>       fixed1 trunc(fixed1 x);
>       fixed2 trunc(fixed2 x);
>       fixed3 trunc(fixed3 x);
>       fixed4 trunc(fixed4 x);

> # PARAMETERS

> x

>   Vector or scalar which to truncate.

> # DESCRIPTION

> Returns the integral value nearest to but no larger in magnitude than x.

> # REFERENCE IMPLEMENTATION

> trunc for a float3 vector could be implemented like this.

>       float3 trunc(float3 v)
>       {
>         float3 rv;
>         int i;

>         for (i=0; i<3; i++) {
>           float x = v[i];

>           rv[i] = x < 0 ? -floor(-x) : floor(x);
>         }
>         return rv;
>       }

> # PROFILE SUPPORT

> trunc is supported in all profiles except fp20.

> # SEE ALSO

> ceil, floor, round