static double setup_compress_thresh(double threshold)

{

    if ((threshold > DBL_EPSILON) && (threshold < (1.0 - DBL_EPSILON))) {

        double current_threshold = threshold;

        double step_size = 1.0;



        while (step_size > DBL_EPSILON) {

            while ((current_threshold + step_size > current_threshold) &&

                   (bound(current_threshold + step_size, 1.0) <= threshold)) {

                current_threshold += step_size;

            }



            step_size /= 2.0;

        }



        return current_threshold;

    } else {

        return threshold;

    }

}

static double setup_compress_thresh(double threshold)

{

    if ((threshold > DBL_EPSILON) && (threshold < (1.0 - DBL_EPSILON))) {

        double current_threshold = threshold;

        double step_size = 1.0;



        while (step_size > DBL_EPSILON) {

            while ((current_threshold + step_size > current_threshold) &&

                   (bound(current_threshold + step_size, 1.0) <= threshold)) {

                current_threshold += step_size;

            }



            step_size /= 2.0;

        }



        return current_threshold;

    } else {

        return threshold;

    }

}

static double FUNC_0(double VAR_0)

{

    if ((VAR_0 > DBL_EPSILON) && (VAR_0 < (1.0 - DBL_EPSILON))) {

        double VAR_1 = VAR_0;

        double VAR_2 = 1.0;



        while (VAR_2 > DBL_EPSILON) {

            while ((VAR_1 + VAR_2 > VAR_1) &&

                   (bound(VAR_1 + VAR_2, 1.0) <= VAR_0)) {

                VAR_1 += VAR_2;

            }



            VAR_2 /= 2.0;

        }



        return VAR_1;

    } else {

        return VAR_0;

    }

}

static double FUNC_0(double VAR_0)
{ if ((VAR_0 > DBL_EPSILON) && (VAR_0 < (1.0 - DBL_EPSILON))) { double VAR_1 = VAR_0; double VAR_2 = 1.0; while (VAR_2 > DBL_EPSILON) { while ((VAR_1 + VAR_2 > VAR_1) &&
(bound(VAR_1 + VAR_2, 1.0) <= VAR_0)) { VAR_1 += VAR_2; } VAR_2 /= 2.0; } return VAR_1; } else { return VAR_0; } }