• Davidlohr Bueso's avatar
    lib/int_sqrt.c: optimize square root algorithm · 30493cc9
    Davidlohr Bueso authored
    Optimize the current version of the shift-and-subtract (hardware)
    algorithm, described by John von Newmann[1] and Guy L Steele.
    
    Iterating 1,000,000 times, perf shows for the current version:
    
     Performance counter stats for './sqrt-curr' (10 runs):
    
             27.170996 task-clock                #    0.979 CPUs utilized            ( +-  3.19% )
                     3 context-switches          #    0.103 K/sec                    ( +-  4.76% )
                     0 cpu-migrations            #    0.004 K/sec                    ( +-100.00% )
                   104 page-faults               #    0.004 M/sec                    ( +-  0.16% )
            64,921,199 cycles                    #    2.389 GHz                      ( +-  0.03% )
            28,967,789 stalled-cycles-frontend   #   44.62% frontend cycles idle     ( +-  0.18% )
       <not supported> stalled-cycles-backend
           104,502,623 instructions              #    1.61  insns per cycle
                                           ...
    30493cc9
int_sqrt.c 652 Bytes