#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 r40389 = x;
        float r40390 = y;
        float r40391 = r40389 * r40390;
        float r40392 = z;
        float r40393 = r40391 * r40392;
        float r40394 = r40392 * r40392;
        float r40395 = t;
        float r40396 = a;
        float r40397 = r40395 * r40396;
        float r40398 = r40394 - r40397;
        float r40399 = sqrt(r40398);
        float r40400 = r40393 / r40399;
        return r40400;
}

double f_id(double x, double y, double z, double t, double a) {
        double r40401 = x;
        double r40402 = y;
        double r40403 = r40401 * r40402;
        double r40404 = z;
        double r40405 = r40403 * r40404;
        double r40406 = r40404 * r40404;
        double r40407 = t;
        double r40408 = a;
        double r40409 = r40407 * r40408;
        double r40410 = r40406 - r40409;
        double r40411 = sqrt(r40410);
        double r40412 = r40405 / r40411;
        return r40412;
}


double f_of(float x, float y, float z, float t, float a) {
        float r40413 = z;
        float r40414 = -1.2709557362568119e+112;
        bool r40415 = r40413 <= r40414;
        float r40416 = x;
        float r40417 = y;
        float r40418 = -r40417;
        float r40419 = r40416 * r40418;
        float r40420 = 3.0149748654828578e+60;
        bool r40421 = r40413 <= r40420;
        float r40422 = r40417 * r40416;
        float r40423 = r40413 * r40413;
        float r40424 = a;
        float r40425 = t;
        float r40426 = r40424 * r40425;
        float r40427 = r40423 - r40426;
        float r40428 = cbrt(r40427);
        float r40429 = fabs(r40428);
        float r40430 = r40422 / r40429;
        float r40431 = r40425 * r40424;
        float r40432 = r40423 - r40431;
        float r40433 = cbrt(r40432);
        float r40434 = sqrt(r40433);
        float r40435 = r40413 / r40434;
        float r40436 = r40430 * r40435;
        float r40437 = r40421 ? r40436 : r40422;
        float r40438 = r40415 ? r40419 : r40437;
        return r40438;
}

double f_od(double x, double y, double z, double t, double a) {
        double r40439 = z;
        double r40440 = -1.2709557362568119e+112;
        bool r40441 = r40439 <= r40440;
        double r40442 = x;
        double r40443 = y;
        double r40444 = -r40443;
        double r40445 = r40442 * r40444;
        double r40446 = 3.0149748654828578e+60;
        bool r40447 = r40439 <= r40446;
        double r40448 = r40443 * r40442;
        double r40449 = r40439 * r40439;
        double r40450 = a;
        double r40451 = t;
        double r40452 = r40450 * r40451;
        double r40453 = r40449 - r40452;
        double r40454 = cbrt(r40453);
        double r40455 = fabs(r40454);
        double r40456 = r40448 / r40455;
        double r40457 = r40451 * r40450;
        double r40458 = r40449 - r40457;
        double r40459 = cbrt(r40458);
        double r40460 = sqrt(r40459);
        double r40461 = r40439 / r40460;
        double r40462 = r40456 * r40461;
        double r40463 = r40447 ? r40462 : r40448;
        double r40464 = r40441 ? r40445 : r40463;
        return r40464;
}

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 r40465, r40466, r40467, r40468, r40469, r40470, r40471, r40472, r40473, r40474, r40475, r40476;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r40465);
        mpfr_init(r40466);
        mpfr_init(r40467);
        mpfr_init(r40468);
        mpfr_init(r40469);
        mpfr_init(r40470);
        mpfr_init(r40471);
        mpfr_init(r40472);
        mpfr_init(r40473);
        mpfr_init(r40474);
        mpfr_init(r40475);
        mpfr_init(r40476);
}

double f_im(double x, double y, double z, double t, double a) {
        mpfr_set_d(r40465, x, MPFR_RNDN);
        mpfr_set_d(r40466, y, MPFR_RNDN);
        mpfr_mul(r40467, r40465, r40466, MPFR_RNDN);
        mpfr_set_d(r40468, z, MPFR_RNDN);
        mpfr_mul(r40469, r40467, r40468, MPFR_RNDN);
        mpfr_mul(r40470, r40468, r40468, MPFR_RNDN);
        mpfr_set_d(r40471, t, MPFR_RNDN);
        mpfr_set_d(r40472, a, MPFR_RNDN);
        mpfr_mul(r40473, r40471, r40472, MPFR_RNDN);
        mpfr_sub(r40474, r40470, r40473, MPFR_RNDN);
        mpfr_sqrt(r40475, r40474, MPFR_RNDN);
        mpfr_div(r40476, r40469, r40475, MPFR_RNDN);
        return mpfr_get_d(r40476, MPFR_RNDN);
}

static mpfr_t r40477, r40478, r40479, r40480, r40481, r40482, r40483, r40484, r40485, r40486, r40487, r40488, r40489, r40490, r40491, r40492, r40493, r40494, r40495, r40496, r40497, r40498, r40499, r40500, r40501, r40502;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init(r40477);
        mpfr_init_set_str(r40478, "-1.2709557362568119e+112", 10, MPFR_RNDN);
        mpfr_init(r40479);
        mpfr_init(r40480);
        mpfr_init(r40481);
        mpfr_init(r40482);
        mpfr_init(r40483);
        mpfr_init_set_str(r40484, "3.0149748654828578e+60", 10, MPFR_RNDN);
        mpfr_init(r40485);
        mpfr_init(r40486);
        mpfr_init(r40487);
        mpfr_init(r40488);
        mpfr_init(r40489);
        mpfr_init(r40490);
        mpfr_init(r40491);
        mpfr_init(r40492);
        mpfr_init(r40493);
        mpfr_init(r40494);
        mpfr_init(r40495);
        mpfr_init(r40496);
        mpfr_init(r40497);
        mpfr_init(r40498);
        mpfr_init(r40499);
        mpfr_init(r40500);
        mpfr_init(r40501);
        mpfr_init(r40502);
}

double f_fm(double x, double y, double z, double t, double a) {
        mpfr_set_d(r40477, z, MPFR_RNDN);
        ;
        mpfr_set_si(r40479, mpfr_cmp(r40477, r40478) <= 0, MPFR_RNDN);
        mpfr_set_d(r40480, x, MPFR_RNDN);
        mpfr_set_d(r40481, y, MPFR_RNDN);
        mpfr_neg(r40482, r40481, MPFR_RNDN);
        mpfr_mul(r40483, r40480, r40482, MPFR_RNDN);
        ;
        mpfr_set_si(r40485, mpfr_cmp(r40477, r40484) <= 0, MPFR_RNDN);
        mpfr_mul(r40486, r40481, r40480, MPFR_RNDN);
        mpfr_mul(r40487, r40477, r40477, MPFR_RNDN);
        mpfr_set_d(r40488, a, MPFR_RNDN);
        mpfr_set_d(r40489, t, MPFR_RNDN);
        mpfr_mul(r40490, r40488, r40489, MPFR_RNDN);
        mpfr_sub(r40491, r40487, r40490, MPFR_RNDN);
        mpfr_cbrt(r40492, r40491, MPFR_RNDN);
        mpfr_abs(r40493, r40492, MPFR_RNDN);
        mpfr_div(r40494, r40486, r40493, MPFR_RNDN);
        mpfr_mul(r40495, r40489, r40488, MPFR_RNDN);
        mpfr_sub(r40496, r40487, r40495, MPFR_RNDN);
        mpfr_cbrt(r40497, r40496, MPFR_RNDN);
        mpfr_sqrt(r40498, r40497, MPFR_RNDN);
        mpfr_div(r40499, r40477, r40498, MPFR_RNDN);
        mpfr_mul(r40500, r40494, r40499, MPFR_RNDN);
        if (mpfr_get_si(r40485, MPFR_RNDN)) { mpfr_set(r40501, r40500, MPFR_RNDN); } else { mpfr_set(r40501, r40486, MPFR_RNDN); };
        if (mpfr_get_si(r40479, MPFR_RNDN)) { mpfr_set(r40502, r40483, MPFR_RNDN); } else { mpfr_set(r40502, r40501, MPFR_RNDN); };
        return mpfr_get_d(r40502, MPFR_RNDN);
}

static mpfr_t r40503, r40504, r40505, r40506, r40507, r40508, r40509, r40510, r40511, r40512, r40513, r40514, r40515, r40516, r40517, r40518, r40519, r40520, r40521, r40522, r40523, r40524, r40525, r40526, r40527, r40528;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init(r40503);
        mpfr_init_set_str(r40504, "-1.2709557362568119e+112", 10, MPFR_RNDN);
        mpfr_init(r40505);
        mpfr_init(r40506);
        mpfr_init(r40507);
        mpfr_init(r40508);
        mpfr_init(r40509);
        mpfr_init_set_str(r40510, "3.0149748654828578e+60", 10, MPFR_RNDN);
        mpfr_init(r40511);
        mpfr_init(r40512);
        mpfr_init(r40513);
        mpfr_init(r40514);
        mpfr_init(r40515);
        mpfr_init(r40516);
        mpfr_init(r40517);
        mpfr_init(r40518);
        mpfr_init(r40519);
        mpfr_init(r40520);
        mpfr_init(r40521);
        mpfr_init(r40522);
        mpfr_init(r40523);
        mpfr_init(r40524);
        mpfr_init(r40525);
        mpfr_init(r40526);
        mpfr_init(r40527);
        mpfr_init(r40528);
}

double f_dm(double x, double y, double z, double t, double a) {
        mpfr_set_d(r40503, z, MPFR_RNDN);
        ;
        mpfr_set_si(r40505, mpfr_cmp(r40503, r40504) <= 0, MPFR_RNDN);
        mpfr_set_d(r40506, x, MPFR_RNDN);
        mpfr_set_d(r40507, y, MPFR_RNDN);
        mpfr_neg(r40508, r40507, MPFR_RNDN);
        mpfr_mul(r40509, r40506, r40508, MPFR_RNDN);
        ;
        mpfr_set_si(r40511, mpfr_cmp(r40503, r40510) <= 0, MPFR_RNDN);
        mpfr_mul(r40512, r40507, r40506, MPFR_RNDN);
        mpfr_mul(r40513, r40503, r40503, MPFR_RNDN);
        mpfr_set_d(r40514, a, MPFR_RNDN);
        mpfr_set_d(r40515, t, MPFR_RNDN);
        mpfr_mul(r40516, r40514, r40515, MPFR_RNDN);
        mpfr_sub(r40517, r40513, r40516, MPFR_RNDN);
        mpfr_cbrt(r40518, r40517, MPFR_RNDN);
        mpfr_abs(r40519, r40518, MPFR_RNDN);
        mpfr_div(r40520, r40512, r40519, MPFR_RNDN);
        mpfr_mul(r40521, r40515, r40514, MPFR_RNDN);
        mpfr_sub(r40522, r40513, r40521, MPFR_RNDN);
        mpfr_cbrt(r40523, r40522, MPFR_RNDN);
        mpfr_sqrt(r40524, r40523, MPFR_RNDN);
        mpfr_div(r40525, r40503, r40524, MPFR_RNDN);
        mpfr_mul(r40526, r40520, r40525, MPFR_RNDN);
        if (mpfr_get_si(r40511, MPFR_RNDN)) { mpfr_set(r40527, r40526, MPFR_RNDN); } else { mpfr_set(r40527, r40512, MPFR_RNDN); };
        if (mpfr_get_si(r40505, MPFR_RNDN)) { mpfr_set(r40528, r40509, MPFR_RNDN); } else { mpfr_set(r40528, r40527, MPFR_RNDN); };
        return mpfr_get_d(r40528, MPFR_RNDN);
}

