 CMSIS-DSP  Version 1.10.0 CMSIS DSP Software Library

## Macros

#define Q12QUARTER
Q15 square root function. More...

#define Q28QUARTER
Q31 square root function. More...

## Functions

__STATIC_FORCEINLINE arm_status arm_sqrt_f32 (const float32_t in, float32_t *pOut)
Floating-point square root function. More...

arm_status arm_sqrt_q31 (q31_t in, q31_t *pOut)
Q31 square root function. More...

arm_status arm_sqrt_q15 (q15_t in, q15_t *pOut)
Q15 square root function. More...

__STATIC_FORCEINLINE arm_status arm_sqrt_f16 (float16_t in, float16_t *pOut)
Floating-point square root function. More...

## Description

Computes the square root of a number. There are separate functions for Q15, Q31, and floating-point data types. The square root function is computed using the Newton-Raphson algorithm. This is an iterative algorithm of the form:

```     x1 = x0 - f(x0)/f'(x0)
```

where `x1` is the current estimate, `x0` is the previous estimate, and `f'(x0)` is the derivative of `f()` evaluated at `x0`. For the square root function, the algorithm reduces to:

```    x0 = in/2                         [initial guess]
x1 = 1/2 * ( x0 + in / x0)        [each iteration]
```

## Macro Definition Documentation

 #define Q12QUARTER
Parameters
 [in] in input value. The range of the input value is [0 +1) or 0x0000 to 0x7FFF [out] pOut points to square root of input value
Returns
execution status
 #define Q28QUARTER
Parameters
 [in] in input value. The range of the input value is [0 +1) or 0x00000000 to 0x7FFFFFFF [out] pOut points to square root of input value
Returns
execution status

## Function Documentation

 __STATIC_FORCEINLINE arm_status arm_sqrt_f16 ( float16_t in, float16_t * pOut )
Parameters
 [in] in input value [out] pOut square root of input value
Returns
execution status
 __STATIC_FORCEINLINE arm_status arm_sqrt_f32 ( const float32_t in, float32_t * pOut )
Parameters
 [in] in input value [out] pOut square root of input value
Returns
execution status
 arm_status arm_sqrt_q15 ( q15_t in, q15_t * pOut )
Parameters
 [in] in input value. The range of the input value is [0 +1) or 0x0000 to 0x7FFF [out] pOut points to square root of input value
Returns
execution status
 arm_status arm_sqrt_q31 ( q31_t in, q31_t * pOut )
Parameters
 [in] in input value. The range of the input value is [0 +1) or 0x00000000 to 0x7FFFFFFF [out] pOut points to square root of input value
Returns
execution status