Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ operator Half() [2/2]

static System.Half.operator Half ( float value)
inlineexplicitstatic

Definition at line 395 of file Half.cs.

396 {
397 uint num = BitConverter.SingleToUInt32Bits(value);
398 bool flag = (num & 0x80000000u) >> 31 != 0;
399 int num2 = (int)(num & 0x7F800000) >> 23;
400 uint num3 = num & 0x7FFFFFu;
401 if (num2 == 255)
402 {
403 if (num3 != 0)
404 {
405 return CreateHalfNaN(flag, (ulong)num3 << 41);
406 }
407 if (!flag)
408 {
409 return PositiveInfinity;
410 }
411 return NegativeInfinity;
412 }
413 uint num4 = (num3 >> 9) | (((num3 & 0x1FFu) != 0) ? 1u : 0u);
414 if (((uint)num2 | num4) == 0)
415 {
416 return new Half(flag, 0, 0);
417 }
418 return new Half(RoundPackToHalf(flag, (short)(num2 - 113), (ushort)(num4 | 0x4000u)));
419 }
static Half NegativeInfinity
Definition Half.cs:21
static ushort RoundPackToHalf(bool sign, short exp, ushort sig)
Definition Half.cs:535
static Half PositiveInfinity
Definition Half.cs:19
Half(ushort value)
Definition Half.cs:78
static Half CreateHalfNaN(bool sign, ulong significand)
Definition Half.cs:528

References System.Half.Half(), System.Half.CreateHalfNaN(), System.Half.NegativeInfinity, System.Half.PositiveInfinity, System.Half.RoundPackToHalf(), System.BitConverter.SingleToUInt32Bits(), and System.value.