numtheory(deprecated)
mlog
discrete logarithm
index
Calling Sequence
Parameters
Description
Examples
mlog(x, a, n)
mlog(x, a, n, 'c')
mlog(x, a, n, m)
mlog(x, a, n, 'c', m)
index(x, a, n)
index(x, a, n, 'c')
index(x, a, n, m)
index(x, a, n, 'c', m)
x, a, n
-
integers
c
(optional) name of variable
m
(optional) equation of the form method=value
Important: The numtheory package has been deprecated. Use the superseding command NumberTheory[ModularLog] instead.
The function mlog computes the discrete logarithm (also called the index) of x to the base a (mod n). It finds an integer y such that ay=xmodn if possible, otherwise it returns FAIL.
When the optional argument c is provided, it is to be the fourth argument. If c is present in the calling sequence, the characteristic of the domain of the answer will be assigned to it. In this case all of the solutions to the logarithm are mlog(x, a, n) + k * c for any non-negative integer k.
When the optional argument m is provided, it must be the final argument in the calling sequence. This argument indicates the solution method that the user wishes to be employed. There are three possible choices for this parameter: method=shanks, which forces Shanks' Baby-Step Giant-Step algorithm to be employed in solving mlog(x, a, n); method=indcalc, which forces mlog(x, a, n) to employ the use of the Index Calculus method; or method=optimal, which automatically chooses the method based on the size of the problem. If no method is specified by the user, the default is method=optimal.
If x and n are coprime and a is a primitive root of n, then there is a unique solution of logarithm of x to the base a modulo phi(n).
with⁡numtheory:
mlog⁡9,4,11
3
mlog⁡5,2,7,c
FAIL
x≔mlog⁡17,13,101,c
x≔5
print⁡`all the solutions of logarithm are`
all the solutions of logarithm are
x+c⁢k
5+50⁢k
φ⁡101
100
index⁡15,primroot⁡47,47,c,c
21,46
φ⁡47
46
infolevelmlog≔4
mlog⁡1441,5,10007,method=shanks
mlog: "using Shanks method to compute log[a](x) mod p" mlog: "where n=10007, a=25, and x=1441."
5000
mlog⁡1441,5,10007,method=indcalc
mlog: "using the indexed calculus method to compute log[a](x) mod n" mlog: "where n=10007, a=5, and x=1441." mlog: "found new equation 1 out of 4" mlog: "found new equation 2 out of 4" mlog: "found new equation 3 out of 4" mlog: "found new equation 4 out of 4"
See Also
NumberTheory[ModularLog]
numtheory(deprecated)[primroot]
Download Help Document