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

char *name = "quadp (p42, positive)";

double f_if(float a, float b, float c) {
        float r19669 = b;
        float r19670 = -r19669;
        float r19671 = r19669 * r19669;
        float r19672 = 4.0f;
        float r19673 = a;
        float r19674 = c;
        float r19675 = r19673 * r19674;
        float r19676 = r19672 * r19675;
        float r19677 = r19671 - r19676;
        float r19678 = sqrt(r19677);
        float r19679 = r19670 + r19678;
        float r19680 = 2.0f;
        float r19681 = r19680 * r19673;
        float r19682 = r19679 / r19681;
        return r19682;
}

double f_id(double a, double b, double c) {
        double r19683 = b;
        double r19684 = -r19683;
        double r19685 = r19683 * r19683;
        double r19686 = 4.0;
        double r19687 = a;
        double r19688 = c;
        double r19689 = r19687 * r19688;
        double r19690 = r19686 * r19689;
        double r19691 = r19685 - r19690;
        double r19692 = sqrt(r19691);
        double r19693 = r19684 + r19692;
        double r19694 = 2.0;
        double r19695 = r19694 * r19687;
        double r19696 = r19693 / r19695;
        return r19696;
}


double f_of(float a, float b, float c) {
        float r19697 = b;
        float r19698 = -1.6429991956785702e+85f;
        bool r19699 = r19697 <= r19698;
        float r19700 = c;
        float r19701 = r19700 / r19697;
        float r19702 = a;
        float r19703 = r19697 / r19702;
        float r19704 = r19701 - r19703;
        float r19705 = 1.964481890400044e-184f;
        bool r19706 = r19697 <= r19705;
        float r19707 = -r19697;
        float r19708 = r19697 * r19697;
        float r19709 = 4.0f;
        float r19710 = r19702 * r19700;
        float r19711 = r19709 * r19710;
        float r19712 = r19708 - r19711;
        float r19713 = sqrt(r19712);
        float r19714 = r19707 + r19713;
        float r19715 = 2.0f;
        float r19716 = r19715 * r19702;
        float r19717 = r19714 / r19716;
        float r19718 = 2.4861451900721143e+28f;
        bool r19719 = r19697 <= r19718;
        float r19720 = r19702 / r19715;
        float r19721 = r19709 * r19700;
        float r19722 = r19707 - r19713;
        float r19723 = r19721 / r19722;
        float r19724 = r19723 / r19702;
        float r19725 = r19720 * r19724;
        float r19726 = -2.0f;
        float r19727 = r19726 / r19715;
        float r19728 = r19701 * r19727;
        float r19729 = r19719 ? r19725 : r19728;
        float r19730 = r19706 ? r19717 : r19729;
        float r19731 = r19699 ? r19704 : r19730;
        return r19731;
}

double f_od(double a, double b, double c) {
        double r19732 = b;
        double r19733 = -1.6429991956785702e+85;
        bool r19734 = r19732 <= r19733;
        double r19735 = c;
        double r19736 = r19735 / r19732;
        double r19737 = a;
        double r19738 = r19732 / r19737;
        double r19739 = r19736 - r19738;
        double r19740 = 1.964481890400044e-184;
        bool r19741 = r19732 <= r19740;
        double r19742 = -r19732;
        double r19743 = r19732 * r19732;
        double r19744 = 4.0;
        double r19745 = r19737 * r19735;
        double r19746 = r19744 * r19745;
        double r19747 = r19743 - r19746;
        double r19748 = sqrt(r19747);
        double r19749 = r19742 + r19748;
        double r19750 = 2.0;
        double r19751 = r19750 * r19737;
        double r19752 = r19749 / r19751;
        double r19753 = 2.4861451900721143e+28;
        bool r19754 = r19732 <= r19753;
        double r19755 = r19737 / r19750;
        double r19756 = r19744 * r19735;
        double r19757 = r19742 - r19748;
        double r19758 = r19756 / r19757;
        double r19759 = r19758 / r19737;
        double r19760 = r19755 * r19759;
        double r19761 = -2.0;
        double r19762 = r19761 / r19750;
        double r19763 = r19736 * r19762;
        double r19764 = r19754 ? r19760 : r19763;
        double r19765 = r19741 ? r19752 : r19764;
        double r19766 = r19734 ? r19739 : r19765;
        return r19766;
}

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 r19767, r19768, r19769, r19770, r19771, r19772, r19773, r19774, r19775, r19776, r19777, r19778, r19779, r19780;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(2960);
        mpfr_init(r19767);
        mpfr_init(r19768);
        mpfr_init(r19769);
        mpfr_init_set_str(r19770, "4", 10, MPFR_RNDN);
        mpfr_init(r19771);
        mpfr_init(r19772);
        mpfr_init(r19773);
        mpfr_init(r19774);
        mpfr_init(r19775);
        mpfr_init(r19776);
        mpfr_init(r19777);
        mpfr_init_set_str(r19778, "2", 10, MPFR_RNDN);
        mpfr_init(r19779);
        mpfr_init(r19780);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r19767, b, MPFR_RNDN);
        mpfr_neg(r19768, r19767, MPFR_RNDN);
        mpfr_sqr(r19769, r19767, MPFR_RNDN);
        ;
        mpfr_set_d(r19771, a, MPFR_RNDN);
        mpfr_set_d(r19772, c, MPFR_RNDN);
        mpfr_mul(r19773, r19771, r19772, MPFR_RNDN);
        mpfr_mul(r19774, r19770, r19773, MPFR_RNDN);
        mpfr_sub(r19775, r19769, r19774, MPFR_RNDN);
        mpfr_sqrt(r19776, r19775, MPFR_RNDN);
        mpfr_add(r19777, r19768, r19776, MPFR_RNDN);
        ;
        mpfr_mul(r19779, r19778, r19771, MPFR_RNDN);
        mpfr_div(r19780, r19777, r19779, MPFR_RNDN);
        return mpfr_get_d(r19780, MPFR_RNDN);
}

static mpfr_t r19781, r19782, r19783, r19784, r19785, r19786, r19787, r19788, r19789, r19790, r19791, r19792, r19793, r19794, r19795, r19796, r19797, r19798, r19799, r19800, r19801, r19802, r19803, r19804, r19805, r19806, r19807, r19808, r19809, r19810, r19811, r19812, r19813, r19814, r19815;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(2960);
        mpfr_init(r19781);
        mpfr_init_set_str(r19782, "-1.6429991956785702e+85", 10, MPFR_RNDN);
        mpfr_init(r19783);
        mpfr_init(r19784);
        mpfr_init(r19785);
        mpfr_init(r19786);
        mpfr_init(r19787);
        mpfr_init(r19788);
        mpfr_init_set_str(r19789, "1.964481890400044e-184", 10, MPFR_RNDN);
        mpfr_init(r19790);
        mpfr_init(r19791);
        mpfr_init(r19792);
        mpfr_init_set_str(r19793, "4", 10, MPFR_RNDN);
        mpfr_init(r19794);
        mpfr_init(r19795);
        mpfr_init(r19796);
        mpfr_init(r19797);
        mpfr_init(r19798);
        mpfr_init_set_str(r19799, "2", 10, MPFR_RNDN);
        mpfr_init(r19800);
        mpfr_init(r19801);
        mpfr_init_set_str(r19802, "2.4861451900721143e+28", 10, MPFR_RNDN);
        mpfr_init(r19803);
        mpfr_init(r19804);
        mpfr_init(r19805);
        mpfr_init(r19806);
        mpfr_init(r19807);
        mpfr_init(r19808);
        mpfr_init(r19809);
        mpfr_init_set_str(r19810, "-2", 10, MPFR_RNDN);
        mpfr_init(r19811);
        mpfr_init(r19812);
        mpfr_init(r19813);
        mpfr_init(r19814);
        mpfr_init(r19815);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r19781, b, MPFR_RNDN);
        ;
        mpfr_set_si(r19783, mpfr_cmp(r19781, r19782) <= 0, MPFR_RNDN);
        mpfr_set_d(r19784, c, MPFR_RNDN);
        mpfr_div(r19785, r19784, r19781, MPFR_RNDN);
        mpfr_set_d(r19786, a, MPFR_RNDN);
        mpfr_div(r19787, r19781, r19786, MPFR_RNDN);
        mpfr_sub(r19788, r19785, r19787, MPFR_RNDN);
        ;
        mpfr_set_si(r19790, mpfr_cmp(r19781, r19789) <= 0, MPFR_RNDN);
        mpfr_neg(r19791, r19781, MPFR_RNDN);
        mpfr_sqr(r19792, r19781, MPFR_RNDN);
        ;
        mpfr_mul(r19794, r19786, r19784, MPFR_RNDN);
        mpfr_mul(r19795, r19793, r19794, MPFR_RNDN);
        mpfr_sub(r19796, r19792, r19795, MPFR_RNDN);
        mpfr_sqrt(r19797, r19796, MPFR_RNDN);
        mpfr_add(r19798, r19791, r19797, MPFR_RNDN);
        ;
        mpfr_mul(r19800, r19799, r19786, MPFR_RNDN);
        mpfr_div(r19801, r19798, r19800, MPFR_RNDN);
        ;
        mpfr_set_si(r19803, mpfr_cmp(r19781, r19802) <= 0, MPFR_RNDN);
        mpfr_div(r19804, r19786, r19799, MPFR_RNDN);
        mpfr_mul(r19805, r19793, r19784, MPFR_RNDN);
        mpfr_sub(r19806, r19791, r19797, MPFR_RNDN);
        mpfr_div(r19807, r19805, r19806, MPFR_RNDN);
        mpfr_div(r19808, r19807, r19786, MPFR_RNDN);
        mpfr_mul(r19809, r19804, r19808, MPFR_RNDN);
        ;
        mpfr_div(r19811, r19810, r19799, MPFR_RNDN);
        mpfr_mul(r19812, r19785, r19811, MPFR_RNDN);
        if (mpfr_get_si(r19803, MPFR_RNDN)) { mpfr_set(r19813, r19809, MPFR_RNDN); } else { mpfr_set(r19813, r19812, MPFR_RNDN); };
        if (mpfr_get_si(r19790, MPFR_RNDN)) { mpfr_set(r19814, r19801, MPFR_RNDN); } else { mpfr_set(r19814, r19813, MPFR_RNDN); };
        if (mpfr_get_si(r19783, MPFR_RNDN)) { mpfr_set(r19815, r19788, MPFR_RNDN); } else { mpfr_set(r19815, r19814, MPFR_RNDN); };
        return mpfr_get_d(r19815, MPFR_RNDN);
}

static mpfr_t r19816, r19817, r19818, r19819, r19820, r19821, r19822, r19823, r19824, r19825, r19826, r19827, r19828, r19829, r19830, r19831, r19832, r19833, r19834, r19835, r19836, r19837, r19838, r19839, r19840, r19841, r19842, r19843, r19844, r19845, r19846, r19847, r19848, r19849, r19850;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(2960);
        mpfr_init(r19816);
        mpfr_init_set_str(r19817, "-1.6429991956785702e+85", 10, MPFR_RNDN);
        mpfr_init(r19818);
        mpfr_init(r19819);
        mpfr_init(r19820);
        mpfr_init(r19821);
        mpfr_init(r19822);
        mpfr_init(r19823);
        mpfr_init_set_str(r19824, "1.964481890400044e-184", 10, MPFR_RNDN);
        mpfr_init(r19825);
        mpfr_init(r19826);
        mpfr_init(r19827);
        mpfr_init_set_str(r19828, "4", 10, MPFR_RNDN);
        mpfr_init(r19829);
        mpfr_init(r19830);
        mpfr_init(r19831);
        mpfr_init(r19832);
        mpfr_init(r19833);
        mpfr_init_set_str(r19834, "2", 10, MPFR_RNDN);
        mpfr_init(r19835);
        mpfr_init(r19836);
        mpfr_init_set_str(r19837, "2.4861451900721143e+28", 10, MPFR_RNDN);
        mpfr_init(r19838);
        mpfr_init(r19839);
        mpfr_init(r19840);
        mpfr_init(r19841);
        mpfr_init(r19842);
        mpfr_init(r19843);
        mpfr_init(r19844);
        mpfr_init_set_str(r19845, "-2", 10, MPFR_RNDN);
        mpfr_init(r19846);
        mpfr_init(r19847);
        mpfr_init(r19848);
        mpfr_init(r19849);
        mpfr_init(r19850);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r19816, b, MPFR_RNDN);
        ;
        mpfr_set_si(r19818, mpfr_cmp(r19816, r19817) <= 0, MPFR_RNDN);
        mpfr_set_d(r19819, c, MPFR_RNDN);
        mpfr_div(r19820, r19819, r19816, MPFR_RNDN);
        mpfr_set_d(r19821, a, MPFR_RNDN);
        mpfr_div(r19822, r19816, r19821, MPFR_RNDN);
        mpfr_sub(r19823, r19820, r19822, MPFR_RNDN);
        ;
        mpfr_set_si(r19825, mpfr_cmp(r19816, r19824) <= 0, MPFR_RNDN);
        mpfr_neg(r19826, r19816, MPFR_RNDN);
        mpfr_sqr(r19827, r19816, MPFR_RNDN);
        ;
        mpfr_mul(r19829, r19821, r19819, MPFR_RNDN);
        mpfr_mul(r19830, r19828, r19829, MPFR_RNDN);
        mpfr_sub(r19831, r19827, r19830, MPFR_RNDN);
        mpfr_sqrt(r19832, r19831, MPFR_RNDN);
        mpfr_add(r19833, r19826, r19832, MPFR_RNDN);
        ;
        mpfr_mul(r19835, r19834, r19821, MPFR_RNDN);
        mpfr_div(r19836, r19833, r19835, MPFR_RNDN);
        ;
        mpfr_set_si(r19838, mpfr_cmp(r19816, r19837) <= 0, MPFR_RNDN);
        mpfr_div(r19839, r19821, r19834, MPFR_RNDN);
        mpfr_mul(r19840, r19828, r19819, MPFR_RNDN);
        mpfr_sub(r19841, r19826, r19832, MPFR_RNDN);
        mpfr_div(r19842, r19840, r19841, MPFR_RNDN);
        mpfr_div(r19843, r19842, r19821, MPFR_RNDN);
        mpfr_mul(r19844, r19839, r19843, MPFR_RNDN);
        ;
        mpfr_div(r19846, r19845, r19834, MPFR_RNDN);
        mpfr_mul(r19847, r19820, r19846, MPFR_RNDN);
        if (mpfr_get_si(r19838, MPFR_RNDN)) { mpfr_set(r19848, r19844, MPFR_RNDN); } else { mpfr_set(r19848, r19847, MPFR_RNDN); };
        if (mpfr_get_si(r19825, MPFR_RNDN)) { mpfr_set(r19849, r19836, MPFR_RNDN); } else { mpfr_set(r19849, r19848, MPFR_RNDN); };
        if (mpfr_get_si(r19818, MPFR_RNDN)) { mpfr_set(r19850, r19823, MPFR_RNDN); } else { mpfr_set(r19850, r19849, MPFR_RNDN); };
        return mpfr_get_d(r19850, MPFR_RNDN);
}

