update README
This commit is contained in:
parent
0e6df8c5e7
commit
273f56ac1d
85
README.md
85
README.md
@ -0,0 +1,85 @@
|
||||
# BigIntLua
|
||||
|
||||
Pure Lua library for working with big integers
|
||||
|
||||
|
||||
# Usage
|
||||
|
||||
```lua
|
||||
BigInt = require 'bigint'
|
||||
|
||||
-- constructor accepts a number
|
||||
a1 = BigInt(562949953421312)
|
||||
|
||||
-- or a string
|
||||
a2 = BigInt'562949953421312'
|
||||
|
||||
-- or a string with thousands separator of ',' or whitespace
|
||||
a3 = BigInt'562,949,953,421,312'
|
||||
a4 = BigInt'562 949 953 421 312'
|
||||
a1 == a2 --> true
|
||||
a1 == a3 --> true
|
||||
a3 == a4 --> true
|
||||
|
||||
|
||||
-- you can compare them
|
||||
a = BigInt'8,796,093,022,208'
|
||||
b = BigInt'562,949,953,421,312'
|
||||
c = BigInt'39,614,081,257,132,168,796,771,975,168'
|
||||
a == a1 --> true
|
||||
a <= a1 --> true
|
||||
a == b --> false
|
||||
a <= b --> true
|
||||
c > a --> true
|
||||
|
||||
-- NOTE: equality test works only with two BigInts
|
||||
a = BigInt'562949953421312'
|
||||
a == 562949953421312 --> false
|
||||
|
||||
-- NOTE: other comparisons between Lua Numbers and BigInts are ok
|
||||
a = BigInt'56294995342'
|
||||
a <= 56294995342 --> true
|
||||
a > 12323 --> true
|
||||
a >= 56294995342 --> true
|
||||
32423412312 < a --> true
|
||||
32423412312 > a --> false
|
||||
|
||||
-- four arithmetic operations
|
||||
a = BigInt'1,099,511,627,776' -- 2 ^ 40
|
||||
b = BigInt'1,125,899,906,842,624' -- 2 ^ 50
|
||||
a + b --> 1126999418470400
|
||||
a - b --> -1124800395214848
|
||||
a * b --> 1237940039285380274899124224
|
||||
a / b --> 0
|
||||
b / a --> 1024
|
||||
|
||||
-- negation
|
||||
a = BigInt'562949953421312'
|
||||
b = -a --> -562949953421312
|
||||
a + b --> 0
|
||||
|
||||
-- divmod
|
||||
a = BigInt'1,099,511,627,776' -- 2 ^ 40
|
||||
b = BigInt'1,125,899,906,842,625' -- 2 ^ 50 + 1
|
||||
b:divmod(b, a) --> 1024, 1
|
||||
|
||||
-- power
|
||||
a = BigInt(2)
|
||||
a ^ 95 --> 39614081257132168796771975168
|
||||
```
|
||||
|
||||
# TODO
|
||||
- Optional thousands separator in `tostring()` function.
|
||||
- GCD and LCD
|
||||
- Base conversion
|
||||
- Prime check
|
||||
- Prime factorization
|
||||
|
||||
|
||||
|
||||
# See also
|
||||
- [https://github.com/user-none/lua-nums]()
|
||||
- [https://github.com/empyreuma/bigint.lua]()
|
||||
- [https://github.com/thenumbernine/lua-bignumber]()
|
||||
- [https://github.com/A-Benlolo/BigInteger.lua]()
|
||||
|
Loading…
Reference in New Issue
Block a user