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

◆ RoundPackToHalf()

static ushort System.Half.RoundPackToHalf ( bool sign,
short exp,
ushort sig )
inlinestaticprivate

Definition at line 535 of file Half.cs.

536 {
537 int num = sig & 0xF;
538 if ((uint)exp >= 29u)
539 {
540 if (exp < 0)
541 {
542 sig = (ushort)ShiftRightJam(sig, -exp);
543 exp = 0;
544 num = sig & 0xF;
545 }
546 else if (exp > 29 || sig + 8 >= 32768)
547 {
548 if (!sign)
549 {
550 return 31744;
551 }
552 return 64512;
553 }
554 }
555 sig = (ushort)(sig + 8 >> 4);
556 sig &= (ushort)(~((((num ^ 8) == 0) ? 1u : 0u) & 1u));
557 if (sig == 0)
558 {
559 exp = 0;
560 }
561 return new Half(sign, (ushort)exp, sig)._value;
562 }
static uint ShiftRightJam(uint i, int dist)
Definition Half.cs:564
Half(ushort value)
Definition Half.cs:78

References System.Half.Half(), and System.Half.ShiftRightJam().

Referenced by System.Half.operator Half(), and System.Half.operator Half().