flint_sys/
fq_zech_embed.rs1#![allow(non_camel_case_types)]
2
3use crate::deps::*;
6use crate::fq_zech::{fq_zech_ctx_struct, fq_zech_struct};
7use crate::nmod_mat::nmod_mat_struct;
8use crate::nmod_poly::nmod_poly_struct;
9
10extern "C" {
11 pub fn fq_zech_embed_gens(
12 gen_sub: *mut fq_zech_struct,
13 gen_sup: *mut fq_zech_struct,
14 minpoly: *mut nmod_poly_struct,
15 sub_ctx: *mut fq_zech_ctx_struct,
16 sup_ctx: *mut fq_zech_ctx_struct,
17 );
18 pub fn _fq_zech_embed_gens_naive(
19 gen_sub: *mut fq_zech_struct,
20 gen_sup: *mut fq_zech_struct,
21 minpoly: *mut nmod_poly_struct,
22 sub_ctx: *mut fq_zech_ctx_struct,
23 sup_ctx: *mut fq_zech_ctx_struct,
24 );
25 pub fn _fq_zech_embed_gens_allombert(
26 gen_sub: *mut fq_zech_struct,
27 gen_sup: *mut fq_zech_struct,
28 minpoly: *mut nmod_poly_struct,
29 sub_ctx: *mut fq_zech_ctx_struct,
30 sup_ctx: *mut fq_zech_ctx_struct,
31 );
32 pub fn fq_zech_embed_matrices(
33 embed: *mut nmod_mat_struct,
34 project: *mut nmod_mat_struct,
35 gen_sub: *mut fq_zech_struct,
36 sub_ctx: *mut fq_zech_ctx_struct,
37 gen_sup: *mut fq_zech_struct,
38 sup_ctx: *mut fq_zech_ctx_struct,
39 gen_minpoly: *mut nmod_poly_struct,
40 );
41 pub fn fq_zech_embed_trace_matrix(
42 res: *mut nmod_mat_struct,
43 basis: *mut nmod_mat_struct,
44 sub_ctx: *mut fq_zech_ctx_struct,
45 sup_ctx: *mut fq_zech_ctx_struct,
46 );
47 pub fn fq_zech_embed_composition_matrix_sub(
48 matrix: *mut nmod_mat_struct,
49 gen: *mut fq_zech_struct,
50 ctx: *mut fq_zech_ctx_struct,
51 trunc: mp_limb_signed_t,
52 );
53 pub fn fq_zech_embed_composition_matrix(
54 matrix: *mut nmod_mat_struct,
55 gen: *mut fq_zech_struct,
56 ctx: *mut fq_zech_ctx_struct,
57 );
58 pub fn fq_zech_embed_mul_matrix(
59 matrix: *mut nmod_mat_struct,
60 gen: *mut fq_zech_struct,
61 ctx: *mut fq_zech_ctx_struct,
62 );
63 pub fn fq_zech_embed_mono_to_dual_matrix(
64 res: *mut nmod_mat_struct,
65 ctx: *mut fq_zech_ctx_struct,
66 );
67 pub fn fq_zech_embed_dual_to_mono_matrix(
68 res: *mut nmod_mat_struct,
69 ctx: *mut fq_zech_ctx_struct,
70 );
71 pub fn fq_zech_modulus_pow_series_inv(
72 res: *mut nmod_poly_struct,
73 ctx: *mut fq_zech_ctx_struct,
74 trunc: mp_limb_signed_t,
75 );
76 pub fn fq_zech_modulus_derivative_inv(
77 m_prime: *mut fq_zech_struct,
78 m_prime_inv: *mut fq_zech_struct,
79 ctx: *mut fq_zech_ctx_struct,
80 );
81}