mpf_vec.h – vectors of MPF floating-point numbers¶
Memory management¶
-
mpf *
_mpf_vec_init
(slong len)¶ Returns a vector of the given length of initialised
mpf
’s with at least the given precision.
-
void
_mpf_vec_clear
(mpf * vec, slong len)¶ Clears the given vector.
Randomisation¶
-
void
_mpf_vec_randtest
(mpf * f, flint_rand_t state, slong len, mp_bitcnt_t bits)¶ Sets the entries of a vector of the given length to random numbers in the interval \([0, 1)\) with
bits
significant bits in the mantissa or less if their precision is smaller.
Assignment and basic manipulation¶
-
void
_mpf_vec_zero
(mpf * vec, slong len)¶ Zeros the vector
(vec, len)
.
-
void
_mpf_vec_set
(mpf * vec1, const mpf * vec2, slong len2)¶ Copies the vector
vec2
of the given length intovec1
. A check is made to ensurevec1
andvec2
are different.
Comparison¶
-
int
_mpf_vec_equal
(const mpf * vec1, const mpf * vec2, slong len)¶ Compares two vectors of the given length and returns \(1\) if they are equal, otherwise returns \(0\).
-
int
_mpf_vec_is_zero
(const mpf * vec, slong len)¶ Returns \(1\) if
(vec, len)
is zero, and \(0\) otherwise.
-
int
_mpf_vec_approx_equal
(const mpf * vec1, const mpf * vec2, slong len, mp_bitcnt_t bits)¶ Compares two vectors of the given length and returns \(1\) if the first
bits
bits of their entries are equal, otherwise returns \(0\).
Addition and subtraction¶
-
void
_mpf_vec_add
(mpf * res, const mpf * vec1, const mpf * vec2, slong len2)¶ Adds the given vectors of the given length together and stores the result in
res
.
-
void
_mpf_vec_sub
(mpf * res, const mpf * vec1, const mpf * vec2, slong len2)¶ Sets
(res, len2)
to(vec1, len2)
minus(vec2, len2)
.
Scalar multiplication¶
-
void
_mpf_vec_scalar_mul_mpf
(mpf * res, const mpf * vec, slong len, mpf_t c)¶ Multiplies the vector with given length by the scalar \(c\) and sets
res
to the result.
-
void
_mpf_vec_scalar_mul_2exp
(mpf * res, const mpf * vec, slong len, mp_bitcnt_t exp)¶ Multiplies the given vector of the given length by
2^exp
.
Dot product and norm¶
-
void
_mpf_vec_dot
(mpf_t res, const mpf * vec1, const mpf * vec2, slong len2)¶ Sets
res
to the dot product of(vec1, len2)
with(vec2, len2)
.
-
void
_mpf_vec_norm
(mpf_t res, mpf * vec, slong len)¶ Sets
res
to the sqaure of the Euclidean norm of(vec, len)
.
-
int
_mpf_vec_dot2
(mpf_t res, const mpf * vec1, const mpf * vec2, slong len2, mp_bitcnt_t prec)¶ Sets
res
to the dot product of(vec1, len2)
with(vec2, len2)
. The temporary variable used has its precision set to be at leastprec
bits. Returns 0 if a probable cancellation is detected, and otherwise returns a non-zero value.
-
void
_mpf_vec_norm2
(mpf_t res, mpf * vec, slong len, mp_bitcnt_t prec)¶ Sets
res
to the sqaure of the Euclidean norm of(vec, len)
. The temporary variable used has its precision set to be at leastprec
bits.