File indexing completed on 2026-11-07 10:15:21
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012 #ifndef FQ_ZECH_TYPES_H
0013 #define FQ_ZECH_TYPES_H
0014
0015 #include "fq_nmod_types.h"
0016
0017 #ifdef __cplusplus
0018 extern "C" {
0019 #endif
0020
0021 typedef struct
0022 {
0023 ulong value;
0024 }
0025 fq_zech_struct;
0026
0027 typedef fq_zech_struct fq_zech_t[1];
0028
0029 typedef struct
0030 {
0031 ulong qm1;
0032 ulong qm1o2;
0033 ulong qm1opm1;
0034 ulong p;
0035 double ppre;
0036 ulong prime_root;
0037 ulong * zech_log_table;
0038 ulong * prime_field_table;
0039 ulong * eval_table;
0040
0041 fq_nmod_ctx_struct * fq_nmod_ctx;
0042 int owns_fq_nmod_ctx;
0043 int is_conway;
0044 }
0045 fq_zech_ctx_struct;
0046
0047 typedef fq_zech_ctx_struct fq_zech_ctx_t[1];
0048
0049 typedef struct
0050 {
0051 fq_zech_struct * entries;
0052 slong r;
0053 slong c;
0054 slong stride;
0055 }
0056 fq_zech_mat_struct;
0057
0058 typedef fq_zech_mat_struct fq_zech_mat_t[1];
0059
0060 typedef struct
0061 {
0062 fq_zech_struct * coeffs;
0063 slong alloc;
0064 slong length;
0065 }
0066 fq_zech_poly_struct;
0067
0068 typedef fq_zech_poly_struct fq_zech_poly_t[1];
0069
0070 typedef struct
0071 {
0072 fq_zech_poly_struct * poly;
0073 slong * exp;
0074 slong num;
0075 slong alloc;
0076 }
0077 fq_zech_poly_factor_struct;
0078
0079 typedef fq_zech_poly_factor_struct fq_zech_poly_factor_t[1];
0080
0081 #ifdef __cplusplus
0082 }
0083 #endif
0084
0085 #endif