fq_nmod_vec.h – vectors over finite fields (word-size characteristic)¶
Description.
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 * 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 ctx_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
res
to the dot product of (vec1
,len
) and (vec2
,len
).