Back to home page

EIC code displayed by LXR

 
 

    


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

0001 /*
0002     Copyright (C) 2021 Daniel Schultz
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 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