Hello GAP forum:
I have a student who seems to be interested in
programming the discrete log in GAP for a semester project.
The algorithm the LogMod function uses can be obtained from
Print(LogMod):
function ( n, r, m )
local x, l;
n := n mod m;
x := 1;
l := 0;
while x <> n do
x := x * r mod m;
l := l + 1;
if l = m then
return fail;
fi;
od;
return l;
This looks pretty simple. Would an implementation of
the baby-step giant-step be useful? I remember a recent post
(which I cannot find in the archives or in my saved forum
emails, unfortunately) but baby-step giant-step wasn't mentioned,
if I remember correctly.
- David Joyner
--
Prof David Joyner, Mathematics Department
U. S. Naval Academy, Annapolis, MD 21402
phone: (410) 293-6738