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

char *name = "Expression, p6";

double f_if(float a, float b, float c, float d) {
        float r9846 = a;
        float r9847 = b;
        float r9848 = c;
        float r9849 = d;
        float r9850 = r9848 + r9849;
        float r9851 = r9847 + r9850;
        float r9852 = r9846 + r9851;
        float r9853 = 2;
        float r9854 = r9852 * r9853;
        return r9854;
}

double f_id(double a, double b, double c, double d) {
        double r9855 = a;
        double r9856 = b;
        double r9857 = c;
        double r9858 = d;
        double r9859 = r9857 + r9858;
        double r9860 = r9856 + r9859;
        double r9861 = r9855 + r9860;
        double r9862 = 2;
        double r9863 = r9861 * r9862;
        return r9863;
}


double f_of(float a, float b, float c, float d) {
        float r9864 = 1;
        float r9865 = cbrt(r9864);
        float r9866 = c;
        float r9867 = b;
        float r9868 = r9866 + r9867;
        float r9869 = a;
        float r9870 = d;
        float r9871 = r9869 + r9870;
        float r9872 = r9868 + r9871;
        float r9873 = r9865 * r9872;
        float r9874 = 2;
        float r9875 = r9873 * r9874;
        return r9875;
}

double f_od(double a, double b, double c, double d) {
        double r9876 = 1;
        double r9877 = cbrt(r9876);
        double r9878 = c;
        double r9879 = b;
        double r9880 = r9878 + r9879;
        double r9881 = a;
        double r9882 = d;
        double r9883 = r9881 + r9882;
        double r9884 = r9880 + r9883;
        double r9885 = r9877 * r9884;
        double r9886 = 2;
        double r9887 = r9885 * r9886;
        return r9887;
}

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 r9888, r9889, r9890, r9891, r9892, r9893, r9894, r9895, r9896;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(336);
        mpfr_init(r9888);
        mpfr_init(r9889);
        mpfr_init(r9890);
        mpfr_init(r9891);
        mpfr_init(r9892);
        mpfr_init(r9893);
        mpfr_init(r9894);
        mpfr_init_set_str(r9895, "2", 10, MPFR_RNDN);
        mpfr_init(r9896);
}

double f_im(double a, double b, double c, double d) {
        mpfr_set_d(r9888, a, MPFR_RNDN);
        mpfr_set_d(r9889, b, MPFR_RNDN);
        mpfr_set_d(r9890, c, MPFR_RNDN);
        mpfr_set_d(r9891, d, MPFR_RNDN);
        mpfr_add(r9892, r9890, r9891, MPFR_RNDN);
        mpfr_add(r9893, r9889, r9892, MPFR_RNDN);
        mpfr_add(r9894, r9888, r9893, MPFR_RNDN);
        ;
        mpfr_mul(r9896, r9894, r9895, MPFR_RNDN);
        return mpfr_get_d(r9896, MPFR_RNDN);
}

static mpfr_t r9897, r9898, r9899, r9900, r9901, r9902, r9903, r9904, r9905, r9906, r9907, r9908;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(336);
        mpfr_init_set_str(r9897, "1", 10, MPFR_RNDN);
        mpfr_init(r9898);
        mpfr_init(r9899);
        mpfr_init(r9900);
        mpfr_init(r9901);
        mpfr_init(r9902);
        mpfr_init(r9903);
        mpfr_init(r9904);
        mpfr_init(r9905);
        mpfr_init(r9906);
        mpfr_init_set_str(r9907, "2", 10, MPFR_RNDN);
        mpfr_init(r9908);
}

double f_fm(double a, double b, double c, double d) {
        ;
        mpfr_cbrt(r9898, r9897, MPFR_RNDN);
        mpfr_set_d(r9899, c, MPFR_RNDN);
        mpfr_set_d(r9900, b, MPFR_RNDN);
        mpfr_add(r9901, r9899, r9900, MPFR_RNDN);
        mpfr_set_d(r9902, a, MPFR_RNDN);
        mpfr_set_d(r9903, d, MPFR_RNDN);
        mpfr_add(r9904, r9902, r9903, MPFR_RNDN);
        mpfr_add(r9905, r9901, r9904, MPFR_RNDN);
        mpfr_mul(r9906, r9898, r9905, MPFR_RNDN);
        ;
        mpfr_mul(r9908, r9906, r9907, MPFR_RNDN);
        return mpfr_get_d(r9908, MPFR_RNDN);
}

static mpfr_t r9909, r9910, r9911, r9912, r9913, r9914, r9915, r9916, r9917, r9918, r9919, r9920;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(336);
        mpfr_init_set_str(r9909, "1", 10, MPFR_RNDN);
        mpfr_init(r9910);
        mpfr_init(r9911);
        mpfr_init(r9912);
        mpfr_init(r9913);
        mpfr_init(r9914);
        mpfr_init(r9915);
        mpfr_init(r9916);
        mpfr_init(r9917);
        mpfr_init(r9918);
        mpfr_init_set_str(r9919, "2", 10, MPFR_RNDN);
        mpfr_init(r9920);
}

double f_dm(double a, double b, double c, double d) {
        ;
        mpfr_cbrt(r9910, r9909, MPFR_RNDN);
        mpfr_set_d(r9911, c, MPFR_RNDN);
        mpfr_set_d(r9912, b, MPFR_RNDN);
        mpfr_add(r9913, r9911, r9912, MPFR_RNDN);
        mpfr_set_d(r9914, a, MPFR_RNDN);
        mpfr_set_d(r9915, d, MPFR_RNDN);
        mpfr_add(r9916, r9914, r9915, MPFR_RNDN);
        mpfr_add(r9917, r9913, r9916, MPFR_RNDN);
        mpfr_mul(r9918, r9910, r9917, MPFR_RNDN);
        ;
        mpfr_mul(r9920, r9918, r9919, MPFR_RNDN);
        return mpfr_get_d(r9920, MPFR_RNDN);
}

