Testing latest pari + WASM + node.js... and it works?! Wow.
License: GPL3
ubuntu2004
Function: fflog Section: number_theoretical C-Name: fflog Prototype: GGDG Help: fflog(x,g,{o}): return the discrete logarithm of the finite field element x in base g. If present, o must represent the multiplicative order of g. If no o is given, assume that g is a primitive root. Doc: discrete logarithm of the finite field element $x$ in base $g$, i.e.~an $e$ in $\Z$ such that $g^e = o$. If present, $o$ represents the multiplicative order of $g$, see \secref{se:DLfun}; the preferred format for this parameter is \kbd{[ord, factor(ord)]}, where \kbd{ord} is the order of $g$. It may be set as a side effect of calling \tet{ffprimroot}. The result is undefined if $e$ does not exist. This function uses \item a combination of generic discrete log algorithms (see \tet{znlog}) \item a cubic sieve index calculus algorithm for large fields of degree at least $5$. \item Coppersmith's algorithm for fields of characteristic at most $5$. \bprog ? t = ffgen(ffinit(7,5)); ? o = fforder(t) %2 = 5602 \\@com \emph{not} a primitive root. ? fflog(t^10,t) %3 = 10 ? fflog(t^10,t, o) %4 = 10 ? g = ffprimroot(t, &o); ? o \\ order is 16806, bundled with its factorization matrix %6 = [16806, [2, 1; 3, 1; 2801, 1]] ? fforder(g, o) %7 = 16806 ? fflog(g^10000, g, o) %8 = 10000 @eprog Function: _Flxq_log_Coppersmith_worker C-Name: Flxq_log_Coppersmith_worker Prototype: GLGG Section: programming/internals Help: Flxq_log_Coppersmith_worker: worker for Flxq_log_Coppersmith Function: _F2xq_log_Coppersmith_worker C-Name: F2xq_log_Coppersmith_worker Prototype: GLGG Section: programming/internals Help: F2xq_log_Coppersmith_worker: worker for F2xq_log_Coppersmith Function: _Fp_log_sieve_worker C-Name: Fp_log_sieve_worker Prototype: LLGGGGGG Section: programming/internals Help: Fp_log_sieve_worker: worker for Fp_log_sieve