max

> # NAME

> max - returns the maximum of two scalars or each respective component of two vectors

> # SYNOPSIS

>       float  max( float  a, float  b );
>       float1 max( float1 a, float1 b );
>       float2 max( float2 a, float2 b );
>       float3 max( float3 a, float3 b );
>       float4 max( float4 a, float4 b );

>       half   max( half  a, half  b );
>       half1  max( half1 a, half1 b );
>       half2  max( half2 a, half2 b );
>       half3  max( half3 a, half3 b );
>       half4  max( half4 a, half4 b );

>       fixed  max( fixed  a, fixed  b );
>       fixed1 max( fixed1 a, fixed1 b );
>       fixed2 max( fixed2 a, fixed2 b );
>       fixed3 max( fixed3 a, fixed3 b );
>       fixed4 max( fixed4 a, fixed4 b );

> # PARAMETERS

> a

>   Scalar or vector.

> b

>   Scalar or vector.

> # DESCRIPTION

> Returns the maximum of two same-typed scalars a and b or the respective components of two same-typed vectors a and b. The result is a three-component vector.

> # REFERENCE IMPLEMENTATION

> max for float3 vectors could be implemented this way:

>       float3 max(float3 a, float3 b)
>       {
>         return float3(a.x > b.x ? a.x : b.x,
>                       a.y > b.y ? a.y : b.y,
>                       a.z > b.z ? a.z : b.z);
>       }

> # PROFILE SUPPORT

> max is supported in all profiles. max is implemented as a compiler built-in.

> Support in the fp20 is limited.

> # SEE ALSO

> clamp, min