6 #include "xs3_math_conf.h"
7 #include "xs3_math_types.h"
83 const unsigned length,
100 #define xs3_vect_complex_s32_add_prepare xs3_vect_s32_add_prepare
163 const unsigned length,
180 #define xs3_vect_complex_s32_add_scalar_prepare xs3_vect_s32_add_prepare
234 const unsigned length,
251 #define xs3_vect_complex_s32_conj_mul_prepare xs3_vect_complex_s32_mul_prepare
292 const unsigned length);
367 const unsigned length,
445 const unsigned length,
523 const unsigned length,
601 const unsigned length,
714 #define xs3_vect_complex_s32_nmacc_prepare xs3_vect_complex_s32_macc_prepare
730 #define xs3_vect_complex_s32_conj_macc_prepare xs3_vect_complex_s32_macc_prepare
746 #define xs3_vect_complex_s32_conj_nmacc_prepare xs3_vect_complex_s32_macc_prepare
811 const unsigned length,
814 const unsigned table_rows);
922 const unsigned length,
1057 const unsigned length,
1185 const unsigned length,
1202 #define xs3_vect_complex_s32_real_scale_prepare xs3_vect_s32_mul_prepare
1257 const int32_t c_real,
1258 const int32_t c_imag,
1259 const unsigned length,
1371 const int32_t b_real,
1372 const int32_t b_imag,
1373 const unsigned length);
1415 const unsigned length,
1458 const unsigned length,
1504 const unsigned length,
1617 const unsigned length,
1634 #define xs3_vect_complex_s32_sub_prepare xs3_vect_s32_add_prepare
1693 const unsigned length,
1753 const unsigned length);
1794 const unsigned length);
1832 const unsigned length);
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
int right_shift_t
A rightwards arithmetic bit-shift.
Definition: xs3_math_types.h:98
unsigned headroom_t
Headroom of some integer or integer array.
Definition: xs3_math_types.h:86
headroom_t xs3_vect_complex_s32_add_scalar(complex_s32_t a[], const complex_s32_t b[], const complex_s32_t c, const unsigned length, const right_shift_t b_shr)
Add a scalar to a complex 32-bit vector.
Definition: xs3_vect.c:230
headroom_t xs3_vect_complex_s32_real_scale(complex_s32_t a[], const complex_s32_t b[], const int32_t c, const unsigned length, const right_shift_t b_shr, const right_shift_t c_shr)
Multiply a complex 32-bit vector by a real scalar.
Definition: xs3_vect.c:153
headroom_t xs3_vect_complex_s32_shr(complex_s32_t a[], const complex_s32_t b[], const unsigned length, const right_shift_t b_shr)
Right-shift each element of a complex 32-bit vector by a specified number of bits.
Definition: xs3_vect.c:173
headroom_t xs3_vect_complex_s32_scale(complex_s32_t a[], const complex_s32_t b[], const int32_t c_real, const int32_t c_imag, const unsigned length, const right_shift_t b_shr, const right_shift_t c_shr)
Multiply a complex 32-bit vector by a complex 32-bit scalar.
Definition: xs3_vect_complex_mul.c:257
headroom_t xs3_vect_complex_s32_mul(complex_s32_t a[], const complex_s32_t b[], const complex_s32_t c[], const unsigned length, const right_shift_t b_shr, const right_shift_t c_shr)
Multiply one complex 32-bit vector element-wise by another.
Definition: xs3_vect_complex_mul.c:187
headroom_t xs3_vect_complex_s32_mag(int32_t a[], const complex_s32_t b[], const unsigned length, const right_shift_t b_shr, const complex_s32_t *rot_table, const unsigned table_rows)
Compute the magnitude of each element of a complex 32-bit vector.
Definition: xs3_vect_complex_mag.c:74
headroom_t xs3_vect_complex_s32_squared_mag(int32_t a[], const complex_s32_t b[], const unsigned length, const right_shift_t b_shr)
Computes the squared magnitudes of elements of a complex 32-bit vector.
Definition: xs3_vect_complex_mag.c:146
headroom_t xs3_vect_complex_s32_macc(complex_s32_t acc[], const complex_s32_t b[], const complex_s32_t c[], const unsigned length, const right_shift_t acc_shr, const right_shift_t b_shr, const right_shift_t c_shr)
Multiply one complex 32-bit vector element-wise by another, and add the result to an accumulator.
Definition: xs3_vect_complex_macc.c:97
void xs3_vect_complex_s32_tail_reverse(complex_s32_t x[], const unsigned length)
Reverses the order of the tail of a complex 32-bit vector.
Definition: xs3_fft_util.c:250
headroom_t xs3_vect_complex_s32_conj_macc(complex_s32_t acc[], const complex_s32_t b[], const complex_s32_t c[], const unsigned length, const right_shift_t acc_shr, const right_shift_t b_shr, const right_shift_t c_shr)
Multiply one complex 32-bit vector element-wise by the complex conjugate of another,...
Definition: xs3_vect_complex_conj_macc.c:97
headroom_t xs3_vect_complex_s32_nmacc(complex_s32_t acc[], const complex_s32_t b[], const complex_s32_t c[], const unsigned length, const right_shift_t acc_shr, const right_shift_t b_shr, const right_shift_t c_shr)
Multiply one complex 32-bit vector element-wise by another, and subtract the result from an accumulat...
Definition: xs3_vect_complex_macc.c:129
void xs3_vect_complex_s32_set(complex_s32_t a[], const int32_t b_real, const int32_t b_imag, const unsigned length)
Set each element of a complex 32-bit vector to a specified value.
Definition: xs3_vect_set.c:35
headroom_t xs3_vect_complex_s32_headroom(const complex_s32_t x[], const unsigned length)
Calculate the headroom of a complex 32-bit array.
Definition: xs3_vect.c:145
headroom_t xs3_vect_complex_s32_add(complex_s32_t a[], const complex_s32_t b[], const complex_s32_t c[], const unsigned length, const right_shift_t b_shr, const right_shift_t c_shr)
Add one complex 32-bit vector to another.
Definition: xs3_vect.c:132
headroom_t xs3_vect_complex_s32_real_mul(complex_s32_t a[], const complex_s32_t b[], const int32_t c[], const unsigned length, const right_shift_t b_shr, const right_shift_t c_shr)
Multiply a complex 32-bit vector element-wise by a real 32-bit vector.
Definition: xs3_vect_complex_mul.c:159
headroom_t xs3_vect_complex_s32_shl(complex_s32_t a[], const complex_s32_t b[], const unsigned length, const left_shift_t b_shl)
Left-shift each element of a complex 32-bit vector by a specified number of bits.
Definition: xs3_vect.c:164
headroom_t xs3_vect_complex_s32_conjugate(complex_s32_t a[], const complex_s32_t b[], const unsigned length)
Get the complex conjugate of a complex 32-bit vector.
Definition: xs3_vect_complex_conjugate.c:13
void xs3_vect_complex_s32_sum(complex_s64_t *a, const complex_s32_t b[], const unsigned length, const right_shift_t b_shr)
Compute the sum of elements of a complex 32-bit vector.
Definition: xs3_vect_complex_sum.c:29
headroom_t xs3_vect_complex_s32_conj_nmacc(complex_s32_t acc[], const complex_s32_t b[], const complex_s32_t c[], const unsigned length, const right_shift_t acc_shr, const right_shift_t b_shr, const right_shift_t c_shr)
Multiply one complex 32-bit vector element-wise by the complex conjugate of another,...
Definition: xs3_vect_complex_conj_macc.c:129
headroom_t xs3_vect_complex_s32_sub(complex_s32_t a[], const complex_s32_t b[], const complex_s32_t c[], const unsigned length, const right_shift_t b_shr, const right_shift_t c_shr)
Subtract one complex 32-bit vector from another.
Definition: xs3_vect.c:183
headroom_t xs3_vect_complex_s32_conj_mul(complex_s32_t a[], const complex_s32_t b[], const complex_s32_t c[], const unsigned length, const right_shift_t b_shr, const right_shift_t c_shr)
Multiply one complex 32-bit vector element-wise by the complex conjugate of another.
Definition: xs3_vect_complex_mul.c:221
void xs3_vect_complex_s32_sum_prepare(exponent_t *a_exp, right_shift_t *b_shr, const exponent_t b_exp, const headroom_t b_hr, const unsigned length)
Obtain the output exponent and input shift used by xs3_vect_complex_s32_sum().
Definition: xs3_complex_prepare.c:416
void xs3_vect_complex_s32_macc_prepare(exponent_t *new_acc_exp, right_shift_t *acc_shr, right_shift_t *b_shr, right_shift_t *c_shr, const exponent_t acc_exp, const exponent_t b_exp, const exponent_t c_exp, const exponent_t acc_hr, const headroom_t b_hr, const headroom_t c_hr)
Obtain the output exponent and shifts needed by xs3_vect_complex_s32_macc().
Definition: xs3_complex_prepare.c:199
void xs3_vect_complex_s32_squared_mag_prepare(exponent_t *a_exp, right_shift_t *b_shr, const exponent_t b_exp, const headroom_t b_hr)
Obtain the output exponent and input shift used by xs3_vect_complex_s32_squared_mag().
Definition: xs3_complex_prepare.c:386
void xs3_vect_complex_s32_real_mul_prepare(exponent_t *a_exp, right_shift_t *b_shr, right_shift_t *c_shr, const exponent_t b_exp, const exponent_t c_exp, const headroom_t b_hr, const headroom_t c_hr)
Obtain the output exponent and input shifts used by xs3_vect_complex_s32_real_mul().
Definition: xs3_complex_prepare.c:270
void xs3_vect_complex_s32_mag_prepare(exponent_t *a_exp, right_shift_t *b_shr, const exponent_t b_exp, const headroom_t b_hr)
Obtain the output exponent and input shift used by xs3_vect_complex_s32_mag() and xs3_vect_complex_s1...
Definition: xs3_complex_prepare.c:257
void xs3_vect_complex_s32_mul_prepare(exponent_t *a_exp, right_shift_t *b_shr, right_shift_t *c_shr, const exponent_t b_exp, const exponent_t c_exp, const headroom_t b_hr, const headroom_t c_hr)
Obtain the output exponent and input shifts used by xs3_vect_complex_s32_mul() and xs3_vect_complex_s...
Definition: xs3_complex_prepare.c:307
void xs3_vect_complex_s32_scale_prepare(exponent_t *a_exp, right_shift_t *b_shr, right_shift_t *c_shr, const exponent_t b_exp, const exponent_t c_exp, const headroom_t b_hr, const headroom_t c_hr)
Obtain the output exponent and input shifts used by xs3_vect_complex_s32_scale().
Definition: xs3_complex_prepare.c:350
A complex number with a 32-bit real part and 32-bit imaginary part.
Definition: xs3_math_types.h:49
A complex number with a 64-bit real part and 64-bit imaginary part.
Definition: xs3_math_types.h:38