File indexing completed on 2026-11-07 10:15:34
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012 #ifndef PADIC_TYPES_H
0013 #define PADIC_TYPES_H
0014
0015 #include "fmpz_types.h"
0016
0017 #ifdef __cplusplus
0018 extern "C" {
0019 #endif
0020
0021 typedef struct
0022 {
0023 fmpz u;
0024 slong v;
0025 slong N;
0026 } padic_struct;
0027
0028 typedef padic_struct padic_t[1];
0029
0030 enum padic_print_mode
0031 {
0032 PADIC_TERSE,
0033 PADIC_SERIES,
0034 PADIC_VAL_UNIT
0035 };
0036
0037 typedef struct
0038 {
0039 fmpz_t p;
0040 double pinv;
0041 fmpz * pow;
0042 slong min;
0043 slong max;
0044 enum padic_print_mode mode;
0045 } padic_ctx_struct;
0046
0047 typedef padic_ctx_struct padic_ctx_t[1];
0048
0049 typedef struct
0050 {
0051 slong n;
0052 fmpz * pow;
0053 } padic_inv_struct;
0054
0055 typedef padic_inv_struct padic_inv_t[1];
0056
0057 typedef struct
0058 {
0059 fmpz_mat_struct mat;
0060 slong val;
0061 slong N;
0062 } padic_mat_struct;
0063
0064 typedef padic_mat_struct padic_mat_t[1];
0065
0066 typedef struct
0067 {
0068 fmpz * coeffs;
0069 slong alloc;
0070 slong length;
0071 slong val;
0072 slong N;
0073 } padic_poly_struct;
0074
0075 typedef padic_poly_struct padic_poly_t[1];
0076
0077 #ifdef __cplusplus
0078 }
0079 #endif
0080
0081 #endif