numtheory(deprecated)/mlog - Maple Help
For the best experience, we recommend viewing online help using Google Chrome or Microsoft Edge.

Online Help

All Products    Maple    MapleSim


Home : Support : Online Help : numtheory(deprecated)/mlog

numtheory(deprecated)

  

mlog

  

discrete logarithm

  

index

  

index

 

Calling Sequence

Parameters

Description

Examples

Calling Sequence

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)

Parameters

x, a, n

-

integers

c

-

(optional) name of variable

m

-

(optional) equation of the form method=value

Description

• 

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).

Examples

Important: The numtheory package has been deprecated.  Use the superseding command NumberTheory[ModularLog] instead.

withnumtheory:

mlog9,4,11

3

(1)

mlog5,2,7,c

FAIL

(2)

c

3

(3)

xmlog17,13,101,c

x5

(4)

print`all the solutions of logarithm are`

all the solutions of logarithm are

(5)

x+ck

5+50k

(6)

φ101

100

(7)

index15,primroot47,47,c,c

21,46

(8)

φ47

46

(9)

infolevelmlog4

infolevelmlog4

(10)

mlog1441,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

(11)

mlog1441,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"

5000

(12)

See Also

NumberTheory[ModularLog]

numtheory(deprecated)[primroot]