#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 r19645 = b;
        float r19646 = -r19645;
        float r19647 = r19645 * r19645;
        float r19648 = 4.0f;
        float r19649 = a;
        float r19650 = c;
        float r19651 = r19649 * r19650;
        float r19652 = r19648 * r19651;
        float r19653 = r19647 - r19652;
        float r19654 = sqrt(r19653);
        float r19655 = r19646 + r19654;
        float r19656 = 2.0f;
        float r19657 = r19656 * r19649;
        float r19658 = r19655 / r19657;
        return r19658;
}

double f_id(double a, double b, double c) {
        double r19659 = b;
        double r19660 = -r19659;
        double r19661 = r19659 * r19659;
        double r19662 = 4.0;
        double r19663 = a;
        double r19664 = c;
        double r19665 = r19663 * r19664;
        double r19666 = r19662 * r19665;
        double r19667 = r19661 - r19666;
        double r19668 = sqrt(r19667);
        double r19669 = r19660 + r19668;
        double r19670 = 2.0;
        double r19671 = r19670 * r19663;
        double r19672 = r19669 / r19671;
        return r19672;
}


double f_of(float a, float b, float c) {
        float r19673 = b;
        float r19674 = -3.460964309611288e+19f;
        bool r19675 = r19673 <= r19674;
        float r19676 = c;
        float r19677 = r19676 / r19673;
        float r19678 = a;
        float r19679 = r19673 / r19678;
        float r19680 = r19677 - r19679;
        float r19681 = 5.3630996565742086e-235f;
        bool r19682 = r19673 <= r19681;
        float r19683 = 1.0f;
        float r19684 = 2.0f;
        float r19685 = r19684 * r19678;
        float r19686 = -r19673;
        float r19687 = r19673 * r19673;
        float r19688 = 4.0f;
        float r19689 = r19678 * r19676;
        float r19690 = r19688 * r19689;
        float r19691 = r19687 - r19690;
        float r19692 = sqrt(r19691);
        float r19693 = r19686 + r19692;
        float r19694 = r19685 / r19693;
        float r19695 = r19683 / r19694;
        float r19696 = 1.6164635363498484e-18f;
        bool r19697 = r19673 <= r19696;
        float r19698 = r19688 * r19676;
        float r19699 = r19678 * r19698;
        float r19700 = r19686 - r19692;
        float r19701 = r19699 / r19700;
        float r19702 = r19701 / r19685;
        float r19703 = -2.0f;
        float r19704 = r19703 / r19684;
        float r19705 = r19677 * r19704;
        float r19706 = r19697 ? r19702 : r19705;
        float r19707 = r19682 ? r19695 : r19706;
        float r19708 = r19675 ? r19680 : r19707;
        return r19708;
}

double f_od(double a, double b, double c) {
        double r19709 = b;
        double r19710 = -3.460964309611288e+19;
        bool r19711 = r19709 <= r19710;
        double r19712 = c;
        double r19713 = r19712 / r19709;
        double r19714 = a;
        double r19715 = r19709 / r19714;
        double r19716 = r19713 - r19715;
        double r19717 = 5.3630996565742086e-235;
        bool r19718 = r19709 <= r19717;
        double r19719 = 1.0;
        double r19720 = 2.0;
        double r19721 = r19720 * r19714;
        double r19722 = -r19709;
        double r19723 = r19709 * r19709;
        double r19724 = 4.0;
        double r19725 = r19714 * r19712;
        double r19726 = r19724 * r19725;
        double r19727 = r19723 - r19726;
        double r19728 = sqrt(r19727);
        double r19729 = r19722 + r19728;
        double r19730 = r19721 / r19729;
        double r19731 = r19719 / r19730;
        double r19732 = 1.6164635363498484e-18;
        bool r19733 = r19709 <= r19732;
        double r19734 = r19724 * r19712;
        double r19735 = r19714 * r19734;
        double r19736 = r19722 - r19728;
        double r19737 = r19735 / r19736;
        double r19738 = r19737 / r19721;
        double r19739 = -2.0;
        double r19740 = r19739 / r19720;
        double r19741 = r19713 * r19740;
        double r19742 = r19733 ? r19738 : r19741;
        double r19743 = r19718 ? r19731 : r19742;
        double r19744 = r19711 ? r19716 : r19743;
        return r19744;
}

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 r19745, r19746, r19747, r19748, r19749, r19750, r19751, r19752, r19753, r19754, r19755, r19756, r19757, r19758;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(2960);
        mpfr_init(r19745);
        mpfr_init(r19746);
        mpfr_init(r19747);
        mpfr_init_set_str(r19748, "4", 10, MPFR_RNDN);
        mpfr_init(r19749);
        mpfr_init(r19750);
        mpfr_init(r19751);
        mpfr_init(r19752);
        mpfr_init(r19753);
        mpfr_init(r19754);
        mpfr_init(r19755);
        mpfr_init_set_str(r19756, "2", 10, MPFR_RNDN);
        mpfr_init(r19757);
        mpfr_init(r19758);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r19745, b, MPFR_RNDN);
        mpfr_neg(r19746, r19745, MPFR_RNDN);
        mpfr_sqr(r19747, r19745, MPFR_RNDN);
        ;
        mpfr_set_d(r19749, a, MPFR_RNDN);
        mpfr_set_d(r19750, c, MPFR_RNDN);
        mpfr_mul(r19751, r19749, r19750, MPFR_RNDN);
        mpfr_mul(r19752, r19748, r19751, MPFR_RNDN);
        mpfr_sub(r19753, r19747, r19752, MPFR_RNDN);
        mpfr_sqrt(r19754, r19753, MPFR_RNDN);
        mpfr_add(r19755, r19746, r19754, MPFR_RNDN);
        ;
        mpfr_mul(r19757, r19756, r19749, MPFR_RNDN);
        mpfr_div(r19758, r19755, r19757, MPFR_RNDN);
        return mpfr_get_d(r19758, MPFR_RNDN);
}

static mpfr_t r19759, r19760, r19761, r19762, r19763, r19764, r19765, r19766, r19767, r19768, r19769, r19770, r19771, r19772, r19773, r19774, r19775, r19776, r19777, r19778, r19779, r19780, r19781, r19782, r19783, r19784, r19785, r19786, r19787, r19788, r19789, r19790, r19791, r19792, r19793, r19794;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(2960);
        mpfr_init(r19759);
        mpfr_init_set_str(r19760, "-3.460964309611288e+19", 10, MPFR_RNDN);
        mpfr_init(r19761);
        mpfr_init(r19762);
        mpfr_init(r19763);
        mpfr_init(r19764);
        mpfr_init(r19765);
        mpfr_init(r19766);
        mpfr_init_set_str(r19767, "5.3630996565742086e-235", 10, MPFR_RNDN);
        mpfr_init(r19768);
        mpfr_init_set_str(r19769, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r19770, "2", 10, MPFR_RNDN);
        mpfr_init(r19771);
        mpfr_init(r19772);
        mpfr_init(r19773);
        mpfr_init_set_str(r19774, "4", 10, MPFR_RNDN);
        mpfr_init(r19775);
        mpfr_init(r19776);
        mpfr_init(r19777);
        mpfr_init(r19778);
        mpfr_init(r19779);
        mpfr_init(r19780);
        mpfr_init(r19781);
        mpfr_init_set_str(r19782, "1.6164635363498484e-18", 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, "-2", 10, MPFR_RNDN);
        mpfr_init(r19790);
        mpfr_init(r19791);
        mpfr_init(r19792);
        mpfr_init(r19793);
        mpfr_init(r19794);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r19759, b, MPFR_RNDN);
        ;
        mpfr_set_si(r19761, mpfr_cmp(r19759, r19760) <= 0, MPFR_RNDN);
        mpfr_set_d(r19762, c, MPFR_RNDN);
        mpfr_div(r19763, r19762, r19759, MPFR_RNDN);
        mpfr_set_d(r19764, a, MPFR_RNDN);
        mpfr_div(r19765, r19759, r19764, MPFR_RNDN);
        mpfr_sub(r19766, r19763, r19765, MPFR_RNDN);
        ;
        mpfr_set_si(r19768, mpfr_cmp(r19759, r19767) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r19771, r19770, r19764, MPFR_RNDN);
        mpfr_neg(r19772, r19759, MPFR_RNDN);
        mpfr_sqr(r19773, r19759, MPFR_RNDN);
        ;
        mpfr_mul(r19775, r19764, r19762, MPFR_RNDN);
        mpfr_mul(r19776, r19774, r19775, MPFR_RNDN);
        mpfr_sub(r19777, r19773, r19776, MPFR_RNDN);
        mpfr_sqrt(r19778, r19777, MPFR_RNDN);
        mpfr_add(r19779, r19772, r19778, MPFR_RNDN);
        mpfr_div(r19780, r19771, r19779, MPFR_RNDN);
        mpfr_div(r19781, r19769, r19780, MPFR_RNDN);
        ;
        mpfr_set_si(r19783, mpfr_cmp(r19759, r19782) <= 0, MPFR_RNDN);
        mpfr_mul(r19784, r19774, r19762, MPFR_RNDN);
        mpfr_mul(r19785, r19764, r19784, MPFR_RNDN);
        mpfr_sub(r19786, r19772, r19778, MPFR_RNDN);
        mpfr_div(r19787, r19785, r19786, MPFR_RNDN);
        mpfr_div(r19788, r19787, r19771, MPFR_RNDN);
        ;
        mpfr_div(r19790, r19789, r19770, MPFR_RNDN);
        mpfr_mul(r19791, r19763, r19790, MPFR_RNDN);
        if (mpfr_get_si(r19783, MPFR_RNDN)) { mpfr_set(r19792, r19788, MPFR_RNDN); } else { mpfr_set(r19792, r19791, MPFR_RNDN); };
        if (mpfr_get_si(r19768, MPFR_RNDN)) { mpfr_set(r19793, r19781, MPFR_RNDN); } else { mpfr_set(r19793, r19792, MPFR_RNDN); };
        if (mpfr_get_si(r19761, MPFR_RNDN)) { mpfr_set(r19794, r19766, MPFR_RNDN); } else { mpfr_set(r19794, r19793, MPFR_RNDN); };
        return mpfr_get_d(r19794, MPFR_RNDN);
}

static mpfr_t r19795, r19796, r19797, r19798, r19799, r19800, r19801, r19802, r19803, r19804, r19805, r19806, r19807, r19808, r19809, r19810, r19811, r19812, r19813, r19814, r19815, r19816, r19817, r19818, r19819, r19820, r19821, r19822, r19823, r19824, r19825, r19826, r19827, r19828, r19829, r19830;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(2960);
        mpfr_init(r19795);
        mpfr_init_set_str(r19796, "-3.460964309611288e+19", 10, MPFR_RNDN);
        mpfr_init(r19797);
        mpfr_init(r19798);
        mpfr_init(r19799);
        mpfr_init(r19800);
        mpfr_init(r19801);
        mpfr_init(r19802);
        mpfr_init_set_str(r19803, "5.3630996565742086e-235", 10, MPFR_RNDN);
        mpfr_init(r19804);
        mpfr_init_set_str(r19805, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r19806, "2", 10, MPFR_RNDN);
        mpfr_init(r19807);
        mpfr_init(r19808);
        mpfr_init(r19809);
        mpfr_init_set_str(r19810, "4", 10, MPFR_RNDN);
        mpfr_init(r19811);
        mpfr_init(r19812);
        mpfr_init(r19813);
        mpfr_init(r19814);
        mpfr_init(r19815);
        mpfr_init(r19816);
        mpfr_init(r19817);
        mpfr_init_set_str(r19818, "1.6164635363498484e-18", 10, MPFR_RNDN);
        mpfr_init(r19819);
        mpfr_init(r19820);
        mpfr_init(r19821);
        mpfr_init(r19822);
        mpfr_init(r19823);
        mpfr_init(r19824);
        mpfr_init_set_str(r19825, "-2", 10, MPFR_RNDN);
        mpfr_init(r19826);
        mpfr_init(r19827);
        mpfr_init(r19828);
        mpfr_init(r19829);
        mpfr_init(r19830);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r19795, b, MPFR_RNDN);
        ;
        mpfr_set_si(r19797, mpfr_cmp(r19795, r19796) <= 0, MPFR_RNDN);
        mpfr_set_d(r19798, c, MPFR_RNDN);
        mpfr_div(r19799, r19798, r19795, MPFR_RNDN);
        mpfr_set_d(r19800, a, MPFR_RNDN);
        mpfr_div(r19801, r19795, r19800, MPFR_RNDN);
        mpfr_sub(r19802, r19799, r19801, MPFR_RNDN);
        ;
        mpfr_set_si(r19804, mpfr_cmp(r19795, r19803) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r19807, r19806, r19800, MPFR_RNDN);
        mpfr_neg(r19808, r19795, MPFR_RNDN);
        mpfr_sqr(r19809, r19795, MPFR_RNDN);
        ;
        mpfr_mul(r19811, r19800, r19798, MPFR_RNDN);
        mpfr_mul(r19812, r19810, r19811, MPFR_RNDN);
        mpfr_sub(r19813, r19809, r19812, MPFR_RNDN);
        mpfr_sqrt(r19814, r19813, MPFR_RNDN);
        mpfr_add(r19815, r19808, r19814, MPFR_RNDN);
        mpfr_div(r19816, r19807, r19815, MPFR_RNDN);
        mpfr_div(r19817, r19805, r19816, MPFR_RNDN);
        ;
        mpfr_set_si(r19819, mpfr_cmp(r19795, r19818) <= 0, MPFR_RNDN);
        mpfr_mul(r19820, r19810, r19798, MPFR_RNDN);
        mpfr_mul(r19821, r19800, r19820, MPFR_RNDN);
        mpfr_sub(r19822, r19808, r19814, MPFR_RNDN);
        mpfr_div(r19823, r19821, r19822, MPFR_RNDN);
        mpfr_div(r19824, r19823, r19807, MPFR_RNDN);
        ;
        mpfr_div(r19826, r19825, r19806, MPFR_RNDN);
        mpfr_mul(r19827, r19799, r19826, MPFR_RNDN);
        if (mpfr_get_si(r19819, MPFR_RNDN)) { mpfr_set(r19828, r19824, MPFR_RNDN); } else { mpfr_set(r19828, r19827, MPFR_RNDN); };
        if (mpfr_get_si(r19804, MPFR_RNDN)) { mpfr_set(r19829, r19817, MPFR_RNDN); } else { mpfr_set(r19829, r19828, MPFR_RNDN); };
        if (mpfr_get_si(r19797, MPFR_RNDN)) { mpfr_set(r19830, r19802, MPFR_RNDN); } else { mpfr_set(r19830, r19829, MPFR_RNDN); };
        return mpfr_get_d(r19830, MPFR_RNDN);
}

