float2 implementation