/// <summary> /// Returns a value that indicates whether the current instance is equal to the specified object. /// </summary> /// <param name = "other">Object to make the comparison with.</param> /// <returns> /// <c>true</c> if the current instance is equal to the specified object; <c>false</c> otherwise.</returns> public bool Equals(Half other) { return other.value == value; }
/// <summary> /// Converts an array of full precision values into half precision values. /// </summary> /// <param name = "values">The values to be converted.</param> /// <returns>An array of converted values.</returns> public static Half[] ConvertToHalf(float[] values) { Half[] results = new Half[values.Length]; for(int i = 0; i < results.Length; i++) results[i] = new Half(values[i]); return results; }
/// <summary> /// Determines whether the specified object instances are considered equal. /// </summary> /// <param name = "value1" /> /// <param name = "value2" /> /// <returns> /// <c>true</c> if <paramref name = "value1" /> is the same instance as <paramref name = "value2" /> or /// if both are <c>null</c> references or if <c>value1.Equals(value2)</c> returns <c>true</c>; otherwise, <c>false</c>.</returns> //[MethodImpl(MethodImplOptions.AggressiveInlining)] public static bool Equals(ref Half value1, ref Half value2) { return value1.value == value2.value; }
/// <summary> /// Converts an array of half precision values into full precision values. /// </summary> /// <param name = "values">The values to be converted.</param> /// <returns>An array of converted values.</returns> public static float[] ConvertToFloat(Half[] values) { float[] results = new float[values.Length]; for(int i = 0; i < results.Length; i++) results[i] = HalfUtils.Unpack(values[i].RawValue); return results; }