#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 r18724 = b;
        float r18725 = -r18724;
        float r18726 = r18724 * r18724;
        float r18727 = 4.0f;
        float r18728 = a;
        float r18729 = c;
        float r18730 = r18728 * r18729;
        float r18731 = r18727 * r18730;
        float r18732 = r18726 - r18731;
        float r18733 = sqrt(r18732);
        float r18734 = r18725 + r18733;
        float r18735 = 2.0f;
        float r18736 = r18735 * r18728;
        float r18737 = r18734 / r18736;
        return r18737;
}

double f_id(double a, double b, double c) {
        double r18738 = b;
        double r18739 = -r18738;
        double r18740 = r18738 * r18738;
        double r18741 = 4.0;
        double r18742 = a;
        double r18743 = c;
        double r18744 = r18742 * r18743;
        double r18745 = r18741 * r18744;
        double r18746 = r18740 - r18745;
        double r18747 = sqrt(r18746);
        double r18748 = r18739 + r18747;
        double r18749 = 2.0;
        double r18750 = r18749 * r18742;
        double r18751 = r18748 / r18750;
        return r18751;
}


double f_of(float a, float b, float c) {
        float r18752 = b;
        float r18753 = -1.751131060884064e+136f;
        bool r18754 = r18752 <= r18753;
        float r18755 = -r18752;
        float r18756 = a;
        float r18757 = r18755 / r18756;
        float r18758 = -5.335815531470738e-240f;
        bool r18759 = r18752 <= r18758;
        float r18760 = 1.0f;
        float r18761 = 2.0f;
        float r18762 = r18761 * r18756;
        float r18763 = r18752 * r18752;
        float r18764 = 4.0f;
        float r18765 = c;
        float r18766 = r18756 * r18765;
        float r18767 = r18764 * r18766;
        float r18768 = r18763 - r18767;
        float r18769 = sqrt(r18768);
        float r18770 = r18755 + r18769;
        float r18771 = r18762 / r18770;
        float r18772 = r18760 / r18771;
        float r18773 = 5.845042913155354e+61f;
        bool r18774 = r18752 <= r18773;
        float r18775 = r18752 * r18752;
        float r18776 = r18764 * r18756;
        float r18777 = r18776 * r18765;
        float r18778 = r18775 - r18777;
        float r18779 = sqrt(r18778);
        float r18780 = r18755 - r18779;
        float r18781 = r18761 / r18764;
        float r18782 = r18781 / r18765;
        float r18783 = r18780 * r18782;
        float r18784 = r18760 / r18783;
        float r18785 = r18752 + r18755;
        float r18786 = r18756 + r18756;
        float r18787 = r18785 / r18786;
        float r18788 = r18765 / r18752;
        float r18789 = r18787 - r18788;
        float r18790 = r18774 ? r18784 : r18789;
        float r18791 = r18759 ? r18772 : r18790;
        float r18792 = r18754 ? r18757 : r18791;
        return r18792;
}

double f_od(double a, double b, double c) {
        double r18793 = b;
        double r18794 = -1.751131060884064e+136;
        bool r18795 = r18793 <= r18794;
        double r18796 = -r18793;
        double r18797 = a;
        double r18798 = r18796 / r18797;
        double r18799 = -5.335815531470738e-240;
        bool r18800 = r18793 <= r18799;
        double r18801 = 1.0;
        double r18802 = 2.0;
        double r18803 = r18802 * r18797;
        double r18804 = r18793 * r18793;
        double r18805 = 4.0;
        double r18806 = c;
        double r18807 = r18797 * r18806;
        double r18808 = r18805 * r18807;
        double r18809 = r18804 - r18808;
        double r18810 = sqrt(r18809);
        double r18811 = r18796 + r18810;
        double r18812 = r18803 / r18811;
        double r18813 = r18801 / r18812;
        double r18814 = 5.845042913155354e+61;
        bool r18815 = r18793 <= r18814;
        double r18816 = r18793 * r18793;
        double r18817 = r18805 * r18797;
        double r18818 = r18817 * r18806;
        double r18819 = r18816 - r18818;
        double r18820 = sqrt(r18819);
        double r18821 = r18796 - r18820;
        double r18822 = r18802 / r18805;
        double r18823 = r18822 / r18806;
        double r18824 = r18821 * r18823;
        double r18825 = r18801 / r18824;
        double r18826 = r18793 + r18796;
        double r18827 = r18797 + r18797;
        double r18828 = r18826 / r18827;
        double r18829 = r18806 / r18793;
        double r18830 = r18828 - r18829;
        double r18831 = r18815 ? r18825 : r18830;
        double r18832 = r18800 ? r18813 : r18831;
        double r18833 = r18795 ? r18798 : r18832;
        return r18833;
}

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 r18834, r18835, r18836, r18837, r18838, r18839, r18840, r18841, r18842, r18843, r18844, r18845, r18846, r18847;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(2448);
        mpfr_init(r18834);
        mpfr_init(r18835);
        mpfr_init(r18836);
        mpfr_init_set_str(r18837, "4", 10, MPFR_RNDN);
        mpfr_init(r18838);
        mpfr_init(r18839);
        mpfr_init(r18840);
        mpfr_init(r18841);
        mpfr_init(r18842);
        mpfr_init(r18843);
        mpfr_init(r18844);
        mpfr_init_set_str(r18845, "2", 10, MPFR_RNDN);
        mpfr_init(r18846);
        mpfr_init(r18847);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r18834, b, MPFR_RNDN);
        mpfr_neg(r18835, r18834, MPFR_RNDN);
        mpfr_sqr(r18836, r18834, MPFR_RNDN);
        ;
        mpfr_set_d(r18838, a, MPFR_RNDN);
        mpfr_set_d(r18839, c, MPFR_RNDN);
        mpfr_mul(r18840, r18838, r18839, MPFR_RNDN);
        mpfr_mul(r18841, r18837, r18840, MPFR_RNDN);
        mpfr_sub(r18842, r18836, r18841, MPFR_RNDN);
        mpfr_sqrt(r18843, r18842, MPFR_RNDN);
        mpfr_add(r18844, r18835, r18843, MPFR_RNDN);
        ;
        mpfr_mul(r18846, r18845, r18838, MPFR_RNDN);
        mpfr_div(r18847, r18844, r18846, MPFR_RNDN);
        return mpfr_get_d(r18847, MPFR_RNDN);
}

static mpfr_t r18848, r18849, r18850, r18851, r18852, r18853, r18854, r18855, r18856, r18857, r18858, r18859, r18860, r18861, r18862, r18863, r18864, r18865, r18866, r18867, r18868, r18869, r18870, r18871, r18872, r18873, r18874, r18875, r18876, r18877, r18878, r18879, r18880, r18881, r18882, r18883, r18884, r18885, r18886, r18887, r18888;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(2448);
        mpfr_init(r18848);
        mpfr_init_set_str(r18849, "-1.751131060884064e+136", 10, MPFR_RNDN);
        mpfr_init(r18850);
        mpfr_init(r18851);
        mpfr_init(r18852);
        mpfr_init(r18853);
        mpfr_init_set_str(r18854, "-5.335815531470738e-240", 10, MPFR_RNDN);
        mpfr_init(r18855);
        mpfr_init_set_str(r18856, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r18857, "2", 10, MPFR_RNDN);
        mpfr_init(r18858);
        mpfr_init(r18859);
        mpfr_init_set_str(r18860, "4", 10, MPFR_RNDN);
        mpfr_init(r18861);
        mpfr_init(r18862);
        mpfr_init(r18863);
        mpfr_init(r18864);
        mpfr_init(r18865);
        mpfr_init(r18866);
        mpfr_init(r18867);
        mpfr_init(r18868);
        mpfr_init_set_str(r18869, "5.845042913155354e+61", 10, MPFR_RNDN);
        mpfr_init(r18870);
        mpfr_init(r18871);
        mpfr_init(r18872);
        mpfr_init(r18873);
        mpfr_init(r18874);
        mpfr_init(r18875);
        mpfr_init(r18876);
        mpfr_init(r18877);
        mpfr_init(r18878);
        mpfr_init(r18879);
        mpfr_init(r18880);
        mpfr_init(r18881);
        mpfr_init(r18882);
        mpfr_init(r18883);
        mpfr_init(r18884);
        mpfr_init(r18885);
        mpfr_init(r18886);
        mpfr_init(r18887);
        mpfr_init(r18888);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r18848, b, MPFR_RNDN);
        ;
        mpfr_set_si(r18850, mpfr_cmp(r18848, r18849) <= 0, MPFR_RNDN);
        mpfr_neg(r18851, r18848, MPFR_RNDN);
        mpfr_set_d(r18852, a, MPFR_RNDN);
        mpfr_div(r18853, r18851, r18852, MPFR_RNDN);
        ;
        mpfr_set_si(r18855, mpfr_cmp(r18848, r18854) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r18858, r18857, r18852, MPFR_RNDN);
        mpfr_sqr(r18859, r18848, MPFR_RNDN);
        ;
        mpfr_set_d(r18861, c, MPFR_RNDN);
        mpfr_mul(r18862, r18852, r18861, MPFR_RNDN);
        mpfr_mul(r18863, r18860, r18862, MPFR_RNDN);
        mpfr_sub(r18864, r18859, r18863, MPFR_RNDN);
        mpfr_sqrt(r18865, r18864, MPFR_RNDN);
        mpfr_add(r18866, r18851, r18865, MPFR_RNDN);
        mpfr_div(r18867, r18858, r18866, MPFR_RNDN);
        mpfr_div(r18868, r18856, r18867, MPFR_RNDN);
        ;
        mpfr_set_si(r18870, mpfr_cmp(r18848, r18869) <= 0, MPFR_RNDN);
        mpfr_mul(r18871, r18848, r18848, MPFR_RNDN);
        mpfr_mul(r18872, r18860, r18852, MPFR_RNDN);
        mpfr_mul(r18873, r18872, r18861, MPFR_RNDN);
        mpfr_sub(r18874, r18871, r18873, MPFR_RNDN);
        mpfr_sqrt(r18875, r18874, MPFR_RNDN);
        mpfr_sub(r18876, r18851, r18875, MPFR_RNDN);
        mpfr_div(r18877, r18857, r18860, MPFR_RNDN);
        mpfr_div(r18878, r18877, r18861, MPFR_RNDN);
        mpfr_mul(r18879, r18876, r18878, MPFR_RNDN);
        mpfr_div(r18880, r18856, r18879, MPFR_RNDN);
        mpfr_add(r18881, r18848, r18851, MPFR_RNDN);
        mpfr_add(r18882, r18852, r18852, MPFR_RNDN);
        mpfr_div(r18883, r18881, r18882, MPFR_RNDN);
        mpfr_div(r18884, r18861, r18848, MPFR_RNDN);
        mpfr_sub(r18885, r18883, r18884, MPFR_RNDN);
        if (mpfr_get_si(r18870, MPFR_RNDN)) { mpfr_set(r18886, r18880, MPFR_RNDN); } else { mpfr_set(r18886, r18885, MPFR_RNDN); };
        if (mpfr_get_si(r18855, MPFR_RNDN)) { mpfr_set(r18887, r18868, MPFR_RNDN); } else { mpfr_set(r18887, r18886, MPFR_RNDN); };
        if (mpfr_get_si(r18850, MPFR_RNDN)) { mpfr_set(r18888, r18853, MPFR_RNDN); } else { mpfr_set(r18888, r18887, MPFR_RNDN); };
        return mpfr_get_d(r18888, MPFR_RNDN);
}

static mpfr_t r18889, r18890, r18891, r18892, r18893, r18894, r18895, r18896, r18897, r18898, r18899, r18900, r18901, r18902, r18903, r18904, r18905, r18906, r18907, r18908, r18909, r18910, r18911, r18912, r18913, r18914, r18915, r18916, r18917, r18918, r18919, r18920, r18921, r18922, r18923, r18924, r18925, r18926, r18927, r18928, r18929;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(2448);
        mpfr_init(r18889);
        mpfr_init_set_str(r18890, "-1.751131060884064e+136", 10, MPFR_RNDN);
        mpfr_init(r18891);
        mpfr_init(r18892);
        mpfr_init(r18893);
        mpfr_init(r18894);
        mpfr_init_set_str(r18895, "-5.335815531470738e-240", 10, MPFR_RNDN);
        mpfr_init(r18896);
        mpfr_init_set_str(r18897, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r18898, "2", 10, MPFR_RNDN);
        mpfr_init(r18899);
        mpfr_init(r18900);
        mpfr_init_set_str(r18901, "4", 10, MPFR_RNDN);
        mpfr_init(r18902);
        mpfr_init(r18903);
        mpfr_init(r18904);
        mpfr_init(r18905);
        mpfr_init(r18906);
        mpfr_init(r18907);
        mpfr_init(r18908);
        mpfr_init(r18909);
        mpfr_init_set_str(r18910, "5.845042913155354e+61", 10, MPFR_RNDN);
        mpfr_init(r18911);
        mpfr_init(r18912);
        mpfr_init(r18913);
        mpfr_init(r18914);
        mpfr_init(r18915);
        mpfr_init(r18916);
        mpfr_init(r18917);
        mpfr_init(r18918);
        mpfr_init(r18919);
        mpfr_init(r18920);
        mpfr_init(r18921);
        mpfr_init(r18922);
        mpfr_init(r18923);
        mpfr_init(r18924);
        mpfr_init(r18925);
        mpfr_init(r18926);
        mpfr_init(r18927);
        mpfr_init(r18928);
        mpfr_init(r18929);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r18889, b, MPFR_RNDN);
        ;
        mpfr_set_si(r18891, mpfr_cmp(r18889, r18890) <= 0, MPFR_RNDN);
        mpfr_neg(r18892, r18889, MPFR_RNDN);
        mpfr_set_d(r18893, a, MPFR_RNDN);
        mpfr_div(r18894, r18892, r18893, MPFR_RNDN);
        ;
        mpfr_set_si(r18896, mpfr_cmp(r18889, r18895) <= 0, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r18899, r18898, r18893, MPFR_RNDN);
        mpfr_sqr(r18900, r18889, MPFR_RNDN);
        ;
        mpfr_set_d(r18902, c, MPFR_RNDN);
        mpfr_mul(r18903, r18893, r18902, MPFR_RNDN);
        mpfr_mul(r18904, r18901, r18903, MPFR_RNDN);
        mpfr_sub(r18905, r18900, r18904, MPFR_RNDN);
        mpfr_sqrt(r18906, r18905, MPFR_RNDN);
        mpfr_add(r18907, r18892, r18906, MPFR_RNDN);
        mpfr_div(r18908, r18899, r18907, MPFR_RNDN);
        mpfr_div(r18909, r18897, r18908, MPFR_RNDN);
        ;
        mpfr_set_si(r18911, mpfr_cmp(r18889, r18910) <= 0, MPFR_RNDN);
        mpfr_mul(r18912, r18889, r18889, MPFR_RNDN);
        mpfr_mul(r18913, r18901, r18893, MPFR_RNDN);
        mpfr_mul(r18914, r18913, r18902, MPFR_RNDN);
        mpfr_sub(r18915, r18912, r18914, MPFR_RNDN);
        mpfr_sqrt(r18916, r18915, MPFR_RNDN);
        mpfr_sub(r18917, r18892, r18916, MPFR_RNDN);
        mpfr_div(r18918, r18898, r18901, MPFR_RNDN);
        mpfr_div(r18919, r18918, r18902, MPFR_RNDN);
        mpfr_mul(r18920, r18917, r18919, MPFR_RNDN);
        mpfr_div(r18921, r18897, r18920, MPFR_RNDN);
        mpfr_add(r18922, r18889, r18892, MPFR_RNDN);
        mpfr_add(r18923, r18893, r18893, MPFR_RNDN);
        mpfr_div(r18924, r18922, r18923, MPFR_RNDN);
        mpfr_div(r18925, r18902, r18889, MPFR_RNDN);
        mpfr_sub(r18926, r18924, r18925, MPFR_RNDN);
        if (mpfr_get_si(r18911, MPFR_RNDN)) { mpfr_set(r18927, r18921, MPFR_RNDN); } else { mpfr_set(r18927, r18926, MPFR_RNDN); };
        if (mpfr_get_si(r18896, MPFR_RNDN)) { mpfr_set(r18928, r18909, MPFR_RNDN); } else { mpfr_set(r18928, r18927, MPFR_RNDN); };
        if (mpfr_get_si(r18891, MPFR_RNDN)) { mpfr_set(r18929, r18894, MPFR_RNDN); } else { mpfr_set(r18929, r18928, MPFR_RNDN); };
        return mpfr_get_d(r18929, MPFR_RNDN);
}

