16#ifndef __SOF_MATH_NUMBERS_H__
17#define __SOF_MATH_NUMBERS_H__
25#define MIN(a, b) ((a) < (b) ? (a) : (b))
26#define MAX(a, b) ((a) < (b) ? (b) : (a))
28#define ROUND_DOWN(size, alignment) ({ \
29 __typeof__(size) __size = (size); \
30 __typeof__(alignment) __alignment = (alignment); \
31 __size - (__size % __alignment); \
34#define ROUND_UP(size, alignment) ({ \
35 __typeof__(size) __size = (size); \
36 __typeof__(alignment) __alignment = (alignment); \
37 ((__size + __alignment - 1) / __alignment) * __alignment; \
42 __typeof__(a) __a = (a); \
43 __a < 0 ? -__a : __a; \
46 __typeof__(a) __a = (a); \
73 if (!((a ^ b) & (1U << ((
sizeof(
int) * 8) - 1))) && c * b != a)
97 int16_t a, int16_t b, int16_t c,
98 int16_t d, int16_t e, int16_t f)
100 *px = (int32_t)b * f - (int32_t)c * e;
101 *py = (int32_t)c * d - (int32_t)a * f;
102 *pz = (int32_t)a * e - (int32_t)b * d;
120uint32_t
crc32(uint32_t base,
const void *
data, uint32_t bytes);
123#define merge_16b16b(high, low) (((uint32_t)(high) << 16) | \
127#define merge_4b4b(high, low) (((uint8_t)(high) << 4) | \
131#define INT_MAX_FOR_NUMBER_OF_BITS(N) ((int64_t)((1ULL << ((N) - 1)) - 1))
132#define INT_MIN_FOR_NUMBER_OF_BITS(N) ((int64_t)(-((1ULL << ((N) - 1)) - 1) - 1))
135#define SPEED_OF_SOUND 343
136#define RECIPROCAL_SPEED_OF_SOUND_Q31 6260885
int16_t find_min_int16(int16_t vec[], int vec_length)
int norm_int32(int32_t val)
static void cross_product_s16(int32_t *px, int32_t *py, int32_t *pz, int16_t a, int16_t b, int16_t c, int16_t d, int16_t e, int16_t f)
Cross product function.
Definition numbers.h:96
int32_t find_max_abs_int32(int32_t vec[], int vec_length)
static int ceil_divide(int a, int b)
Definition numbers.h:60
uint32_t crc32(uint32_t base, const void *data, uint32_t bytes)
int find_equal_int16(int16_t idx[], int16_t vec[], int n, int vec_length, int max_results)