XCORE SDK
XCORE Software Development Kit
bfp_complex_s16.h
1 // Copyright 2020-2021 XMOS LIMITED.
2 // This Software is subject to the terms of the XMOS Public Licence: Version 1.
3 
4 #pragma once
5 
6 #include "xs3_math_types.h"
7 
39 C_API
42  const complex_s16_t b,
43  const exponent_t exp);
44 
45 
96 C_API
99  const exponent_t exp);
100 
101 
137 C_API
139  bfp_complex_s16_t* b);
140 
141 
176 C_API
179  const bfp_complex_s16_t* b,
180  const left_shift_t b_shl);
181 
182 
183 
184 
209 C_API
211  bfp_complex_s16_t* a,
212  const bfp_complex_s16_t* b,
213  const bfp_s16_t* c);
214 
215 
216 
240 C_API
242  bfp_complex_s16_t* a,
243  const bfp_complex_s16_t* b,
244  const bfp_complex_s16_t* c);
245 
246 
267 C_API
269  bfp_complex_s16_t* a,
270  const bfp_complex_s16_t* b,
271  const bfp_complex_s16_t* c);
272 
273 
290 C_API
292  bfp_complex_s16_t* acc,
293  const bfp_complex_s16_t* b,
294  const bfp_complex_s16_t* c);
295 
296 
313 C_API
315  bfp_complex_s16_t* acc,
316  const bfp_complex_s16_t* b,
317  const bfp_complex_s16_t* c);
318 
319 
337 C_API
339  bfp_complex_s16_t* acc,
340  const bfp_complex_s16_t* b,
341  const bfp_complex_s16_t* c);
342 
343 
361 C_API
363  bfp_complex_s16_t* acc,
364  const bfp_complex_s16_t* b,
365  const bfp_complex_s16_t* c);
366 
367 
390 C_API
392  bfp_complex_s16_t* a,
393  const bfp_complex_s16_t* b,
394  const float alpha);
395 
396 
419 C_API
421  bfp_complex_s16_t* a,
422  const bfp_complex_s16_t* b,
423  const float_complex_s16_t alpha);
424 
425 
447 C_API
449  bfp_complex_s16_t* a,
450  const bfp_complex_s16_t* b,
451  const bfp_complex_s16_t* c);
452 
453 
475 C_API
477  bfp_complex_s16_t* a,
478  const bfp_complex_s16_t* b,
479  const float_complex_s16_t c);
480 
481 
504 C_API
506  bfp_complex_s16_t* a,
507  const bfp_complex_s16_t* b,
508  const bfp_complex_s16_t* c);
509 
510 
531 C_API
533  bfp_complex_s32_t* a,
534  const bfp_complex_s16_t* b);
535 
536 
557 C_API
559  bfp_s16_t* a,
560  const bfp_complex_s16_t* b);
561 
562 
582 C_API
584  bfp_s16_t* a,
585  const bfp_complex_s16_t* b);
586 
587 
608 C_API
610  const bfp_complex_s16_t* b);
611 
612 
631 C_API
633  bfp_complex_s16_t* a,
634  const bfp_complex_s16_t* b);
635 
636 
656  const bfp_complex_s16_t* b);
void bfp_complex_s16_real_mul(bfp_complex_s16_t *a, const bfp_complex_s16_t *b, const bfp_s16_t *c)
Multiply a complex 16-bit BFP vector element-wise by a real 16-bit BFP vector.
Definition: bfp_complex_s16.c:130
void bfp_complex_s16_sub(bfp_complex_s16_t *a, const bfp_complex_s16_t *b, const bfp_complex_s16_t *c)
Subtract one complex 16-bit BFP vector from another.
Definition: bfp_complex_s16.c:110
void bfp_complex_s16_to_complex_s32(bfp_complex_s32_t *a, const bfp_complex_s16_t *b)
Convert a complex 16-bit BFP vector to a complex 32-bit BFP vector.
Definition: bfp_complex_s16.c:296
void bfp_complex_s16_mul(bfp_complex_s16_t *a, const bfp_complex_s16_t *b, const bfp_complex_s16_t *c)
Multiply one complex 16-bit BFP vector element-wise another.
Definition: bfp_complex_s16.c:157
void bfp_complex_s16_use_exponent(bfp_complex_s16_t *a, const exponent_t exp)
Modify a complex 16-bit BFP vector to use a specified exponent.
Definition: bfp_complex_s16.c:29
void bfp_complex_s16_conj_nmacc(bfp_complex_s16_t *acc, const bfp_complex_s16_t *b, const bfp_complex_s16_t *c)
Multiply one complex 16-bit BFP vector by the complex conjugate of another element-wise and subtract ...
Definition: bfp_complex_s16.c:375
void bfp_complex_s16_scale(bfp_complex_s16_t *a, const bfp_complex_s16_t *b, const float_complex_s16_t alpha)
Multiply a complex 16-bit BFP vector by a complex scalar.
Definition: bfp_complex_s16.c:223
void bfp_complex_s16_mag(bfp_s16_t *a, const bfp_complex_s16_t *b)
Get the magnitude of each element of a complex 16-bit BFP vector.
Definition: bfp_complex_s16.c:262
void bfp_complex_s16_nmacc(bfp_complex_s16_t *acc, const bfp_complex_s16_t *b, const bfp_complex_s16_t *c)
Multiply one complex 16-bit BFP vector by another element-wise and subtract the result from a third v...
Definition: bfp_complex_s16.c:333
headroom_t bfp_complex_s16_headroom(bfp_complex_s16_t *b)
Get the headroom of a complex 16-bit BFP vector.
Definition: bfp_complex_s16.c:17
void bfp_complex_s16_macc(bfp_complex_s16_t *acc, const bfp_complex_s16_t *b, const bfp_complex_s16_t *c)
Multiply one complex 16-bit BFP vector by another element-wise and add the result to a third vector.
Definition: bfp_complex_s16.c:312
float_s64_t bfp_complex_s16_energy(const bfp_complex_s16_t *b)
Get the energy of a complex 16-bit BFP vector.
Definition: bfp_complex_s16.c:416
void bfp_complex_s16_conj_macc(bfp_complex_s16_t *acc, const bfp_complex_s16_t *b, const bfp_complex_s16_t *c)
Multiply one complex 16-bit BFP vector by the complex conjugate of another element-wise and add the r...
Definition: bfp_complex_s16.c:354
void bfp_complex_s16_set(bfp_complex_s16_t *a, const complex_s16_t b, const exponent_t exp)
Set all elements of a complex 16-bit BFP vector to a specified value.
Definition: bfp_init.c:111
void bfp_complex_s16_shl(bfp_complex_s16_t *a, const bfp_complex_s16_t *b, const left_shift_t b_shl)
Apply a left-shift to the mantissas of a complex 16-bit BFP vector.
Definition: bfp_complex_s16.c:46
float_complex_s32_t bfp_complex_s16_sum(const bfp_complex_s16_t *b)
Get the sum of elements of a complex 16-bit BFP vector.
Definition: bfp_complex_s16.c:280
void bfp_complex_s16_squared_mag(bfp_s16_t *a, const bfp_complex_s16_t *b)
Get the squared magnitude of each element of a complex 16-bit BFP vector.
Definition: bfp_complex_s16.c:245
void bfp_complex_s16_conjugate(bfp_complex_s16_t *a, const bfp_complex_s16_t *b)
Get the complex conjugate of each element of a complex 16-bit BFP vector.
Definition: bfp_complex_s16.c:396
void bfp_complex_s16_add_scalar(bfp_complex_s16_t *a, const bfp_complex_s16_t *b, const float_complex_s16_t c)
Add a complex scalar to a complex 16-bit BFP vector.
Definition: bfp_complex_s16.c:85
void bfp_complex_s16_add(bfp_complex_s16_t *a, const bfp_complex_s16_t *b, const bfp_complex_s16_t *c)
Add one complex 16-bit BFP vector to another.
Definition: bfp_complex_s16.c:65
void bfp_complex_s16_conj_mul(bfp_complex_s16_t *a, const bfp_complex_s16_t *b, const bfp_complex_s16_t *c)
Multiply one complex 16-bit BFP vector element-wise by the complex conjugate of another.
Definition: bfp_complex_s16.c:178
void bfp_complex_s16_real_scale(bfp_complex_s16_t *a, const bfp_complex_s16_t *b, const float alpha)
Multiply a complex 16-bit BFP vector by a real scalar.
Definition: bfp_complex_s16.c:199
int exponent_t
An exponent.
Definition: xs3_math_types.h:76
int left_shift_t
A leftwards arithmetic bit-shift.
Definition: xs3_math_types.h:110
unsigned headroom_t
Headroom of some integer or integer array.
Definition: xs3_math_types.h:86
[bfp_complex_s32_t]
Definition: xs3_math_types.h:371
[bfp_s16_t]
Definition: xs3_math_types.h:340
[bfp_s32_t]
Definition: xs3_math_types.h:309
A complex number with a 16-bit real part and 16-bit imaginary part.
Definition: xs3_math_types.h:60
A complex floating-point scalar with a complex 16-bit mantissa.
Definition: xs3_math_types.h:205
A complex floating-point scalar with a complex 32-bit mantissa.
Definition: xs3_math_types.h:220
A floating-point scalar with a 64-bit mantissa.
Definition: xs3_math_types.h:190