Structures

The following structures are available globally.

  • An arbitary precision unsigned integer type, also known as a big integer.

    Operations on big integers never overflow, but they may take a long time to execute. The amount of memory (and address space) available is the only constraint to the magnitude of these numbers.

    This particular big integer type uses base-2^64 digits to represent integers; you can think of it as a wrapper around Array<UInt64>. (In fact, BigUInt only uses an array if there are more than two digits.)

    See more

    Declaration

    Swift

    public struct BigUInt: UnsignedInteger
  • An arbitary precision signed integer type, also known as a big integer.

    Operations on big integers never overflow, but they might take a long time to execute. The amount of memory (and address space) available is the only constraint to the magnitude of these numbers.

    This particular big integer type uses base-2^64 digits to represent integers.

    BigInt is essentially a tiny wrapper that extends BigUInt with a sign bit and provides signed integer operations. Both the underlying absolute value and the negative/positive flag are available as read-write properties.

    Not all algorithms of BigUInt are available for BigInt values; for example, there is no square root or primality test for signed integers. When you need to call one of these, just extract the absolute value:

    BigInt(255).abs.isPrime()   // Returns false
    
    See more

    Declaration

    Swift

    public struct BigInt: SignedInteger