Subversion Repositories DashDisplay

Rev

Rev 2 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2 Rev 5
Line 1... Line 1...
1
/* ----------------------------------------------------------------------    
1
/* ----------------------------------------------------------------------    
2
* Copyright (C) 2010-2014 ARM Limited. All rights reserved.  
2
* Copyright (C) 2010-2014 ARM Limited. All rights reserved.  
3
*    
3
*    
4
* $Date:        19. March 2015
4
* $Date:        19. October 2015
5
* $Revision:    V.1.4.5
5
* $Revision:    V.1.4.5 a
6
*    
6
*    
7
* Project:      CMSIS DSP Library  
7
* Project:      CMSIS DSP Library  
8
* Title:                arm_sqrt_q15.c    
8
* Title:                arm_sqrt_q15.c    
9
*    
9
*    
10
* Description:  Q15 square root function.    
10
* Description:  Q15 square root function.    
Line 92... Line 92...
92
    /* Calculate half value of the number */
92
    /* Calculate half value of the number */
93
    half = number >> 1;
93
    half = number >> 1;
94
    /* Store the number for later use */
94
    /* Store the number for later use */
95
    temp1 = number;
95
    temp1 = number;
96
 
96
 
97
    /*Convert to float */
97
    /* Convert to float */
98
    temp_float1 = number * 3.051757812500000e-005f;
98
    temp_float1 = number * 3.051757812500000e-005f;
99
    /*Store as integer */
99
    /*Store as integer */
100
    tempconv.floatval = temp_float1;
100
    tempconv.floatval = temp_float1;
101
    bits_val1 = tempconv.fracval;
101
    bits_val1 = tempconv.fracval;
102
    /* Subtract the shifted value from the magic number to give intial guess */
102
    /* Subtract the shifted value from the magic number to give intial guess */
103
    bits_val1 = 0x5f3759df - (bits_val1 >> 1);  // gives initial guess  
103
    bits_val1 = 0x5f3759df - (bits_val1 >> 1);  /* gives initial guess */
104
    /* Store as float */
104
    /* Store as float */
105
    tempconv.fracval = bits_val1;
105
    tempconv.fracval = bits_val1;
106
    temp_float1 = tempconv.floatval;
106
    temp_float1 = tempconv.floatval;
107
    /* Convert to integer format */
107
    /* Convert to integer format */
108
    var1 = (q31_t) (temp_float1 * 16384);
108
    var1 = (q31_t) (temp_float1 * 16384);