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

◆ Pow()

static BigInteger System.Numerics.BigInteger.Pow ( BigInteger value,
int exponent )
inlinestatic

Definition at line 831 of file BigInteger.cs.

832 {
833 if (exponent < 0)
834 {
835 throw new ArgumentOutOfRangeException("exponent", System.SR.ArgumentOutOfRange_MustBeNonNeg);
836 }
837 switch (exponent)
838 {
839 case 0:
840 return s_bnOneInt;
841 case 1:
842 return value;
843 default:
844 {
845 bool flag = value._bits == null;
846 if (flag)
847 {
848 if (value._sign == 1)
849 {
850 return value;
851 }
852 if (value._sign == -1)
853 {
854 if ((exponent & 1) == 0)
855 {
856 return s_bnOneInt;
857 }
858 return value;
859 }
860 if (value._sign == 0)
861 {
862 return value;
863 }
864 }
865 uint[] array = (flag ? BigIntegerCalculator.Pow(NumericsHelpers.Abs(value._sign), NumericsHelpers.Abs(exponent)) : BigIntegerCalculator.Pow(value._bits, NumericsHelpers.Abs(exponent)));
866 return new BigInteger(array, array, value._sign < 0 && (exponent & 1) != 0);
867 }
868 }
869 }
static string ArgumentOutOfRange_MustBeNonNeg
Definition SR.cs:24
Definition SR.cs:7
static readonly BigInteger s_bnOneInt
Definition BigInteger.cs:24

References System.Numerics.BigInteger.BigInteger(), System.Numerics.NumericsHelpers.Abs(), System.SR.ArgumentOutOfRange_MustBeNonNeg, System.array, System.Numerics.BigIntegerCalculator.Pow(), System.Numerics.BigInteger.s_bnOneInt, and System.value.