mpi/add mpi/clear-bit mpi/div mpi/flip-sign mpi/from-hex-str mpi/from-int mpi/from-mpi mpi/from-rng mpi/from-str mpi/gcd mpi/get-bit mpi/inverse-mod mpi/is-negative mpi/is-positive mpi/is-prime mpi/is-zero mpi/lshift mpi/mod-mul mpi/mul mpi/new mpi/num-bytes mpi/pow-mod mpi/rshift mpi/set-bit mpi/sub mpi/swap mpi/to-bin mpi/to-u32
(mpi/add mpi-obj x)
Add x to `mpi-obj` and return the new `mpi-obj`. `x` can be either `mpi-obj` or u32 number.
(mpi/clear-bit mpi-obj bit)
Clears the specified `bit` of `mpi-obj`. Returns `mpi-obj`.
(mpi/div mpi-obj-1 mpi-obj-2)
Divide `mpi-obj-1` by `mpi-obj-2`. Create new quotient `mpi-obj` and remainder `mpi-obj`. Return quotient `mpi-obj` and remainder `mpi-obj` in tuple.
(mpi/from-hex-str value)
Create an MPI object with a hex string `value`. Returns `mpi-obj`.
(mpi/from-int value)
Create an MPI object with an integer `value`. Returns `mpi-obj`.
(mpi/from-mpi mpi-obj)
Create an MPI object with an MPI object `mpi`. Returns new `mpi-obj`.
(mpi/from-rng rng bits)
Create a `bits` size random MPI object with `rng`. Returns `mpi-obj`.
(mpi/from-str value)
Create an MPI object with an integer string `value`. Returns `mpi-obj`.
(mpi/gcd mpi-obj other-mpi-obj)
Create new `mpi-obj` of the greatest common divisor of `mpi-obj` and `other-mpi-obj`.
(mpi/get-bit mpi-obj bit)
Returns 0 if the specified `bit` of `mpi-obj` is not set, 1 if it is set.
(mpi/inverse-mod mpi-obj modulus)
Create the inverse of `mpi-obj` modulo `modulus`, or nil if no inverse exists.Returns new `mpi-obj`.
(mpi/is-negative mpi-obj)
Return true if `mpi-obj` is less than zero, otherwise return false.
(mpi/is-positive mpi-obj)
Return true if `mpi-obj` is greater than or equal to zero. otherwise return false.
(mpi/is-prime mpi-obj rng &opt prob)
Return true if `mpi-obj` is prime, otherwise returns false. Default value of prob is 128.
(mpi/lshift mpi-obj shift)
Left shift by specified `shift` bit count. Return new `mpj-obj`.
(mpi/mod-mul mpi-obj other-mpi-obj modulus)
Create new `mpi-obj` of the multiplication product of `mpi-obj` and `other-mpi-obj` modulo `modulus`. Returns new `mpi-obj`.
(mpi/sub mpi-obj-1 mpi-obj-2)
Multiply two `mpi-obj` and return the new `mpi-obj` as a result.
(mpi/num-bytes mpi-obj)
Return the number of significant bytes in the `mpi-obj`.
(mpi/pow-mod mpi-obj exponent modulus)
Create new `mpi-obj` to the `exponent` `mpi-obj` power modulo `modulus` `mpi-obj`.Returns new `mpi-obj`.
(mpi/rshift mpi-obj shift)
Right shift by specified `shift` bit count. Return new `mpj-obj`.
(mpi/set-bit mpi-obj bit)
Set the specified `bit` of `mpi-obj`. Returns `mpi-obj`.
(mpi/sub mpi-obj x)
Subtract x from `mpi-obj` and return the new `mpi-obj`. `x` can be either `mpi-obj` or u32 number.
(mpi/swap mpi-obj-1 mpi-obj-2)
Swap `mpi-obj-1` and `mpi-obj-2` values, Return `mpi-obj-1`.
(mpi/to-u32 mpi-obj)
Convert the `mpi-obj` to a uint32_t, if possible. Fails if `mpi-obj` is negative or too large.