#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 r26527 = b;
        float r26528 = -r26527;
        float r26529 = r26527 * r26527;
        float r26530 = 4;
        float r26531 = a;
        float r26532 = c;
        float r26533 = r26531 * r26532;
        float r26534 = r26530 * r26533;
        float r26535 = r26529 - r26534;
        float r26536 = sqrt(r26535);
        float r26537 = r26528 - r26536;
        float r26538 = 2;
        float r26539 = r26538 * r26531;
        float r26540 = r26537 / r26539;
        return r26540;
}

double f_id(double a, double b, double c) {
        double r26541 = b;
        double r26542 = -r26541;
        double r26543 = r26541 * r26541;
        double r26544 = 4;
        double r26545 = a;
        double r26546 = c;
        double r26547 = r26545 * r26546;
        double r26548 = r26544 * r26547;
        double r26549 = r26543 - r26548;
        double r26550 = sqrt(r26549);
        double r26551 = r26542 - r26550;
        double r26552 = 2;
        double r26553 = r26552 * r26545;
        double r26554 = r26551 / r26553;
        return r26554;
}


double f_of(float a, float b, float c) {
        float r26555 = b;
        float r26556 = -r26555;
        float r26557 = -2.2558475779903147e+76;
        bool r26558 = r26556 <= r26557;
        float r26559 = c;
        float r26560 = r26559 / r26555;
        float r26561 = a;
        float r26562 = r26555 / r26561;
        float r26563 = r26560 - r26562;
        float r26564 = 6.07119090972316e-184;
        bool r26565 = r26556 <= r26564;
        float r26566 = 1;
        float r26567 = 2;
        float r26568 = r26567 * r26561;
        float r26569 = r26555 * r26555;
        float r26570 = 4;
        float r26571 = r26561 * r26559;
        float r26572 = r26570 * r26571;
        float r26573 = r26569 - r26572;
        float r26574 = sqrt(r26573);
        float r26575 = r26556 - r26574;
        float r26576 = r26568 / r26575;
        float r26577 = r26566 / r26576;
        float r26578 = 3.1645598206224524e+87;
        bool r26579 = r26556 <= r26578;
        float r26580 = -r26570;
        float r26581 = fma(r26571, r26580, r26569);
        float r26582 = sqrt(r26581);
        float r26583 = r26582 - r26555;
        float r26584 = cbrt(r26583);
        float r26585 = r26566 / r26584;
        float r26586 = r26570 * r26559;
        float r26587 = fma(r26580, r26571, r26569);
        float r26588 = sqrt(r26587);
        float r26589 = r26588 - r26555;
        float r26590 = cbrt(r26589);
        float r26591 = r26590 * r26590;
        float r26592 = r26586 / r26591;
        float r26593 = r26592 / r26567;
        float r26594 = r26585 * r26593;
        float r26595 = -r26560;
        float r26596 = r26579 ? r26594 : r26595;
        float r26597 = r26565 ? r26577 : r26596;
        float r26598 = r26558 ? r26563 : r26597;
        return r26598;
}

double f_od(double a, double b, double c) {
        double r26599 = b;
        double r26600 = -r26599;
        double r26601 = -2.2558475779903147e+76;
        bool r26602 = r26600 <= r26601;
        double r26603 = c;
        double r26604 = r26603 / r26599;
        double r26605 = a;
        double r26606 = r26599 / r26605;
        double r26607 = r26604 - r26606;
        double r26608 = 6.07119090972316e-184;
        bool r26609 = r26600 <= r26608;
        double r26610 = 1;
        double r26611 = 2;
        double r26612 = r26611 * r26605;
        double r26613 = r26599 * r26599;
        double r26614 = 4;
        double r26615 = r26605 * r26603;
        double r26616 = r26614 * r26615;
        double r26617 = r26613 - r26616;
        double r26618 = sqrt(r26617);
        double r26619 = r26600 - r26618;
        double r26620 = r26612 / r26619;
        double r26621 = r26610 / r26620;
        double r26622 = 3.1645598206224524e+87;
        bool r26623 = r26600 <= r26622;
        double r26624 = -r26614;
        double r26625 = fma(r26615, r26624, r26613);
        double r26626 = sqrt(r26625);
        double r26627 = r26626 - r26599;
        double r26628 = cbrt(r26627);
        double r26629 = r26610 / r26628;
        double r26630 = r26614 * r26603;
        double r26631 = fma(r26624, r26615, r26613);
        double r26632 = sqrt(r26631);
        double r26633 = r26632 - r26599;
        double r26634 = cbrt(r26633);
        double r26635 = r26634 * r26634;
        double r26636 = r26630 / r26635;
        double r26637 = r26636 / r26611;
        double r26638 = r26629 * r26637;
        double r26639 = -r26604;
        double r26640 = r26623 ? r26638 : r26639;
        double r26641 = r26609 ? r26621 : r26640;
        double r26642 = r26602 ? r26607 : r26641;
        return r26642;
}

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 r26643, r26644, r26645, r26646, r26647, r26648, r26649, r26650, r26651, r26652, r26653, r26654, r26655, r26656;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(3408);
        mpfr_init(r26643);
        mpfr_init(r26644);
        mpfr_init(r26645);
        mpfr_init_set_str(r26646, "4", 10, MPFR_RNDN);
        mpfr_init(r26647);
        mpfr_init(r26648);
        mpfr_init(r26649);
        mpfr_init(r26650);
        mpfr_init(r26651);
        mpfr_init(r26652);
        mpfr_init(r26653);
        mpfr_init_set_str(r26654, "2", 10, MPFR_RNDN);
        mpfr_init(r26655);
        mpfr_init(r26656);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r26643, b, MPFR_RNDN);
        mpfr_neg(r26644, r26643, MPFR_RNDN);
        mpfr_mul(r26645, r26643, r26643, MPFR_RNDN);
        ;
        mpfr_set_d(r26647, a, MPFR_RNDN);
        mpfr_set_d(r26648, c, MPFR_RNDN);
        mpfr_mul(r26649, r26647, r26648, MPFR_RNDN);
        mpfr_mul(r26650, r26646, r26649, MPFR_RNDN);
        mpfr_sub(r26651, r26645, r26650, MPFR_RNDN);
        mpfr_sqrt(r26652, r26651, MPFR_RNDN);
        mpfr_sub(r26653, r26644, r26652, MPFR_RNDN);
        ;
        mpfr_mul(r26655, r26654, r26647, MPFR_RNDN);
        mpfr_div(r26656, r26653, r26655, MPFR_RNDN);
        return mpfr_get_d(r26656, MPFR_RNDN);
}

static mpfr_t r26657, r26658, r26659, r26660, r26661, r26662, r26663, r26664, r26665, r26666, r26667, r26668, r26669, r26670, r26671, r26672, r26673, r26674, r26675, r26676, r26677, r26678, r26679, r26680, r26681, r26682, r26683, r26684, r26685, r26686, r26687, r26688, r26689, r26690, r26691, r26692, r26693, r26694, r26695, r26696, r26697, r26698, r26699, r26700;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(3408);
        mpfr_init(r26657);
        mpfr_init(r26658);
        mpfr_init_set_str(r26659, "-2.2558475779903147e+76", 10, MPFR_RNDN);
        mpfr_init(r26660);
        mpfr_init(r26661);
        mpfr_init(r26662);
        mpfr_init(r26663);
        mpfr_init(r26664);
        mpfr_init(r26665);
        mpfr_init_set_str(r26666, "6.07119090972316e-184", 10, MPFR_RNDN);
        mpfr_init(r26667);
        mpfr_init_set_str(r26668, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r26669, "2", 10, MPFR_RNDN);
        mpfr_init(r26670);
        mpfr_init(r26671);
        mpfr_init_set_str(r26672, "4", 10, MPFR_RNDN);
        mpfr_init(r26673);
        mpfr_init(r26674);
        mpfr_init(r26675);
        mpfr_init(r26676);
        mpfr_init(r26677);
        mpfr_init(r26678);
        mpfr_init(r26679);
        mpfr_init_set_str(r26680, "3.1645598206224524e+87", 10, MPFR_RNDN);
        mpfr_init(r26681);
        mpfr_init(r26682);
        mpfr_init(r26683);
        mpfr_init(r26684);
        mpfr_init(r26685);
        mpfr_init(r26686);
        mpfr_init(r26687);
        mpfr_init(r26688);
        mpfr_init(r26689);
        mpfr_init(r26690);
        mpfr_init(r26691);
        mpfr_init(r26692);
        mpfr_init(r26693);
        mpfr_init(r26694);
        mpfr_init(r26695);
        mpfr_init(r26696);
        mpfr_init(r26697);
        mpfr_init(r26698);
        mpfr_init(r26699);
        mpfr_init(r26700);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r26657, b, MPFR_RNDN);
        mpfr_neg(r26658, r26657, MPFR_RNDN);
        ;
        mpfr_set_si(r26660, mpfr_cmp(r26658, r26659) <= 0, MPFR_RNDN);
        mpfr_set_d(r26661, c, MPFR_RNDN);
        mpfr_div(r26662, r26661, r26657, MPFR_RNDN);
        mpfr_set_d(r26663, a, MPFR_RNDN);
        mpfr_div(r26664, r26657, r26663, MPFR_RNDN);
        mpfr_sub(r26665, r26662, r26664, MPFR_RNDN);
        ;
        mpfr_set_si(r26667, mpfr_cmp(r26658, r26666) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r26670, r26669, r26663, MPFR_RNDN);
        mpfr_mul(r26671, r26657, r26657, MPFR_RNDN);
        ;
        mpfr_mul(r26673, r26663, r26661, MPFR_RNDN);
        mpfr_mul(r26674, r26672, r26673, MPFR_RNDN);
        mpfr_sub(r26675, r26671, r26674, MPFR_RNDN);
        mpfr_sqrt(r26676, r26675, MPFR_RNDN);
        mpfr_sub(r26677, r26658, r26676, MPFR_RNDN);
        mpfr_div(r26678, r26670, r26677, MPFR_RNDN);
        mpfr_div(r26679, r26668, r26678, MPFR_RNDN);
        ;
        mpfr_set_si(r26681, mpfr_cmp(r26658, r26680) <= 0, MPFR_RNDN);
        mpfr_neg(r26682, r26672, MPFR_RNDN);
        mpfr_fma(r26683, r26673, r26682, r26671, MPFR_RNDN);
        mpfr_sqrt(r26684, r26683, MPFR_RNDN);
        mpfr_sub(r26685, r26684, r26657, MPFR_RNDN);
        mpfr_cbrt(r26686, r26685, MPFR_RNDN);
        mpfr_div(r26687, r26668, r26686, MPFR_RNDN);
        mpfr_mul(r26688, r26672, r26661, MPFR_RNDN);
        mpfr_fma(r26689, r26682, r26673, r26671, MPFR_RNDN);
        mpfr_sqrt(r26690, r26689, MPFR_RNDN);
        mpfr_sub(r26691, r26690, r26657, MPFR_RNDN);
        mpfr_cbrt(r26692, r26691, MPFR_RNDN);
        mpfr_mul(r26693, r26692, r26692, MPFR_RNDN);
        mpfr_div(r26694, r26688, r26693, MPFR_RNDN);
        mpfr_div(r26695, r26694, r26669, MPFR_RNDN);
        mpfr_mul(r26696, r26687, r26695, MPFR_RNDN);
        mpfr_neg(r26697, r26662, MPFR_RNDN);
        if (mpfr_get_si(r26681, MPFR_RNDN)) { mpfr_set(r26698, r26696, MPFR_RNDN); } else { mpfr_set(r26698, r26697, MPFR_RNDN); };
        if (mpfr_get_si(r26667, MPFR_RNDN)) { mpfr_set(r26699, r26679, MPFR_RNDN); } else { mpfr_set(r26699, r26698, MPFR_RNDN); };
        if (mpfr_get_si(r26660, MPFR_RNDN)) { mpfr_set(r26700, r26665, MPFR_RNDN); } else { mpfr_set(r26700, r26699, MPFR_RNDN); };
        return mpfr_get_d(r26700, MPFR_RNDN);
}

static mpfr_t r26701, r26702, r26703, r26704, r26705, r26706, r26707, r26708, r26709, r26710, r26711, r26712, r26713, r26714, r26715, r26716, r26717, r26718, r26719, r26720, r26721, r26722, r26723, r26724, r26725, r26726, r26727, r26728, r26729, r26730, r26731, r26732, r26733, r26734, r26735, r26736, r26737, r26738, r26739, r26740, r26741, r26742, r26743, r26744;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(3408);
        mpfr_init(r26701);
        mpfr_init(r26702);
        mpfr_init_set_str(r26703, "-2.2558475779903147e+76", 10, MPFR_RNDN);
        mpfr_init(r26704);
        mpfr_init(r26705);
        mpfr_init(r26706);
        mpfr_init(r26707);
        mpfr_init(r26708);
        mpfr_init(r26709);
        mpfr_init_set_str(r26710, "6.07119090972316e-184", 10, MPFR_RNDN);
        mpfr_init(r26711);
        mpfr_init_set_str(r26712, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r26713, "2", 10, MPFR_RNDN);
        mpfr_init(r26714);
        mpfr_init(r26715);
        mpfr_init_set_str(r26716, "4", 10, MPFR_RNDN);
        mpfr_init(r26717);
        mpfr_init(r26718);
        mpfr_init(r26719);
        mpfr_init(r26720);
        mpfr_init(r26721);
        mpfr_init(r26722);
        mpfr_init(r26723);
        mpfr_init_set_str(r26724, "3.1645598206224524e+87", 10, MPFR_RNDN);
        mpfr_init(r26725);
        mpfr_init(r26726);
        mpfr_init(r26727);
        mpfr_init(r26728);
        mpfr_init(r26729);
        mpfr_init(r26730);
        mpfr_init(r26731);
        mpfr_init(r26732);
        mpfr_init(r26733);
        mpfr_init(r26734);
        mpfr_init(r26735);
        mpfr_init(r26736);
        mpfr_init(r26737);
        mpfr_init(r26738);
        mpfr_init(r26739);
        mpfr_init(r26740);
        mpfr_init(r26741);
        mpfr_init(r26742);
        mpfr_init(r26743);
        mpfr_init(r26744);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r26701, b, MPFR_RNDN);
        mpfr_neg(r26702, r26701, MPFR_RNDN);
        ;
        mpfr_set_si(r26704, mpfr_cmp(r26702, r26703) <= 0, MPFR_RNDN);
        mpfr_set_d(r26705, c, MPFR_RNDN);
        mpfr_div(r26706, r26705, r26701, MPFR_RNDN);
        mpfr_set_d(r26707, a, MPFR_RNDN);
        mpfr_div(r26708, r26701, r26707, MPFR_RNDN);
        mpfr_sub(r26709, r26706, r26708, MPFR_RNDN);
        ;
        mpfr_set_si(r26711, mpfr_cmp(r26702, r26710) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r26714, r26713, r26707, MPFR_RNDN);
        mpfr_mul(r26715, r26701, r26701, MPFR_RNDN);
        ;
        mpfr_mul(r26717, r26707, r26705, MPFR_RNDN);
        mpfr_mul(r26718, r26716, r26717, MPFR_RNDN);
        mpfr_sub(r26719, r26715, r26718, MPFR_RNDN);
        mpfr_sqrt(r26720, r26719, MPFR_RNDN);
        mpfr_sub(r26721, r26702, r26720, MPFR_RNDN);
        mpfr_div(r26722, r26714, r26721, MPFR_RNDN);
        mpfr_div(r26723, r26712, r26722, MPFR_RNDN);
        ;
        mpfr_set_si(r26725, mpfr_cmp(r26702, r26724) <= 0, MPFR_RNDN);
        mpfr_neg(r26726, r26716, MPFR_RNDN);
        mpfr_fma(r26727, r26717, r26726, r26715, MPFR_RNDN);
        mpfr_sqrt(r26728, r26727, MPFR_RNDN);
        mpfr_sub(r26729, r26728, r26701, MPFR_RNDN);
        mpfr_cbrt(r26730, r26729, MPFR_RNDN);
        mpfr_div(r26731, r26712, r26730, MPFR_RNDN);
        mpfr_mul(r26732, r26716, r26705, MPFR_RNDN);
        mpfr_fma(r26733, r26726, r26717, r26715, MPFR_RNDN);
        mpfr_sqrt(r26734, r26733, MPFR_RNDN);
        mpfr_sub(r26735, r26734, r26701, MPFR_RNDN);
        mpfr_cbrt(r26736, r26735, MPFR_RNDN);
        mpfr_mul(r26737, r26736, r26736, MPFR_RNDN);
        mpfr_div(r26738, r26732, r26737, MPFR_RNDN);
        mpfr_div(r26739, r26738, r26713, MPFR_RNDN);
        mpfr_mul(r26740, r26731, r26739, MPFR_RNDN);
        mpfr_neg(r26741, r26706, MPFR_RNDN);
        if (mpfr_get_si(r26725, MPFR_RNDN)) { mpfr_set(r26742, r26740, MPFR_RNDN); } else { mpfr_set(r26742, r26741, MPFR_RNDN); };
        if (mpfr_get_si(r26711, MPFR_RNDN)) { mpfr_set(r26743, r26723, MPFR_RNDN); } else { mpfr_set(r26743, r26742, MPFR_RNDN); };
        if (mpfr_get_si(r26704, MPFR_RNDN)) { mpfr_set(r26744, r26709, MPFR_RNDN); } else { mpfr_set(r26744, r26743, MPFR_RNDN); };
        return mpfr_get_d(r26744, MPFR_RNDN);
}

