*  (mod &rest args)Multiply <args> in Mod <mod> arithmetic.
Example: (rsm.mod:* 3 2 5)
1
+  (mod &rest args)Add <args> in Mod <mod> arithmetic.
Example: (rsm.mod:+ 3 3 5)
2
^  (b n mod &key (e-phi 0))Raise <b> to the <n>th power mod <mod> by repeated squaring. If <e-phi>
is non zero, use the generalization of Fermat's little theorem:
b^phi(mod) = 1 mod mod, when the gcd of b and mod is 1. The theorem is
used to replace b^n with b^r where r = mod(n, phi(mod)) and phi is
the Euler Phi function.
Example: (rsm.mod:^ 213317 527131763 173)
170
Example: (rsm.mod:^ 7 2134145213317 33 :e-phi 20)
28
euler-phi  (n)Computes the Euler Phi function of <n>.
Example: (rsm.mod:euler-phi 15)
8
factors  (n &key (no-dups t))Computes and returns a list of the primes factors of <n>. If <no-dups> is
true, then no multiple entries of a factor are returned.
Example: (rsm.mod:factors 100)
(2 5)
Example: (rsm.mod:factors 100 :no-dups nil)
(2 2 5 5)
gcd-with-pair  (n m)Returns two values: The gcd of <n> and <m>, and the list (r s) such that
r * n + s * m = gcd(n,m).
Example: (rsm.mod:gcd-with-pair 15 21)
3
(3 -2)
has-inverse-p  (a n)Does <a> have an inverse in Z mod <n>?
Example: (rsm.mod:has-inverse-p 10 100)
nil
inverse  (a n &optional (error nil) (not-invert-return 0))Finds the inverse of <a> in Z mod <n>. If <a> inverse does not exist,
an error is thrown if <error> is non nil. If <error> is nil, then
<not-invert-return> is returned.
Example: (rsm.mod:inverse 21 100)
81
ppow  (b n p)Raise <b> to the <n>th power in the field Z mod <p>. Here <p> must be prime.
Example: (rsm.mod:ppow 12 100 7)
2
rational-approx  (number &optional (epsilon nil))Find a simple rational approximation to <number> within <epsilon>.
Example: (rsm.mod:rational-approx pi 0.0000003)
355/113
solve-congruence-system  (as ms)Use the Chinese remainder theorem to solve for x, the system of
congruences: x = as_i mod ms_i. The moduli, <ms>, must all be pairwise
relatively prime. x will be unique in Z mod (product of <ms>'s).
Example: (rsm.mod:solve-congruence-system '(1 2 3) '(2 3 5))
23 |