Let us walk on the 3-isogeny graph
Loading...
Searching...
No Matches
steps.c
Go to the documentation of this file.
1
#include "
steps.h
"
2
3
static
int
steps_overridden;
4
static
int64_t
steps_override_bs;
5
static
int64_t
steps_override_gs;
6
7
void
steps_override
(
int64_t
bs
,
int64_t
gs
)
8
{
9
steps_overridden = 1;
10
steps_override_bs =
bs
;
11
steps_override_gs =
gs
;
12
}
13
14
void
steps
(
int64_t
*
bs
,
int64_t
*
gs
,
int64_t
l
)
15
{
16
int64_t
b,
g
;
17
18
if
(steps_overridden) {
19
b = steps_override_bs;
20
g
= steps_override_gs;
21
}
else
if
(!
steps_guess
(&b,&
g
,
l
)) {
22
b = 0;
23
do
{
24
b += 2;
25
g
= (
l
-1)/(4*b);
26
}
while
(
g
>= b);
27
}
28
29
/* enforce rules for b,g: */
30
31
if
(b < 0) b = 0;
32
if
(
g
< 0)
g
= 0;
33
34
if
(b&1) ++b;
35
if
(b)
36
if
(
g
> (
l
-1)/(4*b))
37
g
= (
l
-1)/(4*b);
38
39
if
(!
g
) b = 0;
40
if
(!b)
g
= 0;
41
42
*
bs
= b;
43
*
gs
=
g
;
44
}
i
for i
Definition
prime_search.m:10
steps.h
steps_guess
#define steps_guess
Definition
steps.h:9
steps
#define steps
Definition
steps.h:7
steps_override
#define steps_override
Definition
steps.h:8
dCTIDH
src
common
steps.c
Generated by
1.9.8