1use crate::deps::*;
4use crate::flint::*;
5
6
7extern "C" {
8 pub fn _d_vec_init(len: slong) -> *mut f64;
9 pub fn _d_vec_clear(vec: *mut f64);
10 pub fn _d_vec_randtest(
11 f: *mut f64,
12 state: *mut flint_rand_struct,
13 len: slong,
14 minexp: slong,
15 maxexp: slong,
16 );
17 pub fn _d_vec_set(vec1: *mut f64, vec2: *const f64, len2: slong);
18 pub fn _d_vec_zero(vec: *mut f64, len: slong);
19 pub fn _d_vec_equal(vec1: *const f64, vec2: *const f64, len: slong) -> libc::c_int;
20 pub fn _d_vec_approx_equal(
21 vec1: *const f64,
22 vec2: *const f64,
23 len: slong,
24 eps: f64,
25 ) -> libc::c_int;
26 pub fn _d_vec_is_zero(vec: *const f64, len: slong) -> libc::c_int;
27 pub fn _d_vec_is_approx_zero(vec: *const f64, len: slong, eps: f64) -> libc::c_int;
28 pub fn _d_vec_add(res: *mut f64, vec1: *const f64, vec2: *const f64, len2: slong);
29 pub fn _d_vec_sub(res: *mut f64, vec1: *const f64, vec2: *const f64, len2: slong);
30 #[link_name = "_d_vec_mul_2exp__extern"]
31 pub fn _d_vec_mul_2exp(res: *mut f64, x: *const f64, len: slong, e: libc::c_int);
32 pub fn _d_vec_dot(vec1: *const f64, vec2: *const f64, len2: slong) -> f64;
33 pub fn _d_vec_norm(vec: *const f64, len: slong) -> f64;
34 pub fn _d_vec_dot_heuristic(
35 vec1: *const f64,
36 vec2: *const f64,
37 len2: slong,
38 err: *mut f64,
39 ) -> f64;
40 pub fn _d_vec_dot_thrice(vec1: *const f64, vec2: *const f64, len2: slong, err: *mut f64)
41 -> f64;
42}