66 q15_t number, temp1, var1, signBits1, half;
80 signBits1 =
__CLZ(number) - 17;
83 if((signBits1 % 2) == 0)
85 number = number << signBits1;
89 number = number << (signBits1 - 1);
98 temp_float1 = number * 3.051757812500000e-005f;
100 tempconv.floatval = temp_float1;
101 bits_val1 = tempconv.fracval;
103 bits_val1 = 0x5f3759df - (bits_val1 >> 1);
105 tempconv.fracval = bits_val1;
106 temp_float1 = tempconv.floatval;
108 var1 = (
q31_t) (temp_float1 * 16384);
114 (((
q31_t) var1 * var1) >> 15)) *
115 (
q31_t) half) >> 15))) >> 15)) << 2;
120 (((
q31_t) var1 * var1) >> 15)) *
121 (
q31_t) half) >> 15))) >> 15)) << 2;
126 (((
q31_t) var1 * var1) >> 15)) *
127 (
q31_t) half) >> 15))) >> 15)) << 2;
130 var1 = ((
q15_t) (((
q31_t) temp1 * var1) >> 15)) << 1;
133 if((signBits1 % 2) == 0)
135 var1 = var1 >> (signBits1 / 2);
139 var1 = var1 >> ((signBits1 - 1) / 2);
float float32_t
32-bit floating-point type definition.
int16_t q15_t
16-bit fractional data type in 1.15 format.
int32_t q31_t
32-bit fractional data type in 1.31 format.
arm_status arm_sqrt_q15(q15_t in, q15_t *pOut)
Q15 square root function.
#define __CLZ
Count leading zeros.
arm_status
Error status returned by some functions in the library.