mirror of
https://github.com/vale981/arb
synced 2025-03-06 01:41:39 -05:00
use dlog_once in conrey_log (instead of bsgs)
This commit is contained in:
parent
0c25431cdf
commit
32cb8c9db0
1 changed files with 5 additions and 6 deletions
|
@ -19,7 +19,7 @@
|
||||||
void
|
void
|
||||||
acb_dirichlet_conrey_log(acb_dirichlet_conrey_t x, const acb_dirichlet_group_t G, ulong m)
|
acb_dirichlet_conrey_log(acb_dirichlet_conrey_t x, const acb_dirichlet_group_t G, ulong m)
|
||||||
{
|
{
|
||||||
ulong k, pk, gk;
|
slong k;
|
||||||
/* even part */
|
/* even part */
|
||||||
if (G->neven >= 1)
|
if (G->neven >= 1)
|
||||||
{
|
{
|
||||||
|
@ -37,15 +37,14 @@ acb_dirichlet_conrey_log(acb_dirichlet_conrey_t x, const acb_dirichlet_group_t G
|
||||||
/* odd part */
|
/* odd part */
|
||||||
for (k = G->neven; k < G->num; k++)
|
for (k = G->neven; k < G->num; k++)
|
||||||
{
|
{
|
||||||
if (G->P[k].dlog == NULL)
|
acb_dirichlet_prime_group_struct P = G->P[k];
|
||||||
|
if (P.dlog == NULL)
|
||||||
{
|
{
|
||||||
pk = G->P[k].pe.n;
|
x->log[k] = dlog_once(m % P.pe.n, P.g, P.pe, P.phi);
|
||||||
gk = G->P[k].g;
|
|
||||||
x->log[k] = n_discrete_log_bsgs(m % pk, gk, pk);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
x->log[k] = dlog_precomp(G->P[k].dlog, m % G->P[k].pe.n);
|
x->log[k] = dlog_precomp(P.dlog, m % P.pe.n);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* keep value m */
|
/* keep value m */
|
||||||
|
|
Loading…
Add table
Reference in a new issue