fq_nmod_vec.h – vectors over finite fields (word-size characteristic)¶
Memory management¶
-
fq_nmod_struct *_fq_nmod_vec_init(slong len, const fq_nmod_ctx_t ctx)¶
Returns an initialised vector of
fq_nmod’s of given length.
-
void _fq_nmod_vec_clear(fq_nmod_struct *vec, slong len, const fq_nmod_ctx_t ctx)¶
Clears the entries of
(vec, len)and frees the space allocated forvec.
Randomisation¶
-
void _fq_nmod_vec_randtest(fq_nmod_struct *f, flint_rand_t state, slong len, const fq_nmod_ctx_t ctx)¶
Sets the entries of a vector of the given length to elements of the finite field.
Input and output¶
-
int _fq_nmod_vec_fprint(FILE *file, const fq_nmod_struct *vec, slong len, const fq_nmod_ctx_t ctx)¶
Prints the vector of given length to the stream
file. The format is the length followed by two spaces, then a space separated list of coefficients. If the length is zero, only \(0\) is printed.In case of success, returns a positive value. In case of failure, returns a non-positive value.
-
int _fq_nmod_vec_print(const fq_nmod_struct *vec, slong len, const fq_nmod_ctx_t ctx)¶
Prints the vector of given length to
stdout.For further details, see
_fq_nmod_vec_fprint().
Assignment and basic manipulation¶
-
void _fq_nmod_vec_set(fq_nmod_struct *vec1, const fq_nmod_struct *vec2, slong len2, const fq_nmod_ctx_t ctx)¶
Makes a copy of
(vec2, len2)intovec1.
-
void _fq_nmod_vec_swap(fq_nmod_struct *vec1, fq_nmod_struct *vec2, slong len2, const fq_nmod_ctx_t ctx)¶
Swaps the elements in
(vec1, len2)and(vec2, len2).
-
void _fq_nmod_vec_zero(fq_nmod_struct *vec, slong len, const fq_nmod_ctx_t ctx)¶
Zeros the entries of
(vec, len).
-
void _fq_nmod_vec_neg(fq_nmod_struct *vec1, const fq_nmod_struct *vec2, slong len2, const fq_nmod_ctx_t ctx)¶
Negates
(vec2, len2)and places it intovec1.
Comparison¶
-
int _fq_nmod_vec_equal(const fq_nmod_struct *vec1, const fq_nmod_struct *vec2, slong len, const fq_nmod_ctx_t ctx)¶
Compares two vectors of the given length and returns \(1\) if they are equal, otherwise returns \(0\).
-
int _fq_nmod_vec_is_zero(const fq_nmod_struct *vec, slong len, const fq_nmod_ctx_t ctx)¶
Returns \(1\) if
(vec, len)is zero, and \(0\) otherwise.
Addition and subtraction¶
-
void _fq_nmod_vec_add(fq_nmod_struct *res, const fq_nmod_struct *vec1, const fq_nmod_struct *vec2, slong len2, const fq_nmod_ctx_t ctx)¶
Sets
(res, len2)to the sum of(vec1, len2)and(vec2, len2).
-
void _fq_nmod_vec_sub(fq_nmod_struct *res, const fq_nmod_struct *vec1, const fq_nmod_struct *vec2, slong len2, const fq_nmod_ctx_t ctx)¶
Sets
(res, len2)to(vec1, len2)minus(vec2, len2).
Scalar multiplication and division¶
-
void _fq_nmod_vec_scalar_addmul_fq_nmod(fq_nmod_struct *vec1, const fq_nmod_struct *vec2, slong len2, const fq_nmod_t c, const fq_nmod_ctx_t ctx)¶
Adds
(vec2, len2)times \(c\) to(vec1, len2), where \(c\) is afq_nmod_t.
-
void _fq_nmod_vec_scalar_submul_fq_nmod(fq_nmod_struct *vec1, const fq_nmod_struct *vec2, slong len2, const fq_nmod_t c, const fq_nmod_ctx_t ctx)¶
Subtracts
(vec2, len2)times \(c\) from(vec1, len2), where \(c\) is afq_nmod_t.
Dot products¶
-
void _fq_nmod_vec_dot(fq_nmod_t res, const fq_nmod_struct *vec1, const fq_nmod_struct *vec2, slong len2, const fq_nmod_ctx_t ctx)¶
Sets
resto the dot product of (vec1,len) and (vec2,len).