XCORE SDK
XCORE Software Development Kit
bfp_complex_s32.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_s32_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_s32_t* b);
140 
141 
176 C_API
179  const bfp_complex_s32_t* b,
180  const left_shift_t b_shl);
181 
182 
207 C_API
209  bfp_complex_s32_t* a,
210  const bfp_complex_s32_t* b,
211  const bfp_s32_t* c);
212 
213 
237 C_API
239  bfp_complex_s32_t* a,
240  const bfp_complex_s32_t* b,
241  const bfp_complex_s32_t* c);
242 
243 
268 C_API
270  bfp_complex_s32_t* a,
271  const bfp_complex_s32_t* b,
272  const bfp_complex_s32_t* c);
273 
274 
291 C_API
293  bfp_complex_s32_t* acc,
294  const bfp_complex_s32_t* b,
295  const bfp_complex_s32_t* c);
296 
297 
314 C_API
316  bfp_complex_s32_t* acc,
317  const bfp_complex_s32_t* b,
318  const bfp_complex_s32_t* c);
319 
320 
338 C_API
340  bfp_complex_s32_t* acc,
341  const bfp_complex_s32_t* b,
342  const bfp_complex_s32_t* c);
343 
344 
362 C_API
364  bfp_complex_s32_t* acc,
365  const bfp_complex_s32_t* b,
366  const bfp_complex_s32_t* c);
367 
368 
391 C_API
393  bfp_complex_s32_t* a,
394  const bfp_complex_s32_t* b,
395  const float_s32_t alpha);
396 
397 
420 C_API
422  bfp_complex_s32_t* a,
423  const bfp_complex_s32_t* b,
424  const float_complex_s32_t alpha);
425 
426 
448 C_API
450  bfp_complex_s32_t* a,
451  const bfp_complex_s32_t* b,
452  const bfp_complex_s32_t* c);
453 
454 
476 C_API
478  bfp_complex_s32_t* a,
479  const bfp_complex_s32_t* b,
480  const float_complex_s32_t c);
481 
482 
505 C_API
507  bfp_complex_s32_t* a,
508  const bfp_complex_s32_t* b,
509  const bfp_complex_s32_t* c);
510 
511 
535 C_API
537  bfp_complex_s16_t* a,
538  const bfp_complex_s32_t* b);
539 
540 
561 C_API
563  bfp_s32_t* a,
564  const bfp_complex_s32_t* b);
565 
566 
586 C_API
588  bfp_s32_t* a,
589  const bfp_complex_s32_t* b);
590 
591 
612 C_API
614  const bfp_complex_s32_t* b);
615 
616 
635 C_API
637  bfp_complex_s32_t* a,
638  const bfp_complex_s32_t* b);
639 
640 
659 C_API
661  const bfp_complex_s32_t* b);
headroom_t bfp_complex_s32_headroom(bfp_complex_s32_t *b)
Get the headroom of a complex 32-bit BFP vector.
Definition: bfp_complex_s32.c:16
void bfp_complex_s32_conj_macc(bfp_complex_s32_t *acc, const bfp_complex_s32_t *b, const bfp_complex_s32_t *c)
Multiply one complex 32-bit BFP vector by the complex conjugate of another element-wise and add the r...
Definition: bfp_complex_s32.c:339
void bfp_complex_s32_shl(bfp_complex_s32_t *a, const bfp_complex_s32_t *b, const left_shift_t b_shl)
Apply a left-shift to the mantissas of a complex 32-bit BFP vector.
Definition: bfp_complex_s32.c:45
void bfp_complex_s32_to_complex_s16(bfp_complex_s16_t *a, const bfp_complex_s32_t *b)
Convert a complex 32-bit BFP vector to a complex 16-bit BFP vector.
Definition: bfp_complex_s32.c:279
void bfp_complex_s32_nmacc(bfp_complex_s32_t *acc, const bfp_complex_s32_t *b, const bfp_complex_s32_t *c)
Multiply one complex 32-bit BFP vector by another element-wise and subtract the result from a third v...
Definition: bfp_complex_s32.c:318
void bfp_complex_s32_macc(bfp_complex_s32_t *acc, const bfp_complex_s32_t *b, const bfp_complex_s32_t *c)
Multiply one complex 32-bit BFP vector by another element-wise and add the result to a third vector.
Definition: bfp_complex_s32.c:297
void bfp_complex_s32_real_scale(bfp_complex_s32_t *a, const bfp_complex_s32_t *b, const float_s32_t alpha)
Multiply a complex 32-bit BFP vector by a real scalar.
Definition: bfp_complex_s32.c:188
void bfp_complex_s32_mul(bfp_complex_s32_t *a, const bfp_complex_s32_t *b, const bfp_complex_s32_t *c)
Multiply one complex 32-bit BFP vector element-wise by another.
Definition: bfp_complex_s32.c:145
void bfp_complex_s32_conj_nmacc(bfp_complex_s32_t *acc, const bfp_complex_s32_t *b, const bfp_complex_s32_t *c)
Multiply one complex 32-bit BFP vector by the complex conjugate of another element-wise and subtract ...
Definition: bfp_complex_s32.c:360
void bfp_complex_s32_use_exponent(bfp_complex_s32_t *a, const exponent_t exp)
Modify a complex 32-bit BFP vector to use a specified exponent.
Definition: bfp_complex_s32.c:28
void bfp_complex_s32_add(bfp_complex_s32_t *a, const bfp_complex_s32_t *b, const bfp_complex_s32_t *c)
Add one complex 32-bit BFP vector to another.
Definition: bfp_complex_s32.c:60
void bfp_complex_s32_squared_mag(bfp_s32_t *a, const bfp_complex_s32_t *b)
Get the squared magnitude of each element of a complex 32-bit BFP vector.
Definition: bfp_complex_s32.c:227
void bfp_complex_s32_add_scalar(bfp_complex_s32_t *a, const bfp_complex_s32_t *b, const float_complex_s32_t c)
Add a complex scalar to a complex 32-bit BFP vector.
Definition: bfp_complex_s32.c:79
void bfp_complex_s32_conj_mul(bfp_complex_s32_t *a, const bfp_complex_s32_t *b, const bfp_complex_s32_t *c)
Multiply one complex 32-bit BFP vector element-wise by the complex conjugate of another.
Definition: bfp_complex_s32.c:166
void bfp_complex_s32_scale(bfp_complex_s32_t *a, const bfp_complex_s32_t *b, const float_complex_s32_t alpha)
Multiply a complex 32-bit BFP vector by a complex scalar.
Definition: bfp_complex_s32.c:208
void bfp_complex_s32_conjugate(bfp_complex_s32_t *a, const bfp_complex_s32_t *b)
Get the complex conjugate of each element of a complex 32-bit BFP vector.
Definition: bfp_complex_s32.c:381
void bfp_complex_s32_set(bfp_complex_s32_t *a, const complex_s32_t b, const exponent_t exp)
Set all elements of a complex 32-bit BFP vector to a specified value.
Definition: bfp_init.c:126
void bfp_complex_s32_mag(bfp_s32_t *a, const bfp_complex_s32_t *b)
Get the magnitude of each element of a complex 32-bit BFP vector.
Definition: bfp_complex_s32.c:244
float_complex_s64_t bfp_complex_s32_sum(const bfp_complex_s32_t *b)
Get the sum of elements of a complex 32-bit BFP vector.
Definition: bfp_complex_s32.c:262
void bfp_complex_s32_sub(bfp_complex_s32_t *a, const bfp_complex_s32_t *b, const bfp_complex_s32_t *c)
Subtract one complex 32-bit BFP vector from another.
Definition: bfp_complex_s32.c:104
float_s64_t bfp_complex_s32_energy(const bfp_complex_s32_t *b)
Get the energy of a complex 32-bit BFP vector.
Definition: bfp_complex_s32.c:395
void bfp_complex_s32_real_mul(bfp_complex_s32_t *a, const bfp_complex_s32_t *b, const bfp_s32_t *c)
Multiply a complex 32-bit BFP vector element-wise by a real 32-bit BFP vector.
Definition: bfp_complex_s32.c:123
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
A block floating-point vector of 32-bit elements.
Definition: xs3_math_types.h:276
A complex number with a 32-bit real part and 32-bit imaginary part.
Definition: xs3_math_types.h:49
A complex floating-point scalar with a complex 32-bit mantissa.
Definition: xs3_math_types.h:220
A complex floating-point scalar with a complex 64-bit mantissa.
Definition: xs3_math_types.h:235
A floating-point scalar with a 32-bit mantissa.
Definition: xs3_math_types.h:167
A floating-point scalar with a 64-bit mantissa.
Definition: xs3_math_types.h:190