Name
fmod - returns the remainder of x/y with the same sign as x
Synopsis
float fmod(float x, float y);
float1 fmod(float1 x, float1 y);
float2 fmod(float2 x, float2 y);
float3 fmod(float3 x, float3 y);
float4 fmod(float4 x, float4 y);
half fmod(half x, half y);
half1 fmod(half1 x, half1 y);
half2 fmod(half2 x, half2 y);
half3 fmod(half3 x, half3 y);
half4 fmod(half4 x, half4 y);
fixed fmod(fixed x, fixed y);
fixed1 fmod(fixed1 x, fixed1 y);
fixed2 fmod(fixed2 x, fixed2 y);
fixed3 fmod(fixed3 x, fixed3 y);
fixed4 fmod(fixed4 x, fixed4 y);
Parameters
- x
-
Vector or scalar numerator
- y
-
Vector or scalar denominator
Description
fmod returns the remainder of x divided by y with the same sign
as x. If y is zero, the result is implementation-defined because
of division by zero.
For vectors, the returned vector contains the signed remainder of each
element of the input vector.
Reference Implementation
fmod for an float2 vector could be implemented as:
float2 fmod(float2 a, float2 b)
{
float2 c = frac(abs(a/b))*abs(b);
return (a < 0) ? -c : c; /* if ( a < 0 ) c = 0-c */
}
Profile Support
fmod is supported in all profiles but fp20.
See Also
abs, frac
|