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_movei(
int z[],
const int x[],
int n)
54 memmove(z, x, n*
sizeof(z[0]));
58static __inline__
void vec_movei16(int16_t z[],
const int16_t x[],
int n)
60 memmove(z, x, n*
sizeof(z[0]));
64static __inline__
void vec_movei32(int32_t z[],
const int32_t x[],
int n)
66 memmove(z, x, n*
sizeof(z[0]));
70static __inline__
void vec_zeroi(
int z[],
int n)
72 memset(z, 0, n*
sizeof(z[0]));
76static __inline__
void vec_zeroi16(int16_t z[],
int n)
78 memset(z, 0, n*
sizeof(z[0]));
82static __inline__
void vec_zeroi32(int32_t z[],
int n)
84 memset(z, 0, n*
sizeof(z[0]));
88static __inline__
void vec_seti(
int z[],
int x,
int n)
92 for (i = 0; i < n; i++)
97static __inline__
void vec_seti16(int16_t z[], int16_t x,
int n)
101 for (i = 0; i < n; i++)
106static __inline__
void vec_seti32(int32_t z[], int32_t x,
int n)
110 for (i = 0; i < n; i++)
120SPAN_DECLARE(int32_t)
vec_dot_prodi16(
const int16_t x[],
const int16_t y[],
int n);
131SPAN_DECLARE(
void) vec_lmsi16(
const int16_t x[], int16_t y[],
int n, int16_t error);
133SPAN_DECLARE(
void) vec_circular_lmsi16(
const int16_t x[], int16_t y[],
int n,
int pos, int16_t error);
144SPAN_DECLARE(int32_t)
vec_min_maxi16(
const int16_t x[],
int n, int16_t out[]);
146static __inline__
int vec_norm2i16(
const int16_t *vec,
int len)
152 for (i = 0; i < len; i++)
153 sum += vec[i]*vec[i];
158static __inline__
void vec_sari16(int16_t *vec,
int len,
int shift)
162 for (i = 0; i < len; i++)
167static __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