> ## 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