#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 r40470 = x;
        float r40471 = y;
        float r40472 = r40470 * r40471;
        float r40473 = z;
        float r40474 = r40472 * r40473;
        float r40475 = r40473 * r40473;
        float r40476 = t;
        float r40477 = a;
        float r40478 = r40476 * r40477;
        float r40479 = r40475 - r40478;
        float r40480 = sqrt(r40479);
        float r40481 = r40474 / r40480;
        return r40481;
}

double f_id(double x, double y, double z, double t, double a) {
        double r40482 = x;
        double r40483 = y;
        double r40484 = r40482 * r40483;
        double r40485 = z;
        double r40486 = r40484 * r40485;
        double r40487 = r40485 * r40485;
        double r40488 = t;
        double r40489 = a;
        double r40490 = r40488 * r40489;
        double r40491 = r40487 - r40490;
        double r40492 = sqrt(r40491);
        double r40493 = r40486 / r40492;
        return r40493;
}


double f_of(float x, float y, float z, float t, float a) {
        float r40494 = z;
        float r40495 = -2.3435713047613177e+111;
        bool r40496 = r40494 <= r40495;
        float r40497 = x;
        float r40498 = y;
        float r40499 = -r40498;
        float r40500 = r40497 * r40499;
        float r40501 = 3.215973189848367e+60;
        bool r40502 = r40494 <= r40501;
        float r40503 = r40498 * r40497;
        float r40504 = r40494 * r40494;
        float r40505 = a;
        float r40506 = t;
        float r40507 = r40505 * r40506;
        float r40508 = r40504 - r40507;
        float r40509 = cbrt(r40508);
        float r40510 = fabs(r40509);
        float r40511 = r40503 / r40510;
        float r40512 = r40506 * r40505;
        float r40513 = r40504 - r40512;
        float r40514 = cbrt(r40513);
        float r40515 = sqrt(r40514);
        float r40516 = r40494 / r40515;
        float r40517 = r40511 * r40516;
        float r40518 = r40502 ? r40517 : r40503;
        float r40519 = r40496 ? r40500 : r40518;
        return r40519;
}

double f_od(double x, double y, double z, double t, double a) {
        double r40520 = z;
        double r40521 = -2.3435713047613177e+111;
        bool r40522 = r40520 <= r40521;
        double r40523 = x;
        double r40524 = y;
        double r40525 = -r40524;
        double r40526 = r40523 * r40525;
        double r40527 = 3.215973189848367e+60;
        bool r40528 = r40520 <= r40527;
        double r40529 = r40524 * r40523;
        double r40530 = r40520 * r40520;
        double r40531 = a;
        double r40532 = t;
        double r40533 = r40531 * r40532;
        double r40534 = r40530 - r40533;
        double r40535 = cbrt(r40534);
        double r40536 = fabs(r40535);
        double r40537 = r40529 / r40536;
        double r40538 = r40532 * r40531;
        double r40539 = r40530 - r40538;
        double r40540 = cbrt(r40539);
        double r40541 = sqrt(r40540);
        double r40542 = r40520 / r40541;
        double r40543 = r40537 * r40542;
        double r40544 = r40528 ? r40543 : r40529;
        double r40545 = r40522 ? r40526 : r40544;
        return r40545;
}

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 r40546, r40547, r40548, r40549, r40550, r40551, r40552, r40553, r40554, r40555, r40556, r40557;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r40546);
        mpfr_init(r40547);
        mpfr_init(r40548);
        mpfr_init(r40549);
        mpfr_init(r40550);
        mpfr_init(r40551);
        mpfr_init(r40552);
        mpfr_init(r40553);
        mpfr_init(r40554);
        mpfr_init(r40555);
        mpfr_init(r40556);
        mpfr_init(r40557);
}

double f_im(double x, double y, double z, double t, double a) {
        mpfr_set_d(r40546, x, MPFR_RNDN);
        mpfr_set_d(r40547, y, MPFR_RNDN);
        mpfr_mul(r40548, r40546, r40547, MPFR_RNDN);
        mpfr_set_d(r40549, z, MPFR_RNDN);
        mpfr_mul(r40550, r40548, r40549, MPFR_RNDN);
        mpfr_mul(r40551, r40549, r40549, MPFR_RNDN);
        mpfr_set_d(r40552, t, MPFR_RNDN);
        mpfr_set_d(r40553, a, MPFR_RNDN);
        mpfr_mul(r40554, r40552, r40553, MPFR_RNDN);
        mpfr_sub(r40555, r40551, r40554, MPFR_RNDN);
        mpfr_sqrt(r40556, r40555, MPFR_RNDN);
        mpfr_div(r40557, r40550, r40556, MPFR_RNDN);
        return mpfr_get_d(r40557, MPFR_RNDN);
}

static mpfr_t r40558, r40559, r40560, r40561, r40562, r40563, r40564, r40565, r40566, r40567, r40568, r40569, r40570, r40571, r40572, r40573, r40574, r40575, r40576, r40577, r40578, r40579, r40580, r40581, r40582, r40583;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r40558);
        mpfr_init_set_str(r40559, "-2.3435713047613177e+111", 10, MPFR_RNDN);
        mpfr_init(r40560);
        mpfr_init(r40561);
        mpfr_init(r40562);
        mpfr_init(r40563);
        mpfr_init(r40564);
        mpfr_init_set_str(r40565, "3.215973189848367e+60", 10, MPFR_RNDN);
        mpfr_init(r40566);
        mpfr_init(r40567);
        mpfr_init(r40568);
        mpfr_init(r40569);
        mpfr_init(r40570);
        mpfr_init(r40571);
        mpfr_init(r40572);
        mpfr_init(r40573);
        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);
}

double f_fm(double x, double y, double z, double t, double a) {
        mpfr_set_d(r40558, z, MPFR_RNDN);
        ;
        mpfr_set_si(r40560, mpfr_cmp(r40558, r40559) <= 0, MPFR_RNDN);
        mpfr_set_d(r40561, x, MPFR_RNDN);
        mpfr_set_d(r40562, y, MPFR_RNDN);
        mpfr_neg(r40563, r40562, MPFR_RNDN);
        mpfr_mul(r40564, r40561, r40563, MPFR_RNDN);
        ;
        mpfr_set_si(r40566, mpfr_cmp(r40558, r40565) <= 0, MPFR_RNDN);
        mpfr_mul(r40567, r40562, r40561, MPFR_RNDN);
        mpfr_mul(r40568, r40558, r40558, MPFR_RNDN);
        mpfr_set_d(r40569, a, MPFR_RNDN);
        mpfr_set_d(r40570, t, MPFR_RNDN);
        mpfr_mul(r40571, r40569, r40570, MPFR_RNDN);
        mpfr_sub(r40572, r40568, r40571, MPFR_RNDN);
        mpfr_cbrt(r40573, r40572, MPFR_RNDN);
        mpfr_abs(r40574, r40573, MPFR_RNDN);
        mpfr_div(r40575, r40567, r40574, MPFR_RNDN);
        mpfr_mul(r40576, r40570, r40569, MPFR_RNDN);
        mpfr_sub(r40577, r40568, r40576, MPFR_RNDN);
        mpfr_cbrt(r40578, r40577, MPFR_RNDN);
        mpfr_sqrt(r40579, r40578, MPFR_RNDN);
        mpfr_div(r40580, r40558, r40579, MPFR_RNDN);
        mpfr_mul(r40581, r40575, r40580, MPFR_RNDN);
        if (mpfr_get_si(r40566, MPFR_RNDN)) { mpfr_set(r40582, r40581, MPFR_RNDN); } else { mpfr_set(r40582, r40567, MPFR_RNDN); };
        if (mpfr_get_si(r40560, MPFR_RNDN)) { mpfr_set(r40583, r40564, MPFR_RNDN); } else { mpfr_set(r40583, r40582, MPFR_RNDN); };
        return mpfr_get_d(r40583, MPFR_RNDN);
}

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

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r40584);
        mpfr_init_set_str(r40585, "-2.3435713047613177e+111", 10, MPFR_RNDN);
        mpfr_init(r40586);
        mpfr_init(r40587);
        mpfr_init(r40588);
        mpfr_init(r40589);
        mpfr_init(r40590);
        mpfr_init_set_str(r40591, "3.215973189848367e+60", 10, MPFR_RNDN);
        mpfr_init(r40592);
        mpfr_init(r40593);
        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);
}

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

