static float invsqlook(float a) {
        double d = a * (2.f * (float) INVSQ_LOOKUP_SZ) - (float) INVSQ_LOOKUP_SZ;
        int i = (int) d;
        return INVSQ_LOOKUP[i] + ((float) (d - i)) * (INVSQ_LOOKUP[i + 1] - INVSQ_LOOKUP[i]);
    }
static float invsqlook ( float a ) { double d = a * ( 2.f * ( float ) INVSQ_LOOKUP_SZ ) - ( float ) INVSQ_LOOKUP_SZ ; int i = ( int ) d ; return INVSQ_LOOKUP [ i ] + ( ( float ) ( d - i ) ) * ( INVSQ_LOOKUP [ i + 1 ] - INVSQ_LOOKUP [ i ] ) ; }
/* interpolated 1./sqrt(p) where .5 <= p < 1.