Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download
241818 views
1
#ifndef _JACORDER_INCLUDE_
2
#define _JACORDER_INCLUDE_
3
4
#include <limits.h>
5
6
/*
7
Copyright 2007 Andrew V. Sutherland
8
9
This file is part of smalljac.
10
11
smalljac is free software: you can redistribute it and/or modify
12
it under the terms of the GNU General Public License as published by
13
the Free Software Foundation, either version 2 of the License, or
14
(at your option) any later version.
15
16
smalljac is distributed in the hope that it will be useful,
17
but WITHOUT ANY WARRANTY; without even the implied warranty of
18
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19
GNU General Public License for more details.
20
21
You should have received a copy of the GNU General Public License
22
along with smalljac. If not, see <http://www.gnu.org/licenses/>.
23
*/
24
25
/*
26
This module contains generic order computations for Jacobians using BSGS.
27
The detail are described in [SutherlandThesis] and [KedlayaSutherland2007].
28
29
Most of smalljac's life is spent in the function jac_parallel_search.
30
*/
31
32
#define JAC_INVALID_A1 LONG_MAX
33
34
struct a2tab_entry {
35
double a1;
36
double a2median;
37
double a2mae;
38
};
39
40
int jac_order (unsigned long *pP1, unsigned long Min, unsigned long Max, long a1, int *constraints, curve_t c[1], int fExponentOnly);
41
unsigned long jac_parallel_search (jac_t a[1], unsigned long M, unsigned long W, unsigned long Min, unsigned long Max, int tiny, int parity, curve_t c[1]);
42
int jac_search (mpz_t e[2], jac_t a[1], unsigned m, mpz_t Min, mpz_t Max, curve_t c[1]);
43
44
#endif
45
46