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