DSPLIB - Operators

All the fixed point operators functions currently implemented in the DSP library.

# Multiplication

These functions multiply two fixed-point numbers.

Relative functions:

# Division

These functions divide two fixed-point numbers. Relative functions:

# Sine

These functions compute the sine of the argument 'angle'.

Note
Angle is scaled to fit in the range [-1; 1], where -1 corresponds to -pi and 1 to pi.

Relative functions:

# Cosine

These functions compute the cosine of the argument 'angle'. Angles are scale to fit in the range [-1; 1], where -1 corresponds to -pi and 1 to pi. Relative functions:

# Arc sine

These functions compute the arc sine of the argument.

Note
The output is scaled to fit in the range [-0.5; 0.5], where -0.5 corresponds to -pi/2 and 0.5 to pi/2.

Relative functions:

# Arc cosine

These functions compute the arc cosine of the argument.

Note
The output is scaled to fit in the range [0.; 1.], where 0. corresponds to 0. and 1. to pi.

Relative functions:

# Absolute

These functions compute the absolute value of the argument. Relative functions:

# Square root

These functions compute the square root of the argument. Relative functions:

# Natural logarithm

These functions compute the natural logarithm of the argument. Relative functions:

Note
The output will be limit in the range of the fixed point format used.

# Binary logarithm or base 2 logarithm

These functions compute the binary logarithm of the argument.

Note
The output will be limit in the range of the fixed point format used.

Relative functions:

# Common logarithm or base 10 logarithm

These functions compute the common logarithm of the argument.

Note
The output will be limit in the range of the fixed point format used.

Relative functions:

# Exponential

These functions compute the exponential of the argument.

Note
The output will be limit in the range of the fixed point format used.

Relative functions:

# mode management

These functions compute x^y.

Note
The output will be limit in the range of the fixed point format used.

Relative functions:

# Random

These functions generate a pseudo-radomized number Relative functions:

## Functions

static dsp16_t dsp16_op_abs (dsp16_t number)
16-bit fixed point version of the absolute function. More...

static dsp16_t dsp16_op_acos (dsp16_t number)
16-bit fixed point version of the arc cosine function. More...

dsp16_t dsp16_op_asin (dsp16_t number)
16-bit fixed point version of the arc sine function. More...

static dsp16_t dsp16_op_cos (dsp16_t angle)
16-bit fixed point version of the cosine function. More...

static dsp16_t dsp16_op_div (dsp16_t num, dsp16_t den)
16-bit fixed point version of the division function. More...

dsp16_t dsp16_op_exp (dsp16_t number)
16-bit fixed point version of the exponential function. More...

dsp16_t dsp16_op_ln (dsp16_t number)
16-bit fixed point version of the natural logarithm function. More...

dsp16_t dsp16_op_log10 (dsp16_t number)
16-bit fixed point version of the common logarithm function. More...

dsp16_t dsp16_op_log2 (dsp16_t number)
16-bit fixed point version of the binary logarithm function. More...

static dsp16_t dsp16_op_mul (dsp16_t num1, dsp16_t num2)
16-bit fixed point version of the multiplication function. More...

dsp16_t dsp16_op_pow (dsp16_t x, dsp16_t y)
16-bit fixed point version of the power function. More...

dsp16_t dsp16_op_rand (void)
16-bit fixed point version of the random operator. More...

dsp16_t dsp16_op_sin (dsp16_t angle)
16-bit fixed point version of the sine function. More...

dsp16_t dsp16_op_sqrt (dsp16_t number)
16-bit fixed point version of the square root function. More...

static dsp32_t dsp32_op_abs (dsp32_t number)
32-bit fixed point version of the absolute function. More...

static dsp32_t dsp32_op_acos (dsp32_t number)
32-bit fixed point version of the arc cosine function. More...

dsp32_t dsp32_op_asin (dsp32_t number)
32-bit fixed point version of the arc sine function. More...

static dsp32_t dsp32_op_cos (dsp32_t angle)
32-bit fixed point version of the cosine function. More...

static dsp32_t dsp32_op_div (dsp32_t num, dsp32_t den)
32-bit fixed point version of the division function. More...

dsp32_t dsp32_op_exp (dsp32_t number)
32-bit fixed point version of the exponential function. More...

dsp32_t dsp32_op_ln (dsp32_t number)
32-bit fixed point version of the natural logarithm function. More...

dsp32_t dsp32_op_log10 (dsp32_t number)
32-bit fixed point version of the common logarithm function. More...

dsp32_t dsp32_op_log2 (dsp32_t number)
32-bit fixed point version of the binary logarithm function. More...

static dsp32_t dsp32_op_mul (dsp32_t num1, dsp32_t num2)
32-bit fixed point version of the multiplication function. More...

dsp32_t dsp32_op_pow (dsp32_t x, dsp32_t y)
32-bit fixed point version of the power function. More...

dsp32_t dsp32_op_rand (void)
32-bit fixed point version of the random operator. More...

dsp32_t dsp32_op_sin (dsp32_t angle)
32-bit fixed point version of the sine function. More...

dsp32_t dsp32_op_sqrt (dsp32_t number)
32-bit fixed point version of the square root function. More...

void dsp_op_srand (int new_seed)
Initialize the pseudo-random number generator. More...

 static dsp16_t dsp16_op_abs ( dsp16_t number )
inlinestatic

16-bit fixed point version of the absolute function.

Parameters
 number The number to compute
Returns
The absolute value of the number.

Referenced by dsp16_op_asin(), dsp16_op_exp(), dsp16_op_pow(), dsp16_resampling_setup(), and dsp16_win_gauss().

 static dsp16_t dsp16_op_acos ( dsp16_t number )
inlinestatic

16-bit fixed point version of the arc cosine function.

Parameters
 number The number to compute
Returns
The arc cosine of 'number' is returned.
Note
If you are using a number greater than 1 (or lower than -1) for the 'number', the function will limit the output to the range [0.; 1.].

References dsp16_op_asin(), and DSP16_Q.

 dsp16_t dsp16_op_asin ( dsp16_t number )

16-bit fixed point version of the arc sine function.

Parameters
 number The number to compute
Returns
The arc sine of 'number' is returned.
Note
If you are using a number greater than 1 (or lower than -1) for the 'number', the function will limit the output to the range [-0.5; 0.5].

References A, B, C, D, dsp16_op_abs(), dsp16_op_asin(), dsp16_op_sqrt(), DSP16_Q, and DSP16_QB.

Referenced by dsp16_op_acos(), and dsp16_op_asin().

 static dsp16_t dsp16_op_cos ( dsp16_t angle )
inlinestatic

16-bit fixed point version of the cosine function.

Parameters
 angle The angle to compute
Returns
The cosine of 'angle' is returned.
Note
If you are using a number greater than 1 (or lower than -1) for the angle, the function will take the modulo 1 of this angle.

References dsp16_op_sin(), and DSP16_Q.

 static dsp16_t dsp16_op_div ( dsp16_t num, dsp16_t den )
inlinestatic

16-bit fixed point version of the division function.

Parameters
 num The numerator of the division. den The denominator of the division.
Returns
The result of the division.

References DSP16_QB.

 dsp16_t dsp16_op_exp ( dsp16_t number )

16-bit fixed point version of the exponential function.

Parameters
 number The number to compute
Returns
The exponential of 'number' is returned.

Referenced by dsp16_op_kaiser_i0(), dsp16_op_pow(), and dsp16_win_gauss().

 dsp16_t dsp16_op_ln ( dsp16_t number )

16-bit fixed point version of the natural logarithm function.

Parameters
 number The number to compute
Returns
The natural logarithm of 'number' is returned.
Note
If you are using a number lower than 0 for the number, the function will return DSP_Q_MIN(DSP16_QA, DSP16_QB).

References dsp16_op_ln_raw(), DSP16_QA, DSP16_QB, and DSP_Q_MIN.

 dsp16_t dsp16_op_log10 ( dsp16_t number )

16-bit fixed point version of the common logarithm function.

Parameters
 number The number to compute
Returns
The common logarithm of 'number' is returned.
Note
If you are using a number lower than 0 for the number, the function will return DSP_Q_MIN(DSP16_QA, DSP16_QB).

References CST_LN_10, dsp16_op_ln_raw(), DSP16_QA, DSP16_QB, DSP_Q, and DSP_Q_MIN.

 dsp16_t dsp16_op_log2 ( dsp16_t number )

16-bit fixed point version of the binary logarithm function.

Parameters
 number The number to compute
Returns
The binary logarithm of 'number' is returned.
Note
If you are using a number lower than 0 for the number, the function will return DSP_Q_MIN(DSP16_QA, DSP16_QB).

References CST_LN_2, dsp16_op_ln_raw(), DSP16_QA, DSP16_QB, DSP_Q, and DSP_Q_MIN.

 static dsp16_t dsp16_op_mul ( dsp16_t num1, dsp16_t num2 )
inlinestatic

16-bit fixed point version of the multiplication function.

Parameters
 num1 The first member of the multiplication. num2 The second member of the multiplication.
Returns
The result of the multiplication.

References DSP16_QB.

 dsp16_t dsp16_op_pow ( dsp16_t x, dsp16_t y )

16-bit fixed point version of the power function.

Parameters
 x The number from which the power has to be applied. y The power.
Returns
The x power y is returned.
DSP_Q_MIN if the argument x is negative: this would result in a complex number.
 dsp16_t dsp16_op_rand ( void )

16-bit fixed point version of the random operator.

Returns
The cosine of 'angle' is returned.
Note
The number generated can be any 16-bit value in the range [-1; 1[.

References DSP16_QA, and seed.

Referenced by dsp16_gen_noise().

 dsp16_t dsp16_op_sin ( dsp16_t angle )

16-bit fixed point version of the sine function.

Parameters
 angle The angle to compute
Returns
The sine of 'angle' is returned.
Note
If you are using a number greater than 1 (or lower than -1) for the angle, the function will take the modulo 1 of this angle.

Referenced by dsp16_filt_lpfirdesign_windowed_sinc(), dsp16_gen_sin(), and dsp16_op_cos().

 dsp16_t dsp16_op_sqrt ( dsp16_t number )

16-bit fixed point version of the square root function.

Parameters
 number The number to compute
Returns
The square root of 'number' is returned.
Note
If you are using a number lower than 0 for the number, the function will return 0.

References a(), CST_INV_SQUARE_ROOT_2, DSP16_Q, DSP16_QB, DSP16_SQRT_NEWTON_ITERATION, and MREPEAT().

Referenced by dsp16_op_asin(), and dsp16_op_kaiser_i0().

 static dsp32_t dsp32_op_abs ( dsp32_t number )
inlinestatic

32-bit fixed point version of the absolute function.

Parameters
 number The number to compute
Returns
The absolute value of the number.

Referenced by dsp32_op_asin(), dsp32_op_exp(), dsp32_op_pow(), and dsp32_win_gauss().

 static dsp32_t dsp32_op_acos ( dsp32_t number )
inlinestatic

32-bit fixed point version of the arc cosine function.

Parameters
 number The number to compute
Returns
The arc cosine of 'number' is returned.
Note
If you are using a number greater than 1 (or lower than -1) for the 'number', the function will limit the output to the range [0.; 1.].

References dsp32_op_asin(), and DSP32_Q.

 dsp32_t dsp32_op_asin ( dsp32_t number )

32-bit fixed point version of the arc sine function.

Parameters
 number The number to compute
Returns
The arc sine of 'number' is returned.
Note
If you are using a number greater than 1 (or lower than -1) for the 'number', the function will limit the output to the range [-0.5; 0.5].

References A, B, C, D, dsp32_op_abs(), dsp32_op_asin(), dsp32_op_sqrt(), DSP32_Q, DSP32_QB, E, and F.

Referenced by dsp32_op_acos(), and dsp32_op_asin().

 static dsp32_t dsp32_op_cos ( dsp32_t angle )
inlinestatic

32-bit fixed point version of the cosine function.

Parameters
 angle The angle to compute
Returns
The cosine of 'angle' is returned.
Note
If you are using a number greater than 1 (or lower than -1) for the angle, the function will take the modulo 1 of this angle.

References dsp32_op_sin(), and DSP32_Q.

Referenced by dsp32_gen_cos(), dsp32_win_black(), dsp32_win_hamm(), and dsp32_win_hann().

 static dsp32_t dsp32_op_div ( dsp32_t num, dsp32_t den )
inlinestatic

32-bit fixed point version of the division function.

Parameters
 num The numerator of the division. den The denominator of the division.
Returns
The result of the division.

References DSP32_QB.

 dsp32_t dsp32_op_exp ( dsp32_t number )

32-bit fixed point version of the exponential function.

Parameters
 number The number to compute
Returns
The exponential of 'number' is returned.

Referenced by dsp32_op_kaiser_i0(), dsp32_op_pow(), and dsp32_win_gauss().

 dsp32_t dsp32_op_ln ( dsp32_t number )

32-bit fixed point version of the natural logarithm function.

Parameters
 number The number to compute
Returns
The natural logarithm of 'number' is returned.
Note
If you are using a number lower than 0 for the number, the function will return DSP_Q_MIN(DSP32_QA, DSP32_QB).

References dsp32_op_ln_raw(), DSP32_QA, DSP32_QB, and DSP_Q_MIN.

 dsp32_t dsp32_op_log10 ( dsp32_t number )

32-bit fixed point version of the common logarithm function.

Parameters
 number The number to compute
Returns
The common logarithm of 'number' is returned.
Note
If you are using a number lower than 0 for the number, the function will return DSP_Q_MIN(DSP32_QA, DSP32_QB).

References CST_LN_10, dsp32_op_ln_raw(), DSP32_QA, DSP32_QB, and DSP_Q_MIN.

 dsp32_t dsp32_op_log2 ( dsp32_t number )

32-bit fixed point version of the binary logarithm function.

Parameters
 number The number to compute
Returns
The binary logarithm of 'number' is returned.
Note
If you are using a number lower than 0 for the number, the function will return DSP_Q_MIN(DSP32_QA, DSP32_QB).

References CST_LN_2, dsp32_op_ln_raw(), DSP32_QA, DSP32_QB, and DSP_Q_MIN.

 static dsp32_t dsp32_op_mul ( dsp32_t num1, dsp32_t num2 )
inlinestatic

32-bit fixed point version of the multiplication function.

Parameters
 num1 The first member of the multiplication. num2 The second member of the multiplication.
Returns
The result of the multiplication.

References DSP32_QB.

 dsp32_t dsp32_op_pow ( dsp32_t x, dsp32_t y )

32-bit fixed point version of the power function.

Parameters
 x The number from which the power has to be applied. y The power.
Returns
The x power y is returned.
DSP_Q_MIN if the argument x is negative: this would result in a complex number.
 dsp32_t dsp32_op_rand ( void )

32-bit fixed point version of the random operator.

Returns
The cosine of 'angle' is returned.
Note
The number generated can be any 32-bit value in the range [-1; 1[.

References DSP16_QA, DSP32_QA, and seed.

Referenced by dsp32_gen_noise().

 dsp32_t dsp32_op_sin ( dsp32_t angle )

32-bit fixed point version of the sine function.

Parameters
 angle The angle to compute
Returns
The sine of 'angle' is returned.
Note
If you are using a number greater than 1 (or lower than -1) for the angle, the function will take the modulo 1 of this angle.

Referenced by dsp16_filt_lpfirdesign(), dsp32_gen_sin(), and dsp32_op_cos().

 dsp32_t dsp32_op_sqrt ( dsp32_t number )

32-bit fixed point version of the square root function.

Parameters
 number The number to compute
Returns
The square root of 'number' is returned.
Note
If you are using a number lower than 0 for the number, the function will return 0.

References a(), CST_INV_SQUARE_ROOT_2, DSP32_Q, DSP32_QB, DSP32_SQRT_NEWTON_ITERATION, and MREPEAT().

Referenced by dsp16_win_kaiser(), dsp32_op_asin(), dsp32_op_kaiser_i0(), and dsp32_win_kaiser().

 void dsp_op_srand ( int new_seed )

Initialize the pseudo-random number generator.

Parameters
 new_seed An integer value to be used as seed by the pseudo-random number generator algorithm.

References seed.