Unustasid parooli?



     
Sisseloginud kasutajatele märgistatakse automaatselt teksti piirkonnad, mis on muutunud alates viimasest lugemisest. Lisandunud osa on roheline, eemaldatud osa punane.
Lisaks märgistatakse sisseloginud kasutajatele menüüs täiendavate värvide abil artiklid, mis on kasutajal loetud (hall), ning artiklid, mis on peale lugemist täienenud (roheline).

   

     

Pealkiri :
Id (lühend aadressiribale) :
Autor ja viimase muudatuse autor :
Loomise aeg ja viimane muudatus :
Teksti pikkus :
Luba ligipääs ainult kasutajanimedele (eralda komadega). Autoril on alati ligipääs. :




Fast log function
 
Original: http://www.flipcode.com/archives/Fast_log_Function.shtml - a code snippet to replace the slow log() function... It just performs an approximation, but the maximum error is below 0.007.
 
I made some small updates to the proposed code:
 
float fast_log2(float val)
{
    int * const  exp_ptr = reinterpret_cast<int *>(&val);
    int          &x = *exp_ptr;
    //const int  log_2 = ((x >> 23) & 255) - 128;
    const int    log_2 = (x >> 23) - 128;    // (1) : "& 255" is not necessary as log of -0 (val < 0) is illegal anyway
  
    x &= ~(255 << 23);
    x += 127 << 23;
    //*exp_ptr = x;  
    val = ((-1.0f/3) * val + 2) * val - 2.0f/3;   // (2)
    return (val + log_2);
}
 
Comments:
1) The line "const int  log_2 = ((x >> 23) & 255) - 128" is commented out and replaced with a simplified one, because we do not need the bit mask given the requirement that val > 0.
2) The line marked with (2) computes 1 + log2(m), m ranging from 1 to 2. The proposed formula is a 3rd degree polynomial keeping first derivate continuity. Higher degree could be used for more accuracy. For faster results, one can remove this line, if accuracy is not the matter (it gives some linear interpolation between powers of 2). 
 
 
See also:
* http://forums.appleinsider.com/archive/index.php/t-15207.html - Taylor series for calculating log function.
* http://roland.pri.ee/wiki/fast_math_functions - Fast implementations for various math functions
* http://roland.pri.ee/wiki/logarithm_of_a_sum - Method for calculating precise logarithm of a sum
 
 
 

kommentaarium spämmi tõttu ajutiselt välja lülitatud








  Saada kiri