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

◆ DivRem()

static BigInteger System.Numerics.BigInteger.DivRem ( BigInteger dividend,
BigInteger divisor,
out BigInteger remainder )
inlinestatic

Definition at line 665 of file BigInteger.cs.

666 {
667 bool flag = dividend._bits == null;
668 bool flag2 = divisor._bits == null;
669 if (flag && flag2)
670 {
671 (int Quotient, int Remainder) tuple = Math.DivRem(dividend._sign, divisor._sign);
672 BigInteger bigInteger = tuple.Quotient;
673 BigInteger bigInteger2 = tuple.Remainder;
674 BigInteger result = bigInteger;
675 remainder = bigInteger2;
676 return result;
677 }
678 if (flag)
679 {
680 remainder = dividend;
681 return s_bnZeroInt;
682 }
683 if (flag2)
684 {
685 uint remainder2;
686 uint[] array = BigIntegerCalculator.Divide(dividend._bits, NumericsHelpers.Abs(divisor._sign), out remainder2);
687 remainder = ((dividend._sign < 0) ? (-1 * remainder2) : remainder2);
688 return new BigInteger(array, array, (dividend._sign < 0) ^ (divisor._sign < 0));
689 }
690 if (dividend._bits.Length < divisor._bits.Length)
691 {
692 remainder = dividend;
693 return s_bnZeroInt;
694 }
695 uint[] remainder3;
696 uint[] array2 = BigIntegerCalculator.Divide(dividend._bits, divisor._bits, out remainder3);
697 remainder = new BigInteger(remainder3, remainder3, dividend._sign < 0);
698 return new BigInteger(array2, array2, (dividend._sign < 0) ^ (divisor._sign < 0));
699 }
static readonly BigInteger s_bnZeroInt
Definition BigInteger.cs:26
static BigInteger Remainder(BigInteger dividend, BigInteger divisor)

References System.Numerics.BigInteger.BigInteger(), System.Numerics.BigInteger._bits, System.Numerics.BigInteger._sign, System.Numerics.NumericsHelpers.Abs(), System.array, System.Numerics.BigIntegerCalculator.Divide(), System.Math.DivRem(), System.Numerics.BigInteger.Remainder(), and System.Numerics.BigInteger.s_bnZeroInt.