Example #1
0
FLOAT
athAdjust(FLOAT a, FLOAT x, FLOAT athFloor, float ATHfixpoint)
{
    /*  work in progress
     */
    FLOAT const o = 90.30873362f;
    FLOAT const p = (ATHfixpoint < 1.f) ? 94.82444863f : ATHfixpoint;
    FLOAT   u = FAST_LOG10_X(x, 10.0f);
    FLOAT const v = a * a;
    FLOAT   w = 0.0f;
    u -= athFloor;      /* undo scaling */
    if (v > 1E-20f)
        w = 1.f + FAST_LOG10_X(v, 10.0f / o);
    if (w < 0)
        w = 0.f;
    u *= w;
    u += athFloor + o - p; /* redo scaling */

    return powf(10.f, 0.1f * u);
}
Example #2
0
FLOAT
athAdjust(FLOAT a, FLOAT x, FLOAT athFloor)
{
    /*  work in progress
     */
    FLOAT const o = 90.30873362;
    FLOAT const p = 94.82444863;
    FLOAT   u = FAST_LOG10_X(x, 10.0);
    FLOAT const v = a * a;
    FLOAT   w = 0.0;
    u -= athFloor;      /* undo scaling */
    if (v > 1E-20)
        w = 1. + FAST_LOG10_X(v, 10.0 / o);
    if (w < 0)
        w = 0.;
    u *= w;
    u += athFloor + o - p; /* redo scaling */

    return pow(10., 0.1 * u);
}