/// <summary>Writes the half</summary> /// <param name="value">Value</param> public virtual void WriteHalf(Single value) { BitConverter bytes = HalfUtils.Pack(value); bytes.Exchange16bits(); SetByte(bytes.Endian0, 8); SetByte(bytes.Endian1, 8); }
/// <summary>Read a half precision floating</summary> /// <returns>Single Precision Float</returns> public virtual Single ReadHalf() { BitConverter value = default(BitConverter); value.Endian0 = GetByte(8); value.Endian1 = GetByte(8); value.Exchange16bits(); return(HalfUtils.Unpack(value.u16)); }
/// <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].Value); } return(results); }
/// <summary>Half</summary> /// <param name="value">Floating value</param> public Half(float value) { Value = HalfUtils.Pack(value); }