#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 r33751 = b;
        float r33752 = -r33751;
        float r33753 = r33751 * r33751;
        float r33754 = 4.0f;
        float r33755 = a;
        float r33756 = c;
        float r33757 = r33755 * r33756;
        float r33758 = r33754 * r33757;
        float r33759 = r33753 - r33758;
        float r33760 = sqrt(r33759);
        float r33761 = r33752 + r33760;
        float r33762 = 2.0f;
        float r33763 = r33762 * r33755;
        float r33764 = r33761 / r33763;
        return r33764;
}

double f_id(double a, double b, double c) {
        double r33765 = b;
        double r33766 = -r33765;
        double r33767 = r33765 * r33765;
        double r33768 = 4.0;
        double r33769 = a;
        double r33770 = c;
        double r33771 = r33769 * r33770;
        double r33772 = r33768 * r33771;
        double r33773 = r33767 - r33772;
        double r33774 = sqrt(r33773);
        double r33775 = r33766 + r33774;
        double r33776 = 2.0;
        double r33777 = r33776 * r33769;
        double r33778 = r33775 / r33777;
        return r33778;
}


double f_of(float a, float b, float c) {
        float r33779 = b;
        float r33780 = -4.319226994044875e+67f;
        bool r33781 = r33779 <= r33780;
        float r33782 = -r33779;
        float r33783 = a;
        float r33784 = r33782 / r33783;
        float r33785 = 3.4158607390551766e-208f;
        bool r33786 = r33779 <= r33785;
        float r33787 = r33779 * r33779;
        float r33788 = 4.0f;
        float r33789 = c;
        float r33790 = r33783 * r33789;
        float r33791 = r33788 * r33790;
        float r33792 = r33787 - r33791;
        float r33793 = sqrt(r33792);
        float r33794 = r33782 + r33793;
        float r33795 = 1.0f;
        float r33796 = 2.0f;
        float r33797 = r33796 * r33783;
        float r33798 = r33795 / r33797;
        float r33799 = r33794 * r33798;
        float r33800 = 1.0905893076356243e+100f;
        bool r33801 = r33779 <= r33800;
        float r33802 = r33788 * r33783;
        float r33803 = r33802 * r33789;
        float r33804 = r33787 - r33803;
        float r33805 = sqrt(r33804);
        float r33806 = sqrt(r33805);
        float r33807 = r33806 * r33806;
        float r33808 = r33782 - r33807;
        float r33809 = r33796 / r33788;
        float r33810 = r33809 / r33789;
        float r33811 = r33808 * r33810;
        float r33812 = r33795 / r33811;
        float r33813 = r33779 + r33782;
        float r33814 = r33783 + r33783;
        float r33815 = r33813 / r33814;
        float r33816 = r33789 / r33779;
        float r33817 = r33815 - r33816;
        float r33818 = r33801 ? r33812 : r33817;
        float r33819 = r33786 ? r33799 : r33818;
        float r33820 = r33781 ? r33784 : r33819;
        return r33820;
}

double f_od(double a, double b, double c) {
        double r33821 = b;
        double r33822 = -4.319226994044875e+67;
        bool r33823 = r33821 <= r33822;
        double r33824 = -r33821;
        double r33825 = a;
        double r33826 = r33824 / r33825;
        double r33827 = 3.4158607390551766e-208;
        bool r33828 = r33821 <= r33827;
        double r33829 = r33821 * r33821;
        double r33830 = 4.0;
        double r33831 = c;
        double r33832 = r33825 * r33831;
        double r33833 = r33830 * r33832;
        double r33834 = r33829 - r33833;
        double r33835 = sqrt(r33834);
        double r33836 = r33824 + r33835;
        double r33837 = 1.0;
        double r33838 = 2.0;
        double r33839 = r33838 * r33825;
        double r33840 = r33837 / r33839;
        double r33841 = r33836 * r33840;
        double r33842 = 1.0905893076356243e+100;
        bool r33843 = r33821 <= r33842;
        double r33844 = r33830 * r33825;
        double r33845 = r33844 * r33831;
        double r33846 = r33829 - r33845;
        double r33847 = sqrt(r33846);
        double r33848 = sqrt(r33847);
        double r33849 = r33848 * r33848;
        double r33850 = r33824 - r33849;
        double r33851 = r33838 / r33830;
        double r33852 = r33851 / r33831;
        double r33853 = r33850 * r33852;
        double r33854 = r33837 / r33853;
        double r33855 = r33821 + r33824;
        double r33856 = r33825 + r33825;
        double r33857 = r33855 / r33856;
        double r33858 = r33831 / r33821;
        double r33859 = r33857 - r33858;
        double r33860 = r33843 ? r33854 : r33859;
        double r33861 = r33828 ? r33841 : r33860;
        double r33862 = r33823 ? r33826 : r33861;
        return r33862;
}

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 r33863, r33864, r33865, r33866, r33867, r33868, r33869, r33870, r33871, r33872, r33873, r33874, r33875, r33876;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init(r33863);
        mpfr_init(r33864);
        mpfr_init(r33865);
        mpfr_init_set_str(r33866, "4", 10, MPFR_RNDN);
        mpfr_init(r33867);
        mpfr_init(r33868);
        mpfr_init(r33869);
        mpfr_init(r33870);
        mpfr_init(r33871);
        mpfr_init(r33872);
        mpfr_init(r33873);
        mpfr_init_set_str(r33874, "2", 10, MPFR_RNDN);
        mpfr_init(r33875);
        mpfr_init(r33876);
}

double f_im(double a, double b, double c) {
        mpfr_set_d(r33863, b, MPFR_RNDN);
        mpfr_neg(r33864, r33863, MPFR_RNDN);
        mpfr_sqr(r33865, r33863, MPFR_RNDN);
        ;
        mpfr_set_d(r33867, a, MPFR_RNDN);
        mpfr_set_d(r33868, c, MPFR_RNDN);
        mpfr_mul(r33869, r33867, r33868, MPFR_RNDN);
        mpfr_mul(r33870, r33866, r33869, MPFR_RNDN);
        mpfr_sub(r33871, r33865, r33870, MPFR_RNDN);
        mpfr_sqrt(r33872, r33871, MPFR_RNDN);
        mpfr_add(r33873, r33864, r33872, MPFR_RNDN);
        ;
        mpfr_mul(r33875, r33874, r33867, MPFR_RNDN);
        mpfr_div(r33876, r33873, r33875, MPFR_RNDN);
        return mpfr_get_d(r33876, MPFR_RNDN);
}

static mpfr_t r33877, r33878, r33879, r33880, r33881, r33882, r33883, r33884, r33885, r33886, r33887, r33888, r33889, r33890, r33891, r33892, r33893, r33894, r33895, r33896, r33897, r33898, r33899, r33900, r33901, r33902, r33903, r33904, r33905, r33906, r33907, r33908, r33909, r33910, r33911, r33912, r33913, r33914, r33915, r33916, r33917, r33918;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init(r33877);
        mpfr_init_set_str(r33878, "-4.319226994044875e+67", 10, MPFR_RNDN);
        mpfr_init(r33879);
        mpfr_init(r33880);
        mpfr_init(r33881);
        mpfr_init(r33882);
        mpfr_init_set_str(r33883, "3.4158607390551766e-208", 10, MPFR_RNDN);
        mpfr_init(r33884);
        mpfr_init(r33885);
        mpfr_init_set_str(r33886, "4", 10, MPFR_RNDN);
        mpfr_init(r33887);
        mpfr_init(r33888);
        mpfr_init(r33889);
        mpfr_init(r33890);
        mpfr_init(r33891);
        mpfr_init(r33892);
        mpfr_init_set_str(r33893, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r33894, "2", 10, MPFR_RNDN);
        mpfr_init(r33895);
        mpfr_init(r33896);
        mpfr_init(r33897);
        mpfr_init_set_str(r33898, "1.0905893076356243e+100", 10, MPFR_RNDN);
        mpfr_init(r33899);
        mpfr_init(r33900);
        mpfr_init(r33901);
        mpfr_init(r33902);
        mpfr_init(r33903);
        mpfr_init(r33904);
        mpfr_init(r33905);
        mpfr_init(r33906);
        mpfr_init(r33907);
        mpfr_init(r33908);
        mpfr_init(r33909);
        mpfr_init(r33910);
        mpfr_init(r33911);
        mpfr_init(r33912);
        mpfr_init(r33913);
        mpfr_init(r33914);
        mpfr_init(r33915);
        mpfr_init(r33916);
        mpfr_init(r33917);
        mpfr_init(r33918);
}

double f_fm(double a, double b, double c) {
        mpfr_set_d(r33877, b, MPFR_RNDN);
        ;
        mpfr_set_si(r33879, mpfr_cmp(r33877, r33878) <= 0, MPFR_RNDN);
        mpfr_neg(r33880, r33877, MPFR_RNDN);
        mpfr_set_d(r33881, a, MPFR_RNDN);
        mpfr_div(r33882, r33880, r33881, MPFR_RNDN);
        ;
        mpfr_set_si(r33884, mpfr_cmp(r33877, r33883) <= 0, MPFR_RNDN);
        mpfr_sqr(r33885, r33877, MPFR_RNDN);
        ;
        mpfr_set_d(r33887, c, MPFR_RNDN);
        mpfr_mul(r33888, r33881, r33887, MPFR_RNDN);
        mpfr_mul(r33889, r33886, r33888, MPFR_RNDN);
        mpfr_sub(r33890, r33885, r33889, MPFR_RNDN);
        mpfr_sqrt(r33891, r33890, MPFR_RNDN);
        mpfr_add(r33892, r33880, r33891, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r33895, r33894, r33881, MPFR_RNDN);
        mpfr_div(r33896, r33893, r33895, MPFR_RNDN);
        mpfr_mul(r33897, r33892, r33896, MPFR_RNDN);
        ;
        mpfr_set_si(r33899, mpfr_cmp(r33877, r33898) <= 0, MPFR_RNDN);
        mpfr_mul(r33900, r33886, r33881, MPFR_RNDN);
        mpfr_mul(r33901, r33900, r33887, MPFR_RNDN);
        mpfr_sub(r33902, r33885, r33901, MPFR_RNDN);
        mpfr_sqrt(r33903, r33902, MPFR_RNDN);
        mpfr_sqrt(r33904, r33903, MPFR_RNDN);
        mpfr_sqr(r33905, r33904, MPFR_RNDN);
        mpfr_sub(r33906, r33880, r33905, MPFR_RNDN);
        mpfr_div(r33907, r33894, r33886, MPFR_RNDN);
        mpfr_div(r33908, r33907, r33887, MPFR_RNDN);
        mpfr_mul(r33909, r33906, r33908, MPFR_RNDN);
        mpfr_div(r33910, r33893, r33909, MPFR_RNDN);
        mpfr_add(r33911, r33877, r33880, MPFR_RNDN);
        mpfr_add(r33912, r33881, r33881, MPFR_RNDN);
        mpfr_div(r33913, r33911, r33912, MPFR_RNDN);
        mpfr_div(r33914, r33887, r33877, MPFR_RNDN);
        mpfr_sub(r33915, r33913, r33914, MPFR_RNDN);
        if (mpfr_get_si(r33899, MPFR_RNDN)) { mpfr_set(r33916, r33910, MPFR_RNDN); } else { mpfr_set(r33916, r33915, MPFR_RNDN); };
        if (mpfr_get_si(r33884, MPFR_RNDN)) { mpfr_set(r33917, r33897, MPFR_RNDN); } else { mpfr_set(r33917, r33916, MPFR_RNDN); };
        if (mpfr_get_si(r33879, MPFR_RNDN)) { mpfr_set(r33918, r33882, MPFR_RNDN); } else { mpfr_set(r33918, r33917, MPFR_RNDN); };
        return mpfr_get_d(r33918, MPFR_RNDN);
}

static mpfr_t r33919, r33920, r33921, r33922, r33923, r33924, r33925, r33926, r33927, r33928, r33929, r33930, r33931, r33932, r33933, r33934, r33935, r33936, r33937, r33938, r33939, r33940, r33941, r33942, r33943, r33944, r33945, r33946, r33947, r33948, r33949, r33950, r33951, r33952, r33953, r33954, r33955, r33956, r33957, r33958, r33959, r33960;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init(r33919);
        mpfr_init_set_str(r33920, "-4.319226994044875e+67", 10, MPFR_RNDN);
        mpfr_init(r33921);
        mpfr_init(r33922);
        mpfr_init(r33923);
        mpfr_init(r33924);
        mpfr_init_set_str(r33925, "3.4158607390551766e-208", 10, MPFR_RNDN);
        mpfr_init(r33926);
        mpfr_init(r33927);
        mpfr_init_set_str(r33928, "4", 10, MPFR_RNDN);
        mpfr_init(r33929);
        mpfr_init(r33930);
        mpfr_init(r33931);
        mpfr_init(r33932);
        mpfr_init(r33933);
        mpfr_init(r33934);
        mpfr_init_set_str(r33935, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r33936, "2", 10, MPFR_RNDN);
        mpfr_init(r33937);
        mpfr_init(r33938);
        mpfr_init(r33939);
        mpfr_init_set_str(r33940, "1.0905893076356243e+100", 10, MPFR_RNDN);
        mpfr_init(r33941);
        mpfr_init(r33942);
        mpfr_init(r33943);
        mpfr_init(r33944);
        mpfr_init(r33945);
        mpfr_init(r33946);
        mpfr_init(r33947);
        mpfr_init(r33948);
        mpfr_init(r33949);
        mpfr_init(r33950);
        mpfr_init(r33951);
        mpfr_init(r33952);
        mpfr_init(r33953);
        mpfr_init(r33954);
        mpfr_init(r33955);
        mpfr_init(r33956);
        mpfr_init(r33957);
        mpfr_init(r33958);
        mpfr_init(r33959);
        mpfr_init(r33960);
}

double f_dm(double a, double b, double c) {
        mpfr_set_d(r33919, b, MPFR_RNDN);
        ;
        mpfr_set_si(r33921, mpfr_cmp(r33919, r33920) <= 0, MPFR_RNDN);
        mpfr_neg(r33922, r33919, MPFR_RNDN);
        mpfr_set_d(r33923, a, MPFR_RNDN);
        mpfr_div(r33924, r33922, r33923, MPFR_RNDN);
        ;
        mpfr_set_si(r33926, mpfr_cmp(r33919, r33925) <= 0, MPFR_RNDN);
        mpfr_sqr(r33927, r33919, MPFR_RNDN);
        ;
        mpfr_set_d(r33929, c, MPFR_RNDN);
        mpfr_mul(r33930, r33923, r33929, MPFR_RNDN);
        mpfr_mul(r33931, r33928, r33930, MPFR_RNDN);
        mpfr_sub(r33932, r33927, r33931, MPFR_RNDN);
        mpfr_sqrt(r33933, r33932, MPFR_RNDN);
        mpfr_add(r33934, r33922, r33933, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r33937, r33936, r33923, MPFR_RNDN);
        mpfr_div(r33938, r33935, r33937, MPFR_RNDN);
        mpfr_mul(r33939, r33934, r33938, MPFR_RNDN);
        ;
        mpfr_set_si(r33941, mpfr_cmp(r33919, r33940) <= 0, MPFR_RNDN);
        mpfr_mul(r33942, r33928, r33923, MPFR_RNDN);
        mpfr_mul(r33943, r33942, r33929, MPFR_RNDN);
        mpfr_sub(r33944, r33927, r33943, MPFR_RNDN);
        mpfr_sqrt(r33945, r33944, MPFR_RNDN);
        mpfr_sqrt(r33946, r33945, MPFR_RNDN);
        mpfr_sqr(r33947, r33946, MPFR_RNDN);
        mpfr_sub(r33948, r33922, r33947, MPFR_RNDN);
        mpfr_div(r33949, r33936, r33928, MPFR_RNDN);
        mpfr_div(r33950, r33949, r33929, MPFR_RNDN);
        mpfr_mul(r33951, r33948, r33950, MPFR_RNDN);
        mpfr_div(r33952, r33935, r33951, MPFR_RNDN);
        mpfr_add(r33953, r33919, r33922, MPFR_RNDN);
        mpfr_add(r33954, r33923, r33923, MPFR_RNDN);
        mpfr_div(r33955, r33953, r33954, MPFR_RNDN);
        mpfr_div(r33956, r33929, r33919, MPFR_RNDN);
        mpfr_sub(r33957, r33955, r33956, MPFR_RNDN);
        if (mpfr_get_si(r33941, MPFR_RNDN)) { mpfr_set(r33958, r33952, MPFR_RNDN); } else { mpfr_set(r33958, r33957, MPFR_RNDN); };
        if (mpfr_get_si(r33926, MPFR_RNDN)) { mpfr_set(r33959, r33939, MPFR_RNDN); } else { mpfr_set(r33959, r33958, MPFR_RNDN); };
        if (mpfr_get_si(r33921, MPFR_RNDN)) { mpfr_set(r33960, r33924, MPFR_RNDN); } else { mpfr_set(r33960, r33959, MPFR_RNDN); };
        return mpfr_get_d(r33960, MPFR_RNDN);
}

