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

char *name = "quadm (p42, negative)";

double f_if(float a, float b, float c) {
        float r4416540 = b;
        float r4416541 = -r4416540;
        float r4416542 = r4416540 * r4416540;
        float r4416543 = 4;
        float r4416544 = a;
        float r4416545 = c;
        float r4416546 = r4416544 * r4416545;
        float r4416547 = r4416543 * r4416546;
        float r4416548 = r4416542 - r4416547;
        float r4416549 = sqrt(r4416548);
        float r4416550 = r4416541 - r4416549;
        float r4416551 = 2;
        float r4416552 = r4416551 * r4416544;
        float r4416553 = r4416550 / r4416552;
        return r4416553;
}

double f_id(double a, double b, double c) {
        double r4416554 = b;
        double r4416555 = -r4416554;
        double r4416556 = r4416554 * r4416554;
        double r4416557 = 4;
        double r4416558 = a;
        double r4416559 = c;
        double r4416560 = r4416558 * r4416559;
        double r4416561 = r4416557 * r4416560;
        double r4416562 = r4416556 - r4416561;
        double r4416563 = sqrt(r4416562);
        double r4416564 = r4416555 - r4416563;
        double r4416565 = 2;
        double r4416566 = r4416565 * r4416558;
        double r4416567 = r4416564 / r4416566;
        return r4416567;
}


double f_of(float a, float b, float c) {
        float r4416568 = b;
        float r4416569 = -1.813301145786028e+155;
        bool r4416570 = r4416568 <= r4416569;
        float r4416571 = -r4416568;
        float r4416572 = r4416571 + r4416568;
        float r4416573 = a;
        float r4416574 = r4416573 + r4416573;
        float r4416575 = r4416572 / r4416574;
        float r4416576 = c;
        float r4416577 = r4416576 / r4416568;
        float r4416578 = r4416575 - r4416577;
        float r4416579 = 2.4520315042250063e-201;
        bool r4416580 = r4416568 <= r4416579;
        float r4416581 = r4416576 + r4416576;
        float r4416582 = r4416568 * r4416568;
        float r4416583 = 4;
        float r4416584 = r4416583 * r4416573;
        float r4416585 = r4416576 * r4416584;
        float r4416586 = r4416582 - r4416585;
        float r4416587 = sqrt(r4416586);
        float r4416588 = r4416571 + r4416587;
        float r4416589 = r4416581 / r4416588;
        float r4416590 = 1.7256352831247111e+65;
        bool r4416591 = r4416568 <= r4416590;
        float r4416592 = 1;
        float r4416593 = 2;
        float r4416594 = r4416593 * r4416573;
        float r4416595 = r4416573 * r4416576;
        float r4416596 = r4416583 * r4416595;
        float r4416597 = r4416582 - r4416596;
        float r4416598 = sqrt(r4416597);
        float r4416599 = r4416571 - r4416598;
        float r4416600 = r4416594 / r4416599;
        float r4416601 = r4416592 / r4416600;
        float r4416602 = r4416568 / r4416573;
        float r4416603 = r4416577 - r4416602;
        float r4416604 = r4416591 ? r4416601 : r4416603;
        float r4416605 = r4416580 ? r4416589 : r4416604;
        float r4416606 = r4416570 ? r4416578 : r4416605;
        return r4416606;
}

double f_od(double a, double b, double c) {
        double r4416607 = b;
        double r4416608 = -1.813301145786028e+155;
        bool r4416609 = r4416607 <= r4416608;
        double r4416610 = -r4416607;
        double r4416611 = r4416610 + r4416607;
        double r4416612 = a;
        double r4416613 = r4416612 + r4416612;
        double r4416614 = r4416611 / r4416613;
        double r4416615 = c;
        double r4416616 = r4416615 / r4416607;
        double r4416617 = r4416614 - r4416616;
        double r4416618 = 2.4520315042250063e-201;
        bool r4416619 = r4416607 <= r4416618;
        double r4416620 = r4416615 + r4416615;
        double r4416621 = r4416607 * r4416607;
        double r4416622 = 4;
        double r4416623 = r4416622 * r4416612;
        double r4416624 = r4416615 * r4416623;
        double r4416625 = r4416621 - r4416624;
        double r4416626 = sqrt(r4416625);
        double r4416627 = r4416610 + r4416626;
        double r4416628 = r4416620 / r4416627;
        double r4416629 = 1.7256352831247111e+65;
        bool r4416630 = r4416607 <= r4416629;
        double r4416631 = 1;
        double r4416632 = 2;
        double r4416633 = r4416632 * r4416612;
        double r4416634 = r4416612 * r4416615;
        double r4416635 = r4416622 * r4416634;
        double r4416636 = r4416621 - r4416635;
        double r4416637 = sqrt(r4416636);
        double r4416638 = r4416610 - r4416637;
        double r4416639 = r4416633 / r4416638;
        double r4416640 = r4416631 / r4416639;
        double r4416641 = r4416607 / r4416612;
        double r4416642 = r4416616 - r4416641;
        double r4416643 = r4416630 ? r4416640 : r4416642;
        double r4416644 = r4416619 ? r4416628 : r4416643;
        double r4416645 = r4416609 ? r4416617 : r4416644;
        return r4416645;
}

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 r4416646, r4416647, r4416648, r4416649, r4416650, r4416651, r4416652, r4416653, r4416654, r4416655, r4416656, r4416657, r4416658, r4416659;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(2960);
        mpfr_init(r4416646);
        mpfr_init(r4416647);
        mpfr_init(r4416648);
        mpfr_init_set_str(r4416649, "4", 10, MPFR_RNDN);
        mpfr_init(r4416650);
        mpfr_init(r4416651);
        mpfr_init(r4416652);
        mpfr_init(r4416653);
        mpfr_init(r4416654);
        mpfr_init(r4416655);
        mpfr_init(r4416656);
        mpfr_init_set_str(r4416657, "2", 10, MPFR_RNDN);
        mpfr_init(r4416658);
        mpfr_init(r4416659);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r4416646, b, MPFR_RNDN);
        mpfr_neg(r4416647, r4416646, MPFR_RNDN);
        mpfr_mul(r4416648, r4416646, r4416646, MPFR_RNDN);
        ;
        mpfr_set_d(r4416650, a, MPFR_RNDN);
        mpfr_set_d(r4416651, c, MPFR_RNDN);
        mpfr_mul(r4416652, r4416650, r4416651, MPFR_RNDN);
        mpfr_mul(r4416653, r4416649, r4416652, MPFR_RNDN);
        mpfr_sub(r4416654, r4416648, r4416653, MPFR_RNDN);
        mpfr_sqrt(r4416655, r4416654, MPFR_RNDN);
        mpfr_sub(r4416656, r4416647, r4416655, MPFR_RNDN);
        ;
        mpfr_mul(r4416658, r4416657, r4416650, MPFR_RNDN);
        mpfr_div(r4416659, r4416656, r4416658, MPFR_RNDN);
        return mpfr_get_d(r4416659, MPFR_RNDN);
}

static mpfr_t r4416660, r4416661, r4416662, r4416663, r4416664, r4416665, r4416666, r4416667, r4416668, r4416669, r4416670, r4416671, r4416672, r4416673, r4416674, r4416675, r4416676, r4416677, r4416678, r4416679, r4416680, r4416681, r4416682, r4416683, r4416684, r4416685, r4416686, r4416687, r4416688, r4416689, r4416690, r4416691, r4416692, r4416693, r4416694, r4416695, r4416696, r4416697, r4416698;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(2960);
        mpfr_init(r4416660);
        mpfr_init_set_str(r4416661, "-1.813301145786028e+155", 10, MPFR_RNDN);
        mpfr_init(r4416662);
        mpfr_init(r4416663);
        mpfr_init(r4416664);
        mpfr_init(r4416665);
        mpfr_init(r4416666);
        mpfr_init(r4416667);
        mpfr_init(r4416668);
        mpfr_init(r4416669);
        mpfr_init(r4416670);
        mpfr_init_set_str(r4416671, "2.4520315042250063e-201", 10, MPFR_RNDN);
        mpfr_init(r4416672);
        mpfr_init(r4416673);
        mpfr_init(r4416674);
        mpfr_init_set_str(r4416675, "4", 10, MPFR_RNDN);
        mpfr_init(r4416676);
        mpfr_init(r4416677);
        mpfr_init(r4416678);
        mpfr_init(r4416679);
        mpfr_init(r4416680);
        mpfr_init(r4416681);
        mpfr_init_set_str(r4416682, "1.7256352831247111e+65", 10, MPFR_RNDN);
        mpfr_init(r4416683);
        mpfr_init_set_str(r4416684, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r4416685, "2", 10, MPFR_RNDN);
        mpfr_init(r4416686);
        mpfr_init(r4416687);
        mpfr_init(r4416688);
        mpfr_init(r4416689);
        mpfr_init(r4416690);
        mpfr_init(r4416691);
        mpfr_init(r4416692);
        mpfr_init(r4416693);
        mpfr_init(r4416694);
        mpfr_init(r4416695);
        mpfr_init(r4416696);
        mpfr_init(r4416697);
        mpfr_init(r4416698);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r4416660, b, MPFR_RNDN);
        ;
        mpfr_set_si(r4416662, mpfr_cmp(r4416660, r4416661) <= 0, MPFR_RNDN);
        mpfr_neg(r4416663, r4416660, MPFR_RNDN);
        mpfr_add(r4416664, r4416663, r4416660, MPFR_RNDN);
        mpfr_set_d(r4416665, a, MPFR_RNDN);
        mpfr_add(r4416666, r4416665, r4416665, MPFR_RNDN);
        mpfr_div(r4416667, r4416664, r4416666, MPFR_RNDN);
        mpfr_set_d(r4416668, c, MPFR_RNDN);
        mpfr_div(r4416669, r4416668, r4416660, MPFR_RNDN);
        mpfr_sub(r4416670, r4416667, r4416669, MPFR_RNDN);
        ;
        mpfr_set_si(r4416672, mpfr_cmp(r4416660, r4416671) <= 0, MPFR_RNDN);
        mpfr_add(r4416673, r4416668, r4416668, MPFR_RNDN);
        mpfr_mul(r4416674, r4416660, r4416660, MPFR_RNDN);
        ;
        mpfr_mul(r4416676, r4416675, r4416665, MPFR_RNDN);
        mpfr_mul(r4416677, r4416668, r4416676, MPFR_RNDN);
        mpfr_sub(r4416678, r4416674, r4416677, MPFR_RNDN);
        mpfr_sqrt(r4416679, r4416678, MPFR_RNDN);
        mpfr_add(r4416680, r4416663, r4416679, MPFR_RNDN);
        mpfr_div(r4416681, r4416673, r4416680, MPFR_RNDN);
        ;
        mpfr_set_si(r4416683, mpfr_cmp(r4416660, r4416682) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r4416686, r4416685, r4416665, MPFR_RNDN);
        mpfr_mul(r4416687, r4416665, r4416668, MPFR_RNDN);
        mpfr_mul(r4416688, r4416675, r4416687, MPFR_RNDN);
        mpfr_sub(r4416689, r4416674, r4416688, MPFR_RNDN);
        mpfr_sqrt(r4416690, r4416689, MPFR_RNDN);
        mpfr_sub(r4416691, r4416663, r4416690, MPFR_RNDN);
        mpfr_div(r4416692, r4416686, r4416691, MPFR_RNDN);
        mpfr_div(r4416693, r4416684, r4416692, MPFR_RNDN);
        mpfr_div(r4416694, r4416660, r4416665, MPFR_RNDN);
        mpfr_sub(r4416695, r4416669, r4416694, MPFR_RNDN);
        if (mpfr_get_si(r4416683, MPFR_RNDN)) { mpfr_set(r4416696, r4416693, MPFR_RNDN); } else { mpfr_set(r4416696, r4416695, MPFR_RNDN); };
        if (mpfr_get_si(r4416672, MPFR_RNDN)) { mpfr_set(r4416697, r4416681, MPFR_RNDN); } else { mpfr_set(r4416697, r4416696, MPFR_RNDN); };
        if (mpfr_get_si(r4416662, MPFR_RNDN)) { mpfr_set(r4416698, r4416670, MPFR_RNDN); } else { mpfr_set(r4416698, r4416697, MPFR_RNDN); };
        return mpfr_get_d(r4416698, MPFR_RNDN);
}

static mpfr_t r4416699, r4416700, r4416701, r4416702, r4416703, r4416704, r4416705, r4416706, r4416707, r4416708, r4416709, r4416710, r4416711, r4416712, r4416713, r4416714, r4416715, r4416716, r4416717, r4416718, r4416719, r4416720, r4416721, r4416722, r4416723, r4416724, r4416725, r4416726, r4416727, r4416728, r4416729, r4416730, r4416731, r4416732, r4416733, r4416734, r4416735, r4416736, r4416737;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(2960);
        mpfr_init(r4416699);
        mpfr_init_set_str(r4416700, "-1.813301145786028e+155", 10, MPFR_RNDN);
        mpfr_init(r4416701);
        mpfr_init(r4416702);
        mpfr_init(r4416703);
        mpfr_init(r4416704);
        mpfr_init(r4416705);
        mpfr_init(r4416706);
        mpfr_init(r4416707);
        mpfr_init(r4416708);
        mpfr_init(r4416709);
        mpfr_init_set_str(r4416710, "2.4520315042250063e-201", 10, MPFR_RNDN);
        mpfr_init(r4416711);
        mpfr_init(r4416712);
        mpfr_init(r4416713);
        mpfr_init_set_str(r4416714, "4", 10, MPFR_RNDN);
        mpfr_init(r4416715);
        mpfr_init(r4416716);
        mpfr_init(r4416717);
        mpfr_init(r4416718);
        mpfr_init(r4416719);
        mpfr_init(r4416720);
        mpfr_init_set_str(r4416721, "1.7256352831247111e+65", 10, MPFR_RNDN);
        mpfr_init(r4416722);
        mpfr_init_set_str(r4416723, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r4416724, "2", 10, MPFR_RNDN);
        mpfr_init(r4416725);
        mpfr_init(r4416726);
        mpfr_init(r4416727);
        mpfr_init(r4416728);
        mpfr_init(r4416729);
        mpfr_init(r4416730);
        mpfr_init(r4416731);
        mpfr_init(r4416732);
        mpfr_init(r4416733);
        mpfr_init(r4416734);
        mpfr_init(r4416735);
        mpfr_init(r4416736);
        mpfr_init(r4416737);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r4416699, b, MPFR_RNDN);
        ;
        mpfr_set_si(r4416701, mpfr_cmp(r4416699, r4416700) <= 0, MPFR_RNDN);
        mpfr_neg(r4416702, r4416699, MPFR_RNDN);
        mpfr_add(r4416703, r4416702, r4416699, MPFR_RNDN);
        mpfr_set_d(r4416704, a, MPFR_RNDN);
        mpfr_add(r4416705, r4416704, r4416704, MPFR_RNDN);
        mpfr_div(r4416706, r4416703, r4416705, MPFR_RNDN);
        mpfr_set_d(r4416707, c, MPFR_RNDN);
        mpfr_div(r4416708, r4416707, r4416699, MPFR_RNDN);
        mpfr_sub(r4416709, r4416706, r4416708, MPFR_RNDN);
        ;
        mpfr_set_si(r4416711, mpfr_cmp(r4416699, r4416710) <= 0, MPFR_RNDN);
        mpfr_add(r4416712, r4416707, r4416707, MPFR_RNDN);
        mpfr_mul(r4416713, r4416699, r4416699, MPFR_RNDN);
        ;
        mpfr_mul(r4416715, r4416714, r4416704, MPFR_RNDN);
        mpfr_mul(r4416716, r4416707, r4416715, MPFR_RNDN);
        mpfr_sub(r4416717, r4416713, r4416716, MPFR_RNDN);
        mpfr_sqrt(r4416718, r4416717, MPFR_RNDN);
        mpfr_add(r4416719, r4416702, r4416718, MPFR_RNDN);
        mpfr_div(r4416720, r4416712, r4416719, MPFR_RNDN);
        ;
        mpfr_set_si(r4416722, mpfr_cmp(r4416699, r4416721) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r4416725, r4416724, r4416704, MPFR_RNDN);
        mpfr_mul(r4416726, r4416704, r4416707, MPFR_RNDN);
        mpfr_mul(r4416727, r4416714, r4416726, MPFR_RNDN);
        mpfr_sub(r4416728, r4416713, r4416727, MPFR_RNDN);
        mpfr_sqrt(r4416729, r4416728, MPFR_RNDN);
        mpfr_sub(r4416730, r4416702, r4416729, MPFR_RNDN);
        mpfr_div(r4416731, r4416725, r4416730, MPFR_RNDN);
        mpfr_div(r4416732, r4416723, r4416731, MPFR_RNDN);
        mpfr_div(r4416733, r4416699, r4416704, MPFR_RNDN);
        mpfr_sub(r4416734, r4416708, r4416733, MPFR_RNDN);
        if (mpfr_get_si(r4416722, MPFR_RNDN)) { mpfr_set(r4416735, r4416732, MPFR_RNDN); } else { mpfr_set(r4416735, r4416734, MPFR_RNDN); };
        if (mpfr_get_si(r4416711, MPFR_RNDN)) { mpfr_set(r4416736, r4416720, MPFR_RNDN); } else { mpfr_set(r4416736, r4416735, MPFR_RNDN); };
        if (mpfr_get_si(r4416701, MPFR_RNDN)) { mpfr_set(r4416737, r4416709, MPFR_RNDN); } else { mpfr_set(r4416737, r4416736, MPFR_RNDN); };
        return mpfr_get_d(r4416737, MPFR_RNDN);
}

