public static Half FmaFP32(Half first, Half second, Half third) => (Half)((float)first * second + third);
public static ushort FloatAsInt(Half value) => value.RawValue;
public static Half MulFP32(Half first, Half second) => (Half)((float)first * second);
public static Half DivFP32(Half first, Half second) => (Half)((float)first / second);
public static Half AddFP32(Half first, Half second) => (Half)((float)first + second);
public static Half SubFP32(Half first, Half second) => (Half)((float)first - second);
public static bool IsInfinity(Half half) => (half.RawValue & ExponentMantissaMask) == ExponentMask;
public static bool IsFinite(Half half) => !IsNaN(half) & !IsInfinity(half);
public static bool IsPositiveInfinity(Half half) => half == Half.PositiveInfinity;
public static bool IsNegativeInfinity(Half half) => half == Half.NegativeInfinity;
public static bool IsZero(Half half) => (half.RawValue & ExponentMantissaMask) == 0;
public static bool IsNaN(Half half) => (half.RawValue & ExponentMantissaMask) > ExponentMask;
public static Half Abs(Half half) => new Half((ushort)(half.RawValue & ExponentMantissaMask));
public static Half Neg(Half halfValue) => new Half((ushort)(halfValue.RawValue ^ SignBitMask));
public static Half Abs(Half value) => Half.Abs(value);