## BigInt

### 1.19.0

Arbitrary-precision integer arithmetic in Swift

### Release 1.19.0

###### 2024-06-24T13:20:39Z

1. Release 1.19.0 is backwards compatible with release 1.18.0

2. Two new random functions: randomFrom(:), randomTo(:)

3. The extended GCD algorithm uses a new recursive GCD algorithm for large numbers with more than 64.000 bits.
The recursive algorithm is about 25 times faster than the Lehmer algorithm for numbers with 8.000.000 bits.

## BigInt

The BigInt package provides arbitrary-precision integer arithmetic in Swift. Its functionality falls in the following categories:

• Arithmetic: addition, subtraction, multiplication, division, exponentiation, remainder and modulus, gcd and lcm
• Comparison: the six standard operations == != < <= > >=
• Shifting: logical left shift and rigth shift
• Logical: bitwise and, or, xor, and not
• Modulo: normal modulus, inverse modulus, and modular exponentiation
• Conversion: to double, to integer, to string, to magnitude byte array, and to 2's complement byte array
• Primes: prime number testing, probable prime number generation and primorial
• Miscellaneous: random number generation, n-th root, square root modulo an odd prime, Jacobi symbol, Kronecker symbol, Factorial function, Binomial function, Fibonacci numbers, Lucas numbers and Bernoulli numbers
• Fractions: Standard arithmetic on fractions whose numerators and denominators are of unbounded size
• Chinese Remainder Theorem: Compute the CRT value from given residues and moduli

BigInt requires Swift 5.0. It also requires that the `Int` and `UInt` types be 64 bit types.

Its documentation is build with the DocC plugin and published on GitHub Pages at this location:

https://leif-ibsen.github.io/BigInt/documentation/bigint

The documentation is also available in the BigInt.doccarchive file.

Please note: Due to a bug in the DocC plugin, clicking on certain `BInt` and `BFraction` operators in GitHub Pages (f.ex. < and | ) will show the message

``````The page you're looking for can't be found.
``````

The BigInt.doccarchive file contains the correct documentation.

It is emphasized that it is only the documentation that's in error. The operators themselves work correctly.

### Description

• Swift Tools 5.9.0

### Dependencies

• None
Last updated: Mon Aug 05 2024 20:30:35 GMT-0900 (Hawaii-Aleutian Daylight Time)