This repository has been archived by the owner on Jan 30, 2023. It is now read-only.
-
-
Notifications
You must be signed in to change notification settings - Fork 7
/
__init__.pxd
122 lines (95 loc) · 3.12 KB
/
__init__.pxd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
# distutils: language = c++
# distutils: extra_compile_args = -DNTL_ALL
# distutils: libraries = ec ntl pari gmpxx gmp m
# NOTE: eclib includes have specific dependencies and must be included
# in a specific order. That explains the various empty
# "cdef extern from" blocks below.
cdef extern from "eclib/vector.h":
ctypedef int scalar
cdef cppclass vec:
scalar operator[](long)
cdef extern from "eclib/matrix.h":
ctypedef int scalar
cdef cppclass mat:
mat()
mat(mat m)
scalar* get_entries()
scalar sub(long, long)
long nrows()
long ncols()
long rank()
mat addscalar(mat M, scalar)
from sage.libs.ntl.types cimport ZZ_c
ctypedef ZZ_c bigint
cdef extern from "eclib/interface.h":
int I2int(bigint)
cdef extern from "eclib/rat.h":
cdef cppclass rational:
rational()
rational(long num, long den)
cdef long rational_num "num"(rational q)
cdef long rational_den "den"(rational q)
cdef extern from "eclib/bigrat.h":
cdef cppclass bigrational:
pass
cdef bigint bigrational_num "num"(bigrational q)
cdef bigint bigrational_den "den"(bigrational q)
cdef extern from "eclib/isogs.h":
pass
cdef extern from "eclib/curve.h":
cdef cppclass Curve:
Curve(bigint aa1, bigint aa2, bigint aa3, bigint aa4, bigint aa6)
void getai(bigint a1, bigint a2, bigint a3, bigint a4, bigint a6)
cdef cppclass Curvedata:
Curvedata(Curve C, int m)
Curvedata(bigint a1, bigint a2, bigint a3, bigint a4, bigint a6,
int min_on_init)
void getai(bigint a1, bigint a2, bigint a3, bigint a4, bigint a6)
cdef cppclass CurveRed:
CurveRed(Curvedata CD)
bigint getconductor(CurveRed CR)
cdef extern from "eclib/descent.h":
cdef cppclass two_descent:
two_descent(Curvedata* curve,
int verb, int sel,
long firstlim, long secondlim,
long n_aux, int second_descent)
cdef cppclass mw:
mw(Curvedata* curve, int verb, int pp, int maxr)
cdef extern from "eclib/egr.h":
pass
cdef extern from "eclib/htconst.h":
pass
cdef extern from "eclib/moddata.h":
pass
cdef extern from "eclib/symb.h":
pass
cdef extern from "eclib/homspace.h":
cdef cppclass homspace:
long modulus
int plusflag # sign
int cuspidal
homspace(long n, int hp, int hcusp, int verbose)
int h1dim()
int h1cuspdim()
mat heckeop(long p, int dual, int display)
vec heckeop_col(long p, int j, int display)
long h1ncusps()
cdef extern from "eclib/oldforms.h":
pass
from libcpp.vector cimport vector
cdef extern from "eclib/newforms.h":
cdef cppclass newforms:
vector[newform] nflist
int verbose
int basisflag
long maxdepth
long cuspidal
long sign
newforms(long n, int disp)
void createfromcurve(int sign, CurveRed CR)
void display()
rational plus_modular_symbol(rational r)
rational minus_modular_symbol(rational r)
cdef cppclass newform:
newforms* nf