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

char *name = "fabs fraction 1";

double f_if(float x, float y, float z) {
        float r8721 = x;
        float r8722 = 4;
        float r8723 = r8721 + r8722;
        float r8724 = y;
        float r8725 = r8723 / r8724;
        float r8726 = r8721 / r8724;
        float r8727 = z;
        float r8728 = r8726 * r8727;
        float r8729 = r8725 - r8728;
        float r8730 = fabs(r8729);
        return r8730;
}

double f_id(double x, double y, double z) {
        double r8731 = x;
        double r8732 = 4;
        double r8733 = r8731 + r8732;
        double r8734 = y;
        double r8735 = r8733 / r8734;
        double r8736 = r8731 / r8734;
        double r8737 = z;
        double r8738 = r8736 * r8737;
        double r8739 = r8735 - r8738;
        double r8740 = fabs(r8739);
        return r8740;
}


double f_of(float x, float y, float z) {
        float r8741 = 4;
        float r8742 = x;
        float r8743 = r8741 + r8742;
        float r8744 = z;
        float r8745 = r8744 * r8742;
        float r8746 = r8743 - r8745;
        float r8747 = -5.6393187622857715e+187;
        bool r8748 = r8746 <= r8747;
        float r8749 = r8742 + r8741;
        float r8750 = y;
        float r8751 = r8749 / r8750;
        float r8752 = r8744 / r8750;
        float r8753 = r8742 * r8752;
        float r8754 = r8751 - r8753;
        float r8755 = fabs(r8754);
        float r8756 = 1.2848827157438108e+278;
        bool r8757 = r8746 <= r8756;
        float r8758 = r8742 * r8744;
        float r8759 = r8758 / r8750;
        float r8760 = r8751 - r8759;
        float r8761 = fabs(r8760);
        float r8762 = 1;
        float r8763 = r8762 / r8750;
        float r8764 = r8749 * r8763;
        float r8765 = r8742 / r8750;
        float r8766 = r8765 * r8744;
        float r8767 = r8764 - r8766;
        float r8768 = fabs(r8767);
        float r8769 = r8757 ? r8761 : r8768;
        float r8770 = r8748 ? r8755 : r8769;
        return r8770;
}

double f_od(double x, double y, double z) {
        double r8771 = 4;
        double r8772 = x;
        double r8773 = r8771 + r8772;
        double r8774 = z;
        double r8775 = r8774 * r8772;
        double r8776 = r8773 - r8775;
        double r8777 = -5.6393187622857715e+187;
        bool r8778 = r8776 <= r8777;
        double r8779 = r8772 + r8771;
        double r8780 = y;
        double r8781 = r8779 / r8780;
        double r8782 = r8774 / r8780;
        double r8783 = r8772 * r8782;
        double r8784 = r8781 - r8783;
        double r8785 = fabs(r8784);
        double r8786 = 1.2848827157438108e+278;
        bool r8787 = r8776 <= r8786;
        double r8788 = r8772 * r8774;
        double r8789 = r8788 / r8780;
        double r8790 = r8781 - r8789;
        double r8791 = fabs(r8790);
        double r8792 = 1;
        double r8793 = r8792 / r8780;
        double r8794 = r8779 * r8793;
        double r8795 = r8772 / r8780;
        double r8796 = r8795 * r8774;
        double r8797 = r8794 - r8796;
        double r8798 = fabs(r8797);
        double r8799 = r8787 ? r8791 : r8798;
        double r8800 = r8778 ? r8785 : r8799;
        return r8800;
}

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 r8801, r8802, r8803, r8804, r8805, r8806, r8807, r8808, r8809, r8810;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r8801);
        mpfr_init_set_str(r8802, "4", 10, MPFR_RNDN);
        mpfr_init(r8803);
        mpfr_init(r8804);
        mpfr_init(r8805);
        mpfr_init(r8806);
        mpfr_init(r8807);
        mpfr_init(r8808);
        mpfr_init(r8809);
        mpfr_init(r8810);
}

double f_im(double x, double y, double z) {
        mpfr_set_d(r8801, x, MPFR_RNDN);
        ;
        mpfr_add(r8803, r8801, r8802, MPFR_RNDN);
        mpfr_set_d(r8804, y, MPFR_RNDN);
        mpfr_div(r8805, r8803, r8804, MPFR_RNDN);
        mpfr_div(r8806, r8801, r8804, MPFR_RNDN);
        mpfr_set_d(r8807, z, MPFR_RNDN);
        mpfr_mul(r8808, r8806, r8807, MPFR_RNDN);
        mpfr_sub(r8809, r8805, r8808, MPFR_RNDN);
        mpfr_abs(r8810, r8809, MPFR_RNDN);
        return mpfr_get_d(r8810, MPFR_RNDN);
}

static mpfr_t r8811, r8812, r8813, r8814, r8815, r8816, r8817, r8818, r8819, r8820, r8821, r8822, r8823, r8824, r8825, r8826, r8827, r8828, r8829, r8830, r8831, r8832, r8833, r8834, r8835, r8836, r8837, r8838, r8839, r8840;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r8811, "4", 10, MPFR_RNDN);
        mpfr_init(r8812);
        mpfr_init(r8813);
        mpfr_init(r8814);
        mpfr_init(r8815);
        mpfr_init(r8816);
        mpfr_init_set_str(r8817, "-5.6393187622857715e+187", 10, MPFR_RNDN);
        mpfr_init(r8818);
        mpfr_init(r8819);
        mpfr_init(r8820);
        mpfr_init(r8821);
        mpfr_init(r8822);
        mpfr_init(r8823);
        mpfr_init(r8824);
        mpfr_init(r8825);
        mpfr_init_set_str(r8826, "1.2848827157438108e+278", 10, MPFR_RNDN);
        mpfr_init(r8827);
        mpfr_init(r8828);
        mpfr_init(r8829);
        mpfr_init(r8830);
        mpfr_init(r8831);
        mpfr_init_set_str(r8832, "1", 10, MPFR_RNDN);
        mpfr_init(r8833);
        mpfr_init(r8834);
        mpfr_init(r8835);
        mpfr_init(r8836);
        mpfr_init(r8837);
        mpfr_init(r8838);
        mpfr_init(r8839);
        mpfr_init(r8840);
}

double f_fm(double x, double y, double z) {
        ;
        mpfr_set_d(r8812, x, MPFR_RNDN);
        mpfr_add(r8813, r8811, r8812, MPFR_RNDN);
        mpfr_set_d(r8814, z, MPFR_RNDN);
        mpfr_mul(r8815, r8814, r8812, MPFR_RNDN);
        mpfr_sub(r8816, r8813, r8815, MPFR_RNDN);
        ;
        mpfr_set_si(r8818, mpfr_cmp(r8816, r8817) <= 0, MPFR_RNDN);
        mpfr_add(r8819, r8812, r8811, MPFR_RNDN);
        mpfr_set_d(r8820, y, MPFR_RNDN);
        mpfr_div(r8821, r8819, r8820, MPFR_RNDN);
        mpfr_div(r8822, r8814, r8820, MPFR_RNDN);
        mpfr_mul(r8823, r8812, r8822, MPFR_RNDN);
        mpfr_sub(r8824, r8821, r8823, MPFR_RNDN);
        mpfr_abs(r8825, r8824, MPFR_RNDN);
        ;
        mpfr_set_si(r8827, mpfr_cmp(r8816, r8826) <= 0, MPFR_RNDN);
        mpfr_mul(r8828, r8812, r8814, MPFR_RNDN);
        mpfr_div(r8829, r8828, r8820, MPFR_RNDN);
        mpfr_sub(r8830, r8821, r8829, MPFR_RNDN);
        mpfr_abs(r8831, r8830, MPFR_RNDN);
        ;
        mpfr_div(r8833, r8832, r8820, MPFR_RNDN);
        mpfr_mul(r8834, r8819, r8833, MPFR_RNDN);
        mpfr_div(r8835, r8812, r8820, MPFR_RNDN);
        mpfr_mul(r8836, r8835, r8814, MPFR_RNDN);
        mpfr_sub(r8837, r8834, r8836, MPFR_RNDN);
        mpfr_abs(r8838, r8837, MPFR_RNDN);
        if (mpfr_get_si(r8827, MPFR_RNDN)) { mpfr_set(r8839, r8831, MPFR_RNDN); } else { mpfr_set(r8839, r8838, MPFR_RNDN); };
        if (mpfr_get_si(r8818, MPFR_RNDN)) { mpfr_set(r8840, r8825, MPFR_RNDN); } else { mpfr_set(r8840, r8839, MPFR_RNDN); };
        return mpfr_get_d(r8840, MPFR_RNDN);
}

static mpfr_t r8841, r8842, r8843, r8844, r8845, r8846, r8847, r8848, r8849, r8850, r8851, r8852, r8853, r8854, r8855, r8856, r8857, r8858, r8859, r8860, r8861, r8862, r8863, r8864, r8865, r8866, r8867, r8868, r8869, r8870;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r8841, "4", 10, MPFR_RNDN);
        mpfr_init(r8842);
        mpfr_init(r8843);
        mpfr_init(r8844);
        mpfr_init(r8845);
        mpfr_init(r8846);
        mpfr_init_set_str(r8847, "-5.6393187622857715e+187", 10, MPFR_RNDN);
        mpfr_init(r8848);
        mpfr_init(r8849);
        mpfr_init(r8850);
        mpfr_init(r8851);
        mpfr_init(r8852);
        mpfr_init(r8853);
        mpfr_init(r8854);
        mpfr_init(r8855);
        mpfr_init_set_str(r8856, "1.2848827157438108e+278", 10, MPFR_RNDN);
        mpfr_init(r8857);
        mpfr_init(r8858);
        mpfr_init(r8859);
        mpfr_init(r8860);
        mpfr_init(r8861);
        mpfr_init_set_str(r8862, "1", 10, MPFR_RNDN);
        mpfr_init(r8863);
        mpfr_init(r8864);
        mpfr_init(r8865);
        mpfr_init(r8866);
        mpfr_init(r8867);
        mpfr_init(r8868);
        mpfr_init(r8869);
        mpfr_init(r8870);
}

double f_dm(double x, double y, double z) {
        ;
        mpfr_set_d(r8842, x, MPFR_RNDN);
        mpfr_add(r8843, r8841, r8842, MPFR_RNDN);
        mpfr_set_d(r8844, z, MPFR_RNDN);
        mpfr_mul(r8845, r8844, r8842, MPFR_RNDN);
        mpfr_sub(r8846, r8843, r8845, MPFR_RNDN);
        ;
        mpfr_set_si(r8848, mpfr_cmp(r8846, r8847) <= 0, MPFR_RNDN);
        mpfr_add(r8849, r8842, r8841, MPFR_RNDN);
        mpfr_set_d(r8850, y, MPFR_RNDN);
        mpfr_div(r8851, r8849, r8850, MPFR_RNDN);
        mpfr_div(r8852, r8844, r8850, MPFR_RNDN);
        mpfr_mul(r8853, r8842, r8852, MPFR_RNDN);
        mpfr_sub(r8854, r8851, r8853, MPFR_RNDN);
        mpfr_abs(r8855, r8854, MPFR_RNDN);
        ;
        mpfr_set_si(r8857, mpfr_cmp(r8846, r8856) <= 0, MPFR_RNDN);
        mpfr_mul(r8858, r8842, r8844, MPFR_RNDN);
        mpfr_div(r8859, r8858, r8850, MPFR_RNDN);
        mpfr_sub(r8860, r8851, r8859, MPFR_RNDN);
        mpfr_abs(r8861, r8860, MPFR_RNDN);
        ;
        mpfr_div(r8863, r8862, r8850, MPFR_RNDN);
        mpfr_mul(r8864, r8849, r8863, MPFR_RNDN);
        mpfr_div(r8865, r8842, r8850, MPFR_RNDN);
        mpfr_mul(r8866, r8865, r8844, MPFR_RNDN);
        mpfr_sub(r8867, r8864, r8866, MPFR_RNDN);
        mpfr_abs(r8868, r8867, MPFR_RNDN);
        if (mpfr_get_si(r8857, MPFR_RNDN)) { mpfr_set(r8869, r8861, MPFR_RNDN); } else { mpfr_set(r8869, r8868, MPFR_RNDN); };
        if (mpfr_get_si(r8848, MPFR_RNDN)) { mpfr_set(r8870, r8855, MPFR_RNDN); } else { mpfr_set(r8870, r8869, MPFR_RNDN); };
        return mpfr_get_d(r8870, MPFR_RNDN);
}

