File indexing completed on 2026-11-07 10:15:15
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012 #ifndef FMPZ_MOD_VEC_H
0013 #define FMPZ_MOD_VEC_H
0014
0015 #ifdef FMPZ_MOD_VEC_INLINES_C
0016 #define FMPZ_MOD_VEC_INLINE
0017 #else
0018 #define FMPZ_MOD_VEC_INLINE static inline \
0019 error fmpz_mod_vec/inlines.c does not exist
0020 #endif
0021
0022 #include "fmpz_mod_types.h"
0023
0024 #ifdef __cplusplus
0025 extern "C" {
0026 #endif
0027
0028 void _fmpz_mod_vec_set_fmpz_vec(fmpz * A, const fmpz * B, slong len,
0029 const fmpz_mod_ctx_t ctx);
0030
0031 void _fmpz_mod_vec_get_fmpz_vec_smod(fmpz * res, const fmpz * vec, slong len,
0032 const fmpz_mod_ctx_t ctx);
0033
0034 void _fmpz_mod_vec_neg(fmpz * A, const fmpz * B, slong len,
0035 const fmpz_mod_ctx_t ctx);
0036
0037 void _fmpz_mod_vec_add(fmpz * a, const fmpz * b, const fmpz * c,
0038 slong n, const fmpz_mod_ctx_t ctx);
0039
0040 void _fmpz_mod_vec_sub(fmpz * a, const fmpz * b, const fmpz * c,
0041 slong n, const fmpz_mod_ctx_t ctx);
0042
0043 void _fmpz_mod_vec_scalar_mul_fmpz_mod(fmpz * A, const fmpz * B,
0044 slong len, const fmpz_t c, const fmpz_mod_ctx_t ctx);
0045
0046 void _fmpz_mod_vec_scalar_addmul_fmpz_mod(fmpz * A, const fmpz * B,
0047 slong len, const fmpz_t c, const fmpz_mod_ctx_t ctx);
0048
0049 void _fmpz_mod_vec_mul(fmpz * A, const fmpz * B, const fmpz * C,
0050 slong len, const fmpz_mod_ctx_t ctx);
0051
0052 void _fmpz_mod_vec_scalar_div_fmpz_mod(fmpz * A, const fmpz * B,
0053 slong len, const fmpz_t c, const fmpz_mod_ctx_t ctx);
0054
0055 void _fmpz_mod_vec_dot(fmpz_t d, const fmpz * A, const fmpz * B,
0056 slong len, const fmpz_mod_ctx_t ctx);
0057
0058 void _fmpz_mod_vec_dot_rev(fmpz_t r, const fmpz * a,
0059 const fmpz * b, slong len, const fmpz_mod_ctx_t ctx);
0060
0061 #ifdef __cplusplus
0062 }
0063 #endif
0064
0065 #endif