flint_sys/
fq_zech_embed.rs

1#![allow(non_camel_case_types)]
2
3//! *See the [FLINT documentation](http://flintlib.org/doc/fq_zech_embed.html).
4
5use 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}