#ifndef NMOD_TYPES_H
#define NMOD_TYPES_H
#include "flint.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef struct
{
ulong * entries;
slong r;
slong c;
ulong ** rows;
nmod_t mod;
}
nmod_mat_struct;
typedef nmod_mat_struct nmod_mat_t[1];
typedef struct
{
nn_ptr coeffs;
slong alloc;
slong length;
nmod_t mod;
}
nmod_poly_struct;
typedef nmod_poly_struct nmod_poly_t[1];
typedef struct
{
nmod_poly_struct * p;
slong *exp;
slong num;
slong alloc;
}
nmod_poly_factor_struct;
typedef nmod_poly_factor_struct nmod_poly_factor_t[1];
typedef struct
{
nmod_poly_struct * entries;
slong r;
slong c;
nmod_poly_struct ** rows;
ulong modulus;
}
nmod_poly_mat_struct;
typedef nmod_poly_mat_struct nmod_poly_mat_t[1];
typedef struct
{
ulong * coeffs;
ulong * exps;
slong length;
flint_bitcnt_t bits;
slong coeffs_alloc;
slong exps_alloc;
} nmod_mpoly_struct;
typedef nmod_mpoly_struct nmod_mpoly_t[1];
typedef struct
{
ulong constant;
nmod_mpoly_struct * poly;
fmpz * exp;
slong num;
slong alloc;
}
nmod_mpoly_factor_struct;
typedef nmod_mpoly_factor_struct nmod_mpoly_factor_t[1];
#ifdef __cplusplus
}
#endif
#endif