#include <tgmath.h>
#include <gmp.h>
#include <mpfr.h>
#include <stdio.h>
#include <stdbool.h>

char *name = "Statistics.Math.RootFinding:ridders from math-functions-0.1.5.2";

double f_if(float x, float y, float z, float t, float a) {
        float r40498 = x;
        float r40499 = y;
        float r40500 = r40498 * r40499;
        float r40501 = z;
        float r40502 = r40500 * r40501;
        float r40503 = r40501 * r40501;
        float r40504 = t;
        float r40505 = a;
        float r40506 = r40504 * r40505;
        float r40507 = r40503 - r40506;
        float r40508 = sqrt(r40507);
        float r40509 = r40502 / r40508;
        return r40509;
}

double f_id(double x, double y, double z, double t, double a) {
        double r40510 = x;
        double r40511 = y;
        double r40512 = r40510 * r40511;
        double r40513 = z;
        double r40514 = r40512 * r40513;
        double r40515 = r40513 * r40513;
        double r40516 = t;
        double r40517 = a;
        double r40518 = r40516 * r40517;
        double r40519 = r40515 - r40518;
        double r40520 = sqrt(r40519);
        double r40521 = r40514 / r40520;
        return r40521;
}


double f_of(float x, float y, float z, float t, float a) {
        float r40522 = z;
        float r40523 = -1.2709557362568119e+112;
        bool r40524 = r40522 <= r40523;
        float r40525 = x;
        float r40526 = y;
        float r40527 = -r40526;
        float r40528 = r40525 * r40527;
        float r40529 = 3.0149748654828578e+60;
        bool r40530 = r40522 <= r40529;
        float r40531 = r40526 * r40525;
        float r40532 = r40522 * r40522;
        float r40533 = a;
        float r40534 = t;
        float r40535 = r40533 * r40534;
        float r40536 = r40532 - r40535;
        float r40537 = cbrt(r40536);
        float r40538 = fabs(r40537);
        float r40539 = r40531 / r40538;
        float r40540 = r40534 * r40533;
        float r40541 = r40532 - r40540;
        float r40542 = cbrt(r40541);
        float r40543 = sqrt(r40542);
        float r40544 = r40522 / r40543;
        float r40545 = r40539 * r40544;
        float r40546 = r40530 ? r40545 : r40531;
        float r40547 = r40524 ? r40528 : r40546;
        return r40547;
}

double f_od(double x, double y, double z, double t, double a) {
        double r40548 = z;
        double r40549 = -1.2709557362568119e+112;
        bool r40550 = r40548 <= r40549;
        double r40551 = x;
        double r40552 = y;
        double r40553 = -r40552;
        double r40554 = r40551 * r40553;
        double r40555 = 3.0149748654828578e+60;
        bool r40556 = r40548 <= r40555;
        double r40557 = r40552 * r40551;
        double r40558 = r40548 * r40548;
        double r40559 = a;
        double r40560 = t;
        double r40561 = r40559 * r40560;
        double r40562 = r40558 - r40561;
        double r40563 = cbrt(r40562);
        double r40564 = fabs(r40563);
        double r40565 = r40557 / r40564;
        double r40566 = r40560 * r40559;
        double r40567 = r40558 - r40566;
        double r40568 = cbrt(r40567);
        double r40569 = sqrt(r40568);
        double r40570 = r40548 / r40569;
        double r40571 = r40565 * r40570;
        double r40572 = r40556 ? r40571 : r40557;
        double r40573 = r40550 ? r40554 : r40572;
        return r40573;
}

void mpfr_fmod2(mpfr_t r, mpfr_t n, mpfr_t d, mpfr_rnd_t rmd) {
        mpfr_fmod(r, n, d, rmd);
        if (mpfr_cmp_ui(r, 0) < 0) mpfr_add(r, r, d, rmd);
}


static mpfr_t r40574, r40575, r40576, r40577, r40578, r40579, r40580, r40581, r40582, r40583, r40584, r40585;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r40574);
        mpfr_init(r40575);
        mpfr_init(r40576);
        mpfr_init(r40577);
        mpfr_init(r40578);
        mpfr_init(r40579);
        mpfr_init(r40580);
        mpfr_init(r40581);
        mpfr_init(r40582);
        mpfr_init(r40583);
        mpfr_init(r40584);
        mpfr_init(r40585);
}

double f_im(double x, double y, double z, double t, double a) {
        mpfr_set_d(r40574, x, MPFR_RNDN);
        mpfr_set_d(r40575, y, MPFR_RNDN);
        mpfr_mul(r40576, r40574, r40575, MPFR_RNDN);
        mpfr_set_d(r40577, z, MPFR_RNDN);
        mpfr_mul(r40578, r40576, r40577, MPFR_RNDN);
        mpfr_mul(r40579, r40577, r40577, MPFR_RNDN);
        mpfr_set_d(r40580, t, MPFR_RNDN);
        mpfr_set_d(r40581, a, MPFR_RNDN);
        mpfr_mul(r40582, r40580, r40581, MPFR_RNDN);
        mpfr_sub(r40583, r40579, r40582, MPFR_RNDN);
        mpfr_sqrt(r40584, r40583, MPFR_RNDN);
        mpfr_div(r40585, r40578, r40584, MPFR_RNDN);
        return mpfr_get_d(r40585, MPFR_RNDN);
}

static mpfr_t r40586, r40587, r40588, r40589, r40590, r40591, r40592, r40593, r40594, r40595, r40596, r40597, r40598, r40599, r40600, r40601, r40602, r40603, r40604, r40605, r40606, r40607, r40608, r40609, r40610, r40611;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r40586);
        mpfr_init_set_str(r40587, "-1.2709557362568119e+112", 10, MPFR_RNDN);
        mpfr_init(r40588);
        mpfr_init(r40589);
        mpfr_init(r40590);
        mpfr_init(r40591);
        mpfr_init(r40592);
        mpfr_init_set_str(r40593, "3.0149748654828578e+60", 10, MPFR_RNDN);
        mpfr_init(r40594);
        mpfr_init(r40595);
        mpfr_init(r40596);
        mpfr_init(r40597);
        mpfr_init(r40598);
        mpfr_init(r40599);
        mpfr_init(r40600);
        mpfr_init(r40601);
        mpfr_init(r40602);
        mpfr_init(r40603);
        mpfr_init(r40604);
        mpfr_init(r40605);
        mpfr_init(r40606);
        mpfr_init(r40607);
        mpfr_init(r40608);
        mpfr_init(r40609);
        mpfr_init(r40610);
        mpfr_init(r40611);
}

double f_fm(double x, double y, double z, double t, double a) {
        mpfr_set_d(r40586, z, MPFR_RNDN);
        ;
        mpfr_set_si(r40588, mpfr_cmp(r40586, r40587) <= 0, MPFR_RNDN);
        mpfr_set_d(r40589, x, MPFR_RNDN);
        mpfr_set_d(r40590, y, MPFR_RNDN);
        mpfr_neg(r40591, r40590, MPFR_RNDN);
        mpfr_mul(r40592, r40589, r40591, MPFR_RNDN);
        ;
        mpfr_set_si(r40594, mpfr_cmp(r40586, r40593) <= 0, MPFR_RNDN);
        mpfr_mul(r40595, r40590, r40589, MPFR_RNDN);
        mpfr_mul(r40596, r40586, r40586, MPFR_RNDN);
        mpfr_set_d(r40597, a, MPFR_RNDN);
        mpfr_set_d(r40598, t, MPFR_RNDN);
        mpfr_mul(r40599, r40597, r40598, MPFR_RNDN);
        mpfr_sub(r40600, r40596, r40599, MPFR_RNDN);
        mpfr_cbrt(r40601, r40600, MPFR_RNDN);
        mpfr_abs(r40602, r40601, MPFR_RNDN);
        mpfr_div(r40603, r40595, r40602, MPFR_RNDN);
        mpfr_mul(r40604, r40598, r40597, MPFR_RNDN);
        mpfr_sub(r40605, r40596, r40604, MPFR_RNDN);
        mpfr_cbrt(r40606, r40605, MPFR_RNDN);
        mpfr_sqrt(r40607, r40606, MPFR_RNDN);
        mpfr_div(r40608, r40586, r40607, MPFR_RNDN);
        mpfr_mul(r40609, r40603, r40608, MPFR_RNDN);
        if (mpfr_get_si(r40594, MPFR_RNDN)) { mpfr_set(r40610, r40609, MPFR_RNDN); } else { mpfr_set(r40610, r40595, MPFR_RNDN); };
        if (mpfr_get_si(r40588, MPFR_RNDN)) { mpfr_set(r40611, r40592, MPFR_RNDN); } else { mpfr_set(r40611, r40610, MPFR_RNDN); };
        return mpfr_get_d(r40611, MPFR_RNDN);
}

static mpfr_t r40612, r40613, r40614, r40615, r40616, r40617, r40618, r40619, r40620, r40621, r40622, r40623, r40624, r40625, r40626, r40627, r40628, r40629, r40630, r40631, r40632, r40633, r40634, r40635, r40636, r40637;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r40612);
        mpfr_init_set_str(r40613, "-1.2709557362568119e+112", 10, MPFR_RNDN);
        mpfr_init(r40614);
        mpfr_init(r40615);
        mpfr_init(r40616);
        mpfr_init(r40617);
        mpfr_init(r40618);
        mpfr_init_set_str(r40619, "3.0149748654828578e+60", 10, MPFR_RNDN);
        mpfr_init(r40620);
        mpfr_init(r40621);
        mpfr_init(r40622);
        mpfr_init(r40623);
        mpfr_init(r40624);
        mpfr_init(r40625);
        mpfr_init(r40626);
        mpfr_init(r40627);
        mpfr_init(r40628);
        mpfr_init(r40629);
        mpfr_init(r40630);
        mpfr_init(r40631);
        mpfr_init(r40632);
        mpfr_init(r40633);
        mpfr_init(r40634);
        mpfr_init(r40635);
        mpfr_init(r40636);
        mpfr_init(r40637);
}

double f_dm(double x, double y, double z, double t, double a) {
        mpfr_set_d(r40612, z, MPFR_RNDN);
        ;
        mpfr_set_si(r40614, mpfr_cmp(r40612, r40613) <= 0, MPFR_RNDN);
        mpfr_set_d(r40615, x, MPFR_RNDN);
        mpfr_set_d(r40616, y, MPFR_RNDN);
        mpfr_neg(r40617, r40616, MPFR_RNDN);
        mpfr_mul(r40618, r40615, r40617, MPFR_RNDN);
        ;
        mpfr_set_si(r40620, mpfr_cmp(r40612, r40619) <= 0, MPFR_RNDN);
        mpfr_mul(r40621, r40616, r40615, MPFR_RNDN);
        mpfr_mul(r40622, r40612, r40612, MPFR_RNDN);
        mpfr_set_d(r40623, a, MPFR_RNDN);
        mpfr_set_d(r40624, t, MPFR_RNDN);
        mpfr_mul(r40625, r40623, r40624, MPFR_RNDN);
        mpfr_sub(r40626, r40622, r40625, MPFR_RNDN);
        mpfr_cbrt(r40627, r40626, MPFR_RNDN);
        mpfr_abs(r40628, r40627, MPFR_RNDN);
        mpfr_div(r40629, r40621, r40628, MPFR_RNDN);
        mpfr_mul(r40630, r40624, r40623, MPFR_RNDN);
        mpfr_sub(r40631, r40622, r40630, MPFR_RNDN);
        mpfr_cbrt(r40632, r40631, MPFR_RNDN);
        mpfr_sqrt(r40633, r40632, MPFR_RNDN);
        mpfr_div(r40634, r40612, r40633, MPFR_RNDN);
        mpfr_mul(r40635, r40629, r40634, MPFR_RNDN);
        if (mpfr_get_si(r40620, MPFR_RNDN)) { mpfr_set(r40636, r40635, MPFR_RNDN); } else { mpfr_set(r40636, r40621, MPFR_RNDN); };
        if (mpfr_get_si(r40614, MPFR_RNDN)) { mpfr_set(r40637, r40618, MPFR_RNDN); } else { mpfr_set(r40637, r40636, MPFR_RNDN); };
        return mpfr_get_d(r40637, MPFR_RNDN);
}

