int float_near_ulp(float a, float b, unsigned max_ulp)

{

    union av_intfloat32 x, y;



    x.f = a;

    y.f = b;



    if (is_negative(x) != is_negative(y)) {

        // handle -0.0 == +0.0

        return a == b;

    }



    if (abs(x.i - y.i) <= max_ulp)

        return 1;



    return 0;

}

int float_near_ulp(float a, float b, unsigned max_ulp)

{

    union av_intfloat32 x, y;



    x.f = a;

    y.f = b;



    if (is_negative(x) != is_negative(y)) {

        

        return a == b;

    }



    if (abs(x.i - y.i) <= max_ulp)

        return 1;



    return 0;

}

int FUNC_0(float VAR_0, float VAR_1, unsigned VAR_2)

{

    union av_intfloat32 VAR_3, VAR_4;



    VAR_3.f = VAR_0;

    VAR_4.f = VAR_1;



    if (is_negative(VAR_3) != is_negative(VAR_4)) {

        

        return VAR_0 == VAR_1;

    }



    if (abs(VAR_3.i - VAR_4.i) <= VAR_2)

        return 1;



    return 0;

}

int FUNC_0(float VAR_0, float VAR_1, unsigned VAR_2)
{ union av_intfloat32 VAR_3, VAR_4; VAR_3.f = VAR_0; VAR_4.f = VAR_1; if (is_negative(VAR_3) != is_negative(VAR_4)) { return VAR_0 == VAR_1; } if (abs(VAR_3.i - VAR_4.i) <= VAR_2)
return 1; return 0; }