#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 r24657 = x;
        float r24658 = 4;
        float r24659 = r24657 + r24658;
        float r24660 = y;
        float r24661 = r24659 / r24660;
        float r24662 = r24657 / r24660;
        float r24663 = z;
        float r24664 = r24662 * r24663;
        float r24665 = r24661 - r24664;
        float r24666 = fabs(r24665);
        return r24666;
}

double f_id(double x, double y, double z) {
        double r24667 = x;
        double r24668 = 4;
        double r24669 = r24667 + r24668;
        double r24670 = y;
        double r24671 = r24669 / r24670;
        double r24672 = r24667 / r24670;
        double r24673 = z;
        double r24674 = r24672 * r24673;
        double r24675 = r24671 - r24674;
        double r24676 = fabs(r24675);
        return r24676;
}


double f_of(float x, float y, float z) {
        float r24677 = x;
        float r24678 = 4;
        float r24679 = r24677 + r24678;
        float r24680 = y;
        float r24681 = r24679 / r24680;
        float r24682 = r24677 / r24680;
        float r24683 = z;
        float r24684 = r24682 * r24683;
        float r24685 = r24681 - r24684;
        float r24686 = fabs(r24685);
        float r24687 = 14884601944.499592;
        bool r24688 = r24686 <= r24687;
        float r24689 = r24683 / r24680;
        float r24690 = r24677 * r24689;
        float r24691 = r24681 - r24690;
        float r24692 = fabs(r24691);
        float r24693 = -r24683;
        float r24694 = r24682 * r24693;
        float r24695 = r24678 / r24680;
        float r24696 = r24695 + r24682;
        float r24697 = cbrt(r24696);
        float r24698 = r24697 * r24697;
        float r24699 = r24698 * r24697;
        float r24700 = r24694 + r24699;
        float r24701 = fabs(r24700);
        float r24702 = r24688 ? r24692 : r24701;
        return r24702;
}

double f_od(double x, double y, double z) {
        double r24703 = x;
        double r24704 = 4;
        double r24705 = r24703 + r24704;
        double r24706 = y;
        double r24707 = r24705 / r24706;
        double r24708 = r24703 / r24706;
        double r24709 = z;
        double r24710 = r24708 * r24709;
        double r24711 = r24707 - r24710;
        double r24712 = fabs(r24711);
        double r24713 = 14884601944.499592;
        bool r24714 = r24712 <= r24713;
        double r24715 = r24709 / r24706;
        double r24716 = r24703 * r24715;
        double r24717 = r24707 - r24716;
        double r24718 = fabs(r24717);
        double r24719 = -r24709;
        double r24720 = r24708 * r24719;
        double r24721 = r24704 / r24706;
        double r24722 = r24721 + r24708;
        double r24723 = cbrt(r24722);
        double r24724 = r24723 * r24723;
        double r24725 = r24724 * r24723;
        double r24726 = r24720 + r24725;
        double r24727 = fabs(r24726);
        double r24728 = r24714 ? r24718 : r24727;
        return r24728;
}

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 r24729, r24730, r24731, r24732, r24733, r24734, r24735, r24736, r24737, r24738;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r24729);
        mpfr_init_set_str(r24730, "4", 10, MPFR_RNDN);
        mpfr_init(r24731);
        mpfr_init(r24732);
        mpfr_init(r24733);
        mpfr_init(r24734);
        mpfr_init(r24735);
        mpfr_init(r24736);
        mpfr_init(r24737);
        mpfr_init(r24738);
}

double f_im(double x, double y, double z) {
        mpfr_set_d(r24729, x, MPFR_RNDN);
        ;
        mpfr_add(r24731, r24729, r24730, MPFR_RNDN);
        mpfr_set_d(r24732, y, MPFR_RNDN);
        mpfr_div(r24733, r24731, r24732, MPFR_RNDN);
        mpfr_div(r24734, r24729, r24732, MPFR_RNDN);
        mpfr_set_d(r24735, z, MPFR_RNDN);
        mpfr_mul(r24736, r24734, r24735, MPFR_RNDN);
        mpfr_sub(r24737, r24733, r24736, MPFR_RNDN);
        mpfr_abs(r24738, r24737, MPFR_RNDN);
        return mpfr_get_d(r24738, MPFR_RNDN);
}

static mpfr_t r24739, r24740, r24741, r24742, r24743, r24744, r24745, r24746, r24747, r24748, r24749, r24750, r24751, r24752, r24753, r24754, r24755, r24756, r24757, r24758, r24759, r24760, r24761, r24762, r24763, r24764;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init(r24739);
        mpfr_init_set_str(r24740, "4", 10, MPFR_RNDN);
        mpfr_init(r24741);
        mpfr_init(r24742);
        mpfr_init(r24743);
        mpfr_init(r24744);
        mpfr_init(r24745);
        mpfr_init(r24746);
        mpfr_init(r24747);
        mpfr_init(r24748);
        mpfr_init_set_str(r24749, "14884601944.499592", 10, MPFR_RNDN);
        mpfr_init(r24750);
        mpfr_init(r24751);
        mpfr_init(r24752);
        mpfr_init(r24753);
        mpfr_init(r24754);
        mpfr_init(r24755);
        mpfr_init(r24756);
        mpfr_init(r24757);
        mpfr_init(r24758);
        mpfr_init(r24759);
        mpfr_init(r24760);
        mpfr_init(r24761);
        mpfr_init(r24762);
        mpfr_init(r24763);
        mpfr_init(r24764);
}

double f_fm(double x, double y, double z) {
        mpfr_set_d(r24739, x, MPFR_RNDN);
        ;
        mpfr_add(r24741, r24739, r24740, MPFR_RNDN);
        mpfr_set_d(r24742, y, MPFR_RNDN);
        mpfr_div(r24743, r24741, r24742, MPFR_RNDN);
        mpfr_div(r24744, r24739, r24742, MPFR_RNDN);
        mpfr_set_d(r24745, z, MPFR_RNDN);
        mpfr_mul(r24746, r24744, r24745, MPFR_RNDN);
        mpfr_sub(r24747, r24743, r24746, MPFR_RNDN);
        mpfr_abs(r24748, r24747, MPFR_RNDN);
        ;
        mpfr_set_si(r24750, mpfr_cmp(r24748, r24749) <= 0, MPFR_RNDN);
        mpfr_div(r24751, r24745, r24742, MPFR_RNDN);
        mpfr_mul(r24752, r24739, r24751, MPFR_RNDN);
        mpfr_sub(r24753, r24743, r24752, MPFR_RNDN);
        mpfr_abs(r24754, r24753, MPFR_RNDN);
        mpfr_neg(r24755, r24745, MPFR_RNDN);
        mpfr_mul(r24756, r24744, r24755, MPFR_RNDN);
        mpfr_div(r24757, r24740, r24742, MPFR_RNDN);
        mpfr_add(r24758, r24757, r24744, MPFR_RNDN);
        mpfr_cbrt(r24759, r24758, MPFR_RNDN);
        mpfr_mul(r24760, r24759, r24759, MPFR_RNDN);
        mpfr_mul(r24761, r24760, r24759, MPFR_RNDN);
        mpfr_add(r24762, r24756, r24761, MPFR_RNDN);
        mpfr_abs(r24763, r24762, MPFR_RNDN);
        if (mpfr_get_si(r24750, MPFR_RNDN)) { mpfr_set(r24764, r24754, MPFR_RNDN); } else { mpfr_set(r24764, r24763, MPFR_RNDN); };
        return mpfr_get_d(r24764, MPFR_RNDN);
}

static mpfr_t r24765, r24766, r24767, r24768, r24769, r24770, r24771, r24772, r24773, r24774, r24775, r24776, r24777, r24778, r24779, r24780, r24781, r24782, r24783, r24784, r24785, r24786, r24787, r24788, r24789, r24790;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r24765);
        mpfr_init_set_str(r24766, "4", 10, MPFR_RNDN);
        mpfr_init(r24767);
        mpfr_init(r24768);
        mpfr_init(r24769);
        mpfr_init(r24770);
        mpfr_init(r24771);
        mpfr_init(r24772);
        mpfr_init(r24773);
        mpfr_init(r24774);
        mpfr_init_set_str(r24775, "14884601944.499592", 10, MPFR_RNDN);
        mpfr_init(r24776);
        mpfr_init(r24777);
        mpfr_init(r24778);
        mpfr_init(r24779);
        mpfr_init(r24780);
        mpfr_init(r24781);
        mpfr_init(r24782);
        mpfr_init(r24783);
        mpfr_init(r24784);
        mpfr_init(r24785);
        mpfr_init(r24786);
        mpfr_init(r24787);
        mpfr_init(r24788);
        mpfr_init(r24789);
        mpfr_init(r24790);
}

double f_dm(double x, double y, double z) {
        mpfr_set_d(r24765, x, MPFR_RNDN);
        ;
        mpfr_add(r24767, r24765, r24766, MPFR_RNDN);
        mpfr_set_d(r24768, y, MPFR_RNDN);
        mpfr_div(r24769, r24767, r24768, MPFR_RNDN);
        mpfr_div(r24770, r24765, r24768, MPFR_RNDN);
        mpfr_set_d(r24771, z, MPFR_RNDN);
        mpfr_mul(r24772, r24770, r24771, MPFR_RNDN);
        mpfr_sub(r24773, r24769, r24772, MPFR_RNDN);
        mpfr_abs(r24774, r24773, MPFR_RNDN);
        ;
        mpfr_set_si(r24776, mpfr_cmp(r24774, r24775) <= 0, MPFR_RNDN);
        mpfr_div(r24777, r24771, r24768, MPFR_RNDN);
        mpfr_mul(r24778, r24765, r24777, MPFR_RNDN);
        mpfr_sub(r24779, r24769, r24778, MPFR_RNDN);
        mpfr_abs(r24780, r24779, MPFR_RNDN);
        mpfr_neg(r24781, r24771, MPFR_RNDN);
        mpfr_mul(r24782, r24770, r24781, MPFR_RNDN);
        mpfr_div(r24783, r24766, r24768, MPFR_RNDN);
        mpfr_add(r24784, r24783, r24770, MPFR_RNDN);
        mpfr_cbrt(r24785, r24784, MPFR_RNDN);
        mpfr_mul(r24786, r24785, r24785, MPFR_RNDN);
        mpfr_mul(r24787, r24786, r24785, MPFR_RNDN);
        mpfr_add(r24788, r24782, r24787, MPFR_RNDN);
        mpfr_abs(r24789, r24788, MPFR_RNDN);
        if (mpfr_get_si(r24776, MPFR_RNDN)) { mpfr_set(r24790, r24780, MPFR_RNDN); } else { mpfr_set(r24790, r24789, MPFR_RNDN); };
        return mpfr_get_d(r24790, MPFR_RNDN);
}

