26#if !defined(_SPANDSP_VECTOR_INT_H_)
27#define _SPANDSP_VECTOR_INT_H_
29#if defined(__cplusplus)
34static __inline__
void vec_copyi(
int z[],
const int x[],
int n)
36 memcpy(z, x, n*
sizeof(z[0]));
40static __inline__
void vec_copyi16(int16_t z[],
const int16_t x[],
int n)
42 memcpy(z, x, n*
sizeof(z[0]));
46static __inline__
void vec_copyi32(int32_t z[],
const int32_t x[],
int n)
48 memcpy(z, x, n*
sizeof(z[0]));
52static __inline__
void vec_zeroi(
int z[],
int n)
54 memset(z, 0, n*
sizeof(z[0]));
58static __inline__
void vec_zeroi16(int16_t z[],
int n)
60 memset(z, 0, n*
sizeof(z[0]));
64static __inline__
void vec_zeroi32(int32_t z[],
int n)
66 memset(z, 0, n*
sizeof(z[0]));
70static __inline__
void vec_seti(
int z[],
int x,
int n)
74 for (i = 0; i < n; i++)
79static __inline__
void vec_seti16(int16_t z[], int16_t x,
int n)
83 for (i = 0; i < n; i++)
88static __inline__
void vec_seti32(int32_t z[], int32_t x,
int n)
92 for (i = 0; i < n; i++)
102SPAN_DECLARE(int32_t) vec_dot_prodi16(
const int16_t x[],
const int16_t y[],
int n);
111SPAN_DECLARE(int32_t) vec_circular_dot_prodi16(
const int16_t x[],
const int16_t y[],
int n,
int pos);
113SPAN_DECLARE(
void) vec_lmsi16(
const int16_t x[], int16_t y[],
int n, int16_t error);
115SPAN_DECLARE(
void) vec_circular_lmsi16(
const int16_t x[], int16_t y[],
int n,
int pos, int16_t error);
126SPAN_DECLARE(int32_t) vec_min_maxi16(
const int16_t x[],
int n, int16_t out[]);
128static __inline__
int vec_norm2i16(
const int16_t *vec,
int len)
134 for (i = 0; i < len; i++)
135 sum += vec[i]*vec[i];
140static __inline__
void vec_sari16(int16_t *vec,
int len,
int shift)
144 for (i = 0; i < len; i++)
149static __inline__
int vec_max_bitsi16(
const int16_t *vec,
int len)
157 for (i = 0; i < len; i++)
173#if defined(__cplusplus)