26 #if !defined(_SPANDSP_VECTOR_INT_H_)
27 #define _SPANDSP_VECTOR_INT_H_
29 #if defined(__cplusplus)
34 static __inline__
void vec_copyi(
int z[],
const int x[],
int n)
36 memcpy(z, x, n*
sizeof(z[0]));
40 static __inline__
void vec_copyi16(int16_t z[],
const int16_t x[],
int n)
42 memcpy(z, x, n*
sizeof(z[0]));
46 static __inline__
void vec_copyi32(int32_t z[],
const int32_t x[],
int n)
48 memcpy(z, x, n*
sizeof(z[0]));
52 static __inline__
void vec_movei(
int z[],
const int x[],
int n)
54 memmove(z, x, n*
sizeof(z[0]));
58 static __inline__
void vec_movei16(int16_t z[],
const int16_t x[],
int n)
60 memmove(z, x, n*
sizeof(z[0]));
64 static __inline__
void vec_movei32(int32_t z[],
const int32_t x[],
int n)
66 memmove(z, x, n*
sizeof(z[0]));
70 static __inline__
void vec_zeroi(
int z[],
int n)
72 memset(z, 0, n*
sizeof(z[0]));
76 static __inline__
void vec_zeroi16(int16_t z[],
int n)
78 memset(z, 0, n*
sizeof(z[0]));
82 static __inline__
void vec_zeroi32(int32_t z[],
int n)
84 memset(z, 0, n*
sizeof(z[0]));
88 static __inline__
void vec_seti(
int z[],
int x,
int n)
92 for (i = 0; i < n; i++)
97 static __inline__
void vec_seti16(int16_t z[], int16_t x,
int n)
101 for (i = 0; i < n; i++)
106 static __inline__
void vec_seti32(int32_t z[], int32_t x,
int n)
110 for (i = 0; i < n; i++)
120 SPAN_DECLARE(int32_t)
vec_dot_prodi16(
const int16_t x[],
const int16_t y[],
int n);
131 SPAN_DECLARE(
void) vec_lmsi16(
const int16_t x[], int16_t y[],
int n, int16_t error);
133 SPAN_DECLARE(
void) vec_circular_lmsi16(
const int16_t x[], int16_t y[],
int n,
int pos, int16_t error);
144 SPAN_DECLARE(int32_t)
vec_min_maxi16(
const int16_t x[],
int n, int16_t out[]);
146 static __inline__
int vec_norm2i16(
const int16_t *vec,
int len)
152 for (i = 0; i < len; i++)
153 sum += vec[i]*vec[i];
158 static __inline__
void vec_sari16(int16_t *vec,
int len,
int shift)
162 for (i = 0; i < len; i++)
167 static __inline__
int vec_max_bitsi16(
const int16_t *vec,
int len)
175 for (i = 0; i < len; i++)
191 #if defined(__cplusplus)
int32_t vec_min_maxi16(const int16_t x[], int n, int16_t out[])
Find the minimum and maximum values in an int16_t vector.
Definition: vector_int.c:287
int32_t vec_dot_prodi16(const int16_t x[], const int16_t y[], int n)
Find the dot product of two int16_t vectors.
Definition: vector_int.c:50
int32_t vec_circular_dot_prodi16(const int16_t x[], const int16_t y[], int n, int pos)
Find the dot product of two int16_t vectors, where the first is a circular buffer with an offset for ...
Definition: vector_int.c:261