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

◆ Pow10()

static unsafe void System.Number.BigInteger.Pow10 ( uint exponent,
out BigInteger result )
inlinestatic

Definition at line 412 of file Number.cs.

413 {
414 SetUInt32(out var result2, s_Pow10UInt32Table[exponent & 7]);
415 ref BigInteger reference = ref result2;
416 SetZero(out var result3);
417 ref BigInteger reference2 = ref result3;
418 exponent >>= 3;
419 uint num = 0u;
420 while (exponent != 0)
421 {
422 if ((exponent & (true ? 1u : 0u)) != 0)
423 {
424 fixed (uint* ptr = &s_Pow10BigNumTable[s_Pow10BigNumTableIndices[num]])
425 {
426 Multiply(ref reference, ref *(BigInteger*)ptr, out reference2);
427 }
428 ref BigInteger reference3 = ref reference2;
429 reference2 = ref reference;
430 reference = ref reference3;
431 }
432 num++;
433 exponent >>= 1;
434 }
435 SetValue(out result, ref reference);
436 }
static void SetZero(out BigInteger result)
Definition Number.cs:620
static readonly int[] s_Pow10BigNumTableIndices
Definition Number.cs:19
static unsafe void SetValue(out BigInteger result, ref BigInteger value)
Definition Number.cs:615
static readonly uint[] s_Pow10UInt32Table
Definition Number.cs:17
static unsafe void SetUInt32(out BigInteger result, uint value)
Definition Number.cs:592
static readonly uint[] s_Pow10BigNumTable
Definition Number.cs:21

References System.Multiply, System.Number.BigInteger.s_Pow10BigNumTable, System.Number.BigInteger.s_Pow10BigNumTableIndices, System.Number.BigInteger.s_Pow10UInt32Table, System.Number.BigInteger.SetUInt32(), System.Number.BigInteger.SetValue(), and System.Number.BigInteger.SetZero().

Referenced by System.Number.Dragon4(), System.Number.BigInteger.MultiplyPow10(), and System.Number.NumberToFloatingPointBitsSlow().