Skip to content
This repository was archived by the owner on Jan 30, 2023. It is now read-only.

Commit d1a3d23

Browse files
videlecMatthias Koeppe
authored and
Matthias Koeppe
committed
31069: flint declarations
1 parent 5cb72aa commit d1a3d23

File tree

5 files changed

+643
-6
lines changed

5 files changed

+643
-6
lines changed

src/sage/libs/flint/flint_wrap.h

+1
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
#include <flint/fmpq_mat.h>
3737
#include <flint/fmpq_poly.h>
3838
#include <flint/fmpz.h>
39+
#include <flint/fmpz_mod.h>
3940
#include <flint/fmpz_mat.h>
4041
#include <flint/fmpz_poly_mat.h>
4142
#include <flint/fmpz_mod_poly.h>

src/sage/libs/flint/fmpz_mod.pxd

+46
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
# distutils: libraries = flint
2+
# distutils: depends = flint/fmpz_mod.h
3+
4+
# flint/fmpz_mod.h
5+
cdef extern from "flint_wrap.h":
6+
void fmpz_mod_ctx_init(fmpz_mod_ctx_t ctx, const fmpz_t n)
7+
void fmpz_mod_ctx_init_ui(fmpz_mod_ctx_t ctx, ulong n)
8+
void fmpz_mod_ctx_clear(fmpz_mod_ctx_t ctx)
9+
10+
const fmpz * fmpz_mod_ctx_modulus(const fmpz_mod_ctx_t ctx)
11+
12+
void fmpz_mod_ctx_set_modulus(fmpz_mod_ctx_t ctx, const fmpz_t n)
13+
void fmpz_mod_ctx_set_modulus_ui(fmpz_mod_ctx_t ctx, ulong n)
14+
15+
int fmpz_mod_is_canonical(const fmpz_t a, const fmpz_mod_ctx_t ctx)
16+
void fmpz_mod_assert_canonical(const fmpz_t a, const fmpz_mod_ctx_t ctx)
17+
18+
int fmpz_mod_is_one(const fmpz_t a, const fmpz_mod_ctx_t ctx)
19+
void fmpz_mod_add(fmpz_t a, const fmpz_t b, const fmpz_t c, const fmpz_mod_ctx_t ctx)
20+
void fmpz_mod_sub(fmpz_t a, const fmpz_t b, const fmpz_t c, const fmpz_mod_ctx_t ctx)
21+
void fmpz_mod_neg(fmpz_t a, const fmpz_t b, const fmpz_mod_ctx_t ctx)
22+
23+
void fmpz_mod_mul(fmpz_t a, const fmpz_t b, const fmpz_t c, const fmpz_mod_ctx_t ctx)
24+
void fmpz_mod_inv(fmpz_t a, const fmpz_t b, const fmpz_mod_ctx_t ctx)
25+
26+
int fmpz_mod_divides(fmpz_t a, const fmpz_t b, const fmpz_t c, const fmpz_mod_ctx_t ctx)
27+
void fmpz_mod_pow_ui(fmpz_t a, const fmpz_t b, ulong pow, const fmpz_mod_ctx_t ctx)
28+
int fmpz_mod_pow_fmpz(fmpz_t a, const fmpz_t b, const fmpz_t pow, const fmpz_mod_ctx_t ctx)
29+
30+
void fmpz_mod_discrete_log_pohlig_hellman_init(fmpz_mod_discrete_log_pohlig_hellman_t L)
31+
32+
void fmpz_mod_discrete_log_pohlig_hellman_clear(fmpz_mod_discrete_log_pohlig_hellman_t L)
33+
34+
double fmpz_mod_discrete_log_pohlig_hellman_precompute_prime(
35+
fmpz_mod_discrete_log_pohlig_hellman_t L,
36+
const fmpz_t p)
37+
38+
void fmpz_mod_discrete_log_pohlig_hellman_run(
39+
fmpz_t x,
40+
const fmpz_mod_discrete_log_pohlig_hellman_t L,
41+
const fmpz_t y)
42+
43+
const fmpz * fmpz_mod_discrete_log_pohlig_hellman_primitive_root(
44+
fmpz_mod_discrete_log_pohlig_hellman_t L)
45+
46+
int fmpz_next_smooth_prime(fmpz_t a, const fmpz_t b)

0 commit comments

Comments
 (0)