( uid_6201 | 2021. 07. 20., k – 13:56 )

Nem Taylor sor, van gyorsabb is:

float _fast_log2(const float val) {
    float mp = 0.346607f; 
    float result = (float)*((int*)&val); 
    result *= 1.0/(1<<23); 
    result = result - 127;   
    float tmp = result - floorf(result); 
    tmp = (tmp - tmp*tmp) * mp; 
    return tmp + result;
}

Másik logaritmus alapra áttérés: az eredményt egyszerűen szorozd meg float-os konstanssal.