Back to home page

EIC code displayed by LXR

 
 

    


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

0001 /*
0002     Copyright (C) 2023 Albin Ahlbäck
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 ARF_TYPES_H
0013 #define ARF_TYPES_H
0014 
0015 #include "flint.h"
0016 
0017 #ifdef __cplusplus
0018 extern "C" {
0019 #endif
0020 
0021 /* Note: may also be hardcoded in a few places. */
0022 #define ARF_NOPTR_LIMBS 2
0023 
0024 typedef struct
0025 {
0026     ulong d[ARF_NOPTR_LIMBS];
0027 }
0028 mantissa_noptr_struct;
0029 
0030 typedef struct
0031 {
0032     slong alloc;
0033     nn_ptr d;
0034 }
0035 mantissa_ptr_struct;
0036 
0037 typedef union
0038 {
0039     mantissa_noptr_struct noptr;
0040     mantissa_ptr_struct ptr;
0041 }
0042 mantissa_struct;
0043 
0044 typedef struct
0045 {
0046     fmpz exp;
0047     slong size;
0048     mantissa_struct d;
0049 }
0050 arf_struct;
0051 
0052 typedef arf_struct arf_t[1];
0053 typedef arf_struct * arf_ptr;
0054 typedef const arf_struct * arf_srcptr;
0055 
0056 typedef struct
0057 {
0058     arf_struct a;
0059     arf_struct b;
0060 }
0061 arf_interval_struct;
0062 
0063 typedef arf_interval_struct arf_interval_t[1];
0064 typedef arf_interval_struct * arf_interval_ptr;
0065 typedef const arf_interval_struct * arf_interval_srcptr;
0066 
0067 #ifdef __cplusplus
0068 }
0069 #endif
0070 
0071 #endif /* ARF_TYPES_H */