[MethodImpl(Inline)] public static uint3 step(uint3 a, uint3 b) => uint3(step(a.x, b.x), step(a.y, b.y), step(a.z, b.z));
[MethodImpl(Inline)] public static uint3 min(uint3 a, uint3 b) => uint3(min(a.x, b.x), min(a.y, b.y), min(a.z, b.z));
[MethodImpl(Inline)] public static unsafe float3 abs(float3 a) { uint3 b = (*(uint3 *)&a) & 0x7FFFFFFF; return(*(float3 *)&b); }
[MethodImpl(Inline)] public static uint3 lerp(uint3 a, uint3 b, uint3 c) => a + c * (b - a);
[MethodImpl(Inline)] public static uint3 mad(uint3 a, uint3 b, uint3 c) => a * b + c;
[MethodImpl(Inline)] public static uint dot(uint3 a, uint3 b) => a.x * b.x + a.y * b.y + a.z * b.z;
[MethodImpl(Inline)] public static uint3 clamp(uint3 v, uint3 a, uint3 b) => max(a, min(b, v));