Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-11-07 10:15:34

0001 /*
0002     Copyright (C) 2011, 2012, 2013 Sebastian Pancratz
0003 
0004     This file is part of FLINT.
0005 
0006     FLINT is free software: you can redistribute it and/or modify it under
0007     the terms of the GNU Lesser General Public License (LGPL) as published
0008     by the Free Software Foundation; either version 3 of the License, or
0009     (at your option) any later version.  See <https://www.gnu.org/licenses/>.
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 /* PADIC_TYPES_H */