#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 r24781 = x;
        float r24782 = 4;
        float r24783 = r24781 + r24782;
        float r24784 = y;
        float r24785 = r24783 / r24784;
        float r24786 = r24781 / r24784;
        float r24787 = z;
        float r24788 = r24786 * r24787;
        float r24789 = r24785 - r24788;
        float r24790 = fabs(r24789);
        return r24790;
}

double f_id(double x, double y, double z) {
        double r24791 = x;
        double r24792 = 4;
        double r24793 = r24791 + r24792;
        double r24794 = y;
        double r24795 = r24793 / r24794;
        double r24796 = r24791 / r24794;
        double r24797 = z;
        double r24798 = r24796 * r24797;
        double r24799 = r24795 - r24798;
        double r24800 = fabs(r24799);
        return r24800;
}


double f_of(float x, float y, float z) {
        float r24801 = x;
        float r24802 = 4;
        float r24803 = r24801 + r24802;
        float r24804 = z;
        float r24805 = r24801 * r24804;
        float r24806 = r24803 - r24805;
        float r24807 = -9.691416588521538e+289;
        bool r24808 = r24806 <= r24807;
        float r24809 = y;
        float r24810 = r24803 / r24809;
        float r24811 = r24804 / r24809;
        float r24812 = r24801 * r24811;
        float r24813 = r24810 - r24812;
        float r24814 = fabs(r24813);
        float r24815 = 3.1412149248979447e+273;
        bool r24816 = r24806 <= r24815;
        float r24817 = r24806 / r24809;
        float r24818 = fabs(r24817);
        float r24819 = 1;
        float r24820 = r24819 / r24809;
        float r24821 = r24803 * r24820;
        float r24822 = r24801 / r24809;
        float r24823 = r24822 * r24804;
        float r24824 = r24821 - r24823;
        float r24825 = fabs(r24824);
        float r24826 = r24816 ? r24818 : r24825;
        float r24827 = r24808 ? r24814 : r24826;
        return r24827;
}

double f_od(double x, double y, double z) {
        double r24828 = x;
        double r24829 = 4;
        double r24830 = r24828 + r24829;
        double r24831 = z;
        double r24832 = r24828 * r24831;
        double r24833 = r24830 - r24832;
        double r24834 = -9.691416588521538e+289;
        bool r24835 = r24833 <= r24834;
        double r24836 = y;
        double r24837 = r24830 / r24836;
        double r24838 = r24831 / r24836;
        double r24839 = r24828 * r24838;
        double r24840 = r24837 - r24839;
        double r24841 = fabs(r24840);
        double r24842 = 3.1412149248979447e+273;
        bool r24843 = r24833 <= r24842;
        double r24844 = r24833 / r24836;
        double r24845 = fabs(r24844);
        double r24846 = 1;
        double r24847 = r24846 / r24836;
        double r24848 = r24830 * r24847;
        double r24849 = r24828 / r24836;
        double r24850 = r24849 * r24831;
        double r24851 = r24848 - r24850;
        double r24852 = fabs(r24851);
        double r24853 = r24843 ? r24845 : r24852;
        double r24854 = r24835 ? r24841 : r24853;
        return r24854;
}

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 r24855, r24856, r24857, r24858, r24859, r24860, r24861, r24862, r24863, r24864;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r24855);
        mpfr_init_set_str(r24856, "4", 10, MPFR_RNDN);
        mpfr_init(r24857);
        mpfr_init(r24858);
        mpfr_init(r24859);
        mpfr_init(r24860);
        mpfr_init(r24861);
        mpfr_init(r24862);
        mpfr_init(r24863);
        mpfr_init(r24864);
}

double f_im(double x, double y, double z) {
        mpfr_set_d(r24855, x, MPFR_RNDN);
        ;
        mpfr_add(r24857, r24855, r24856, MPFR_RNDN);
        mpfr_set_d(r24858, y, MPFR_RNDN);
        mpfr_div(r24859, r24857, r24858, MPFR_RNDN);
        mpfr_div(r24860, r24855, r24858, MPFR_RNDN);
        mpfr_set_d(r24861, z, MPFR_RNDN);
        mpfr_mul(r24862, r24860, r24861, MPFR_RNDN);
        mpfr_sub(r24863, r24859, r24862, MPFR_RNDN);
        mpfr_abs(r24864, r24863, MPFR_RNDN);
        return mpfr_get_d(r24864, MPFR_RNDN);
}

static mpfr_t r24865, r24866, r24867, r24868, r24869, r24870, r24871, r24872, r24873, r24874, r24875, r24876, r24877, r24878, r24879, r24880, r24881, r24882, r24883, r24884, r24885, r24886, r24887, r24888, r24889, r24890, r24891;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init(r24865);
        mpfr_init_set_str(r24866, "4", 10, MPFR_RNDN);
        mpfr_init(r24867);
        mpfr_init(r24868);
        mpfr_init(r24869);
        mpfr_init(r24870);
        mpfr_init_set_str(r24871, "-9.691416588521538e+289", 10, MPFR_RNDN);
        mpfr_init(r24872);
        mpfr_init(r24873);
        mpfr_init(r24874);
        mpfr_init(r24875);
        mpfr_init(r24876);
        mpfr_init(r24877);
        mpfr_init(r24878);
        mpfr_init_set_str(r24879, "3.1412149248979447e+273", 10, MPFR_RNDN);
        mpfr_init(r24880);
        mpfr_init(r24881);
        mpfr_init(r24882);
        mpfr_init_set_str(r24883, "1", 10, MPFR_RNDN);
        mpfr_init(r24884);
        mpfr_init(r24885);
        mpfr_init(r24886);
        mpfr_init(r24887);
        mpfr_init(r24888);
        mpfr_init(r24889);
        mpfr_init(r24890);
        mpfr_init(r24891);
}

double f_fm(double x, double y, double z) {
        mpfr_set_d(r24865, x, MPFR_RNDN);
        ;
        mpfr_add(r24867, r24865, r24866, MPFR_RNDN);
        mpfr_set_d(r24868, z, MPFR_RNDN);
        mpfr_mul(r24869, r24865, r24868, MPFR_RNDN);
        mpfr_sub(r24870, r24867, r24869, MPFR_RNDN);
        ;
        mpfr_set_si(r24872, mpfr_cmp(r24870, r24871) <= 0, MPFR_RNDN);
        mpfr_set_d(r24873, y, MPFR_RNDN);
        mpfr_div(r24874, r24867, r24873, MPFR_RNDN);
        mpfr_div(r24875, r24868, r24873, MPFR_RNDN);
        mpfr_mul(r24876, r24865, r24875, MPFR_RNDN);
        mpfr_sub(r24877, r24874, r24876, MPFR_RNDN);
        mpfr_abs(r24878, r24877, MPFR_RNDN);
        ;
        mpfr_set_si(r24880, mpfr_cmp(r24870, r24879) <= 0, MPFR_RNDN);
        mpfr_div(r24881, r24870, r24873, MPFR_RNDN);
        mpfr_abs(r24882, r24881, MPFR_RNDN);
        ;
        mpfr_div(r24884, r24883, r24873, MPFR_RNDN);
        mpfr_mul(r24885, r24867, r24884, MPFR_RNDN);
        mpfr_div(r24886, r24865, r24873, MPFR_RNDN);
        mpfr_mul(r24887, r24886, r24868, MPFR_RNDN);
        mpfr_sub(r24888, r24885, r24887, MPFR_RNDN);
        mpfr_abs(r24889, r24888, MPFR_RNDN);
        if (mpfr_get_si(r24880, MPFR_RNDN)) { mpfr_set(r24890, r24882, MPFR_RNDN); } else { mpfr_set(r24890, r24889, MPFR_RNDN); };
        if (mpfr_get_si(r24872, MPFR_RNDN)) { mpfr_set(r24891, r24878, MPFR_RNDN); } else { mpfr_set(r24891, r24890, MPFR_RNDN); };
        return mpfr_get_d(r24891, MPFR_RNDN);
}

static mpfr_t r24892, r24893, r24894, r24895, r24896, r24897, r24898, r24899, r24900, r24901, r24902, r24903, r24904, r24905, r24906, r24907, r24908, r24909, r24910, r24911, r24912, r24913, r24914, r24915, r24916, r24917, r24918;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r24892);
        mpfr_init_set_str(r24893, "4", 10, MPFR_RNDN);
        mpfr_init(r24894);
        mpfr_init(r24895);
        mpfr_init(r24896);
        mpfr_init(r24897);
        mpfr_init_set_str(r24898, "-9.691416588521538e+289", 10, MPFR_RNDN);
        mpfr_init(r24899);
        mpfr_init(r24900);
        mpfr_init(r24901);
        mpfr_init(r24902);
        mpfr_init(r24903);
        mpfr_init(r24904);
        mpfr_init(r24905);
        mpfr_init_set_str(r24906, "3.1412149248979447e+273", 10, MPFR_RNDN);
        mpfr_init(r24907);
        mpfr_init(r24908);
        mpfr_init(r24909);
        mpfr_init_set_str(r24910, "1", 10, MPFR_RNDN);
        mpfr_init(r24911);
        mpfr_init(r24912);
        mpfr_init(r24913);
        mpfr_init(r24914);
        mpfr_init(r24915);
        mpfr_init(r24916);
        mpfr_init(r24917);
        mpfr_init(r24918);
}

double f_dm(double x, double y, double z) {
        mpfr_set_d(r24892, x, MPFR_RNDN);
        ;
        mpfr_add(r24894, r24892, r24893, MPFR_RNDN);
        mpfr_set_d(r24895, z, MPFR_RNDN);
        mpfr_mul(r24896, r24892, r24895, MPFR_RNDN);
        mpfr_sub(r24897, r24894, r24896, MPFR_RNDN);
        ;
        mpfr_set_si(r24899, mpfr_cmp(r24897, r24898) <= 0, MPFR_RNDN);
        mpfr_set_d(r24900, y, MPFR_RNDN);
        mpfr_div(r24901, r24894, r24900, MPFR_RNDN);
        mpfr_div(r24902, r24895, r24900, MPFR_RNDN);
        mpfr_mul(r24903, r24892, r24902, MPFR_RNDN);
        mpfr_sub(r24904, r24901, r24903, MPFR_RNDN);
        mpfr_abs(r24905, r24904, MPFR_RNDN);
        ;
        mpfr_set_si(r24907, mpfr_cmp(r24897, r24906) <= 0, MPFR_RNDN);
        mpfr_div(r24908, r24897, r24900, MPFR_RNDN);
        mpfr_abs(r24909, r24908, MPFR_RNDN);
        ;
        mpfr_div(r24911, r24910, r24900, MPFR_RNDN);
        mpfr_mul(r24912, r24894, r24911, MPFR_RNDN);
        mpfr_div(r24913, r24892, r24900, MPFR_RNDN);
        mpfr_mul(r24914, r24913, r24895, MPFR_RNDN);
        mpfr_sub(r24915, r24912, r24914, MPFR_RNDN);
        mpfr_abs(r24916, r24915, MPFR_RNDN);
        if (mpfr_get_si(r24907, MPFR_RNDN)) { mpfr_set(r24917, r24909, MPFR_RNDN); } else { mpfr_set(r24917, r24916, MPFR_RNDN); };
        if (mpfr_get_si(r24899, MPFR_RNDN)) { mpfr_set(r24918, r24905, MPFR_RNDN); } else { mpfr_set(r24918, r24917, MPFR_RNDN); };
        return mpfr_get_d(r24918, MPFR_RNDN);
}

