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_zeroi(
int z[],
int n)
54 memset(z, 0, n*
sizeof(z[0]));
58 static __inline__
void vec_zeroi16(int16_t z[],
int n)
60 memset(z, 0, n*
sizeof(z[0]));
64 static __inline__
void vec_zeroi32(int32_t z[],
int n)
66 memset(z, 0, n*
sizeof(z[0]));
70 static __inline__
void vec_seti(
int z[],
int x,
int n)
74 for (i = 0; i < n; i++)
79 static __inline__
void vec_seti16(int16_t z[], int16_t x,
int n)
83 for (i = 0; i < n; i++)
88 static __inline__
void vec_seti32(int32_t z[], int32_t x,
int n)
92 for (i = 0; i < n; i++)
102 SPAN_DECLARE(int32_t)
vec_dot_prodi16(
const int16_t x[],
const int16_t y[],
int n);
113 SPAN_DECLARE(
void) vec_lmsi16(
const int16_t x[], int16_t y[],
int n, int16_t error);
115 SPAN_DECLARE(
void) vec_circular_lmsi16(
const int16_t x[], int16_t y[],
int n,
int pos, int16_t error);
126 SPAN_DECLARE(int32_t)
vec_min_maxi16(
const int16_t x[],
int n, int16_t out[]);
128 static __inline__
int vec_norm2i16(
const int16_t *vec,
int len)
134 for (i = 0; i < len; i++)
135 sum += vec[i]*vec[i];
140 static __inline__
void vec_sari16(int16_t *vec,
int len,
int shift)
144 for (i = 0; i < len; i++)
149 static __inline__
int vec_max_bitsi16(
const int16_t *vec,
int len)
157 for (i = 0; i < len; i++)
173 #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_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
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