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

char *name = "3.9.2 imaginary part (p56)";

double f_if() {
        float r8869 = 1;
        float r8870 = -r8869;
        float r8871 = 2;
        float r8872 = r8870 / r8871;
        float r8873 = 3;
        float r8874 = sqrt(r8873);
        float r8875 = r8874 / r8871;
        float r8876 = /* ERROR: no complex support in C */;
        float r8877 = r8876 * r8876;
        float r8878 = r8877 * r8876;
        float r8879 = r8878 * r8876;
        float r8880 = -r8871;
        float r8881 = 0;
        float r8882 = /* ERROR: no complex support in C */;
        float r8883 = r8882 * r8876;
        float r8884 = r8883 * r8876;
        float r8885 = r8884 * r8876;
        float r8886 = r8879 + r8885;
        float r8887 = 5;
        float r8888 = /* ERROR: no complex support in C */;
        float r8889 = r8888 * r8876;
        float r8890 = r8889 * r8876;
        float r8891 = r8886 + r8890;
        float r8892 = 4;
        float r8893 = /* ERROR: no complex support in C */;
        float r8894 = r8893 * r8876;
        float r8895 = r8891 + r8894;
        float r8896 = 7;
        float r8897 = /* ERROR: no complex support in C */;
        float r8898 = r8895 + r8897;
        float r8899 = /* ERROR: no complex support in C */;
        return r8899;
}

double f_id() {
        double r8900 = 1;
        double r8901 = -r8900;
        double r8902 = 2;
        double r8903 = r8901 / r8902;
        double r8904 = 3;
        double r8905 = sqrt(r8904);
        double r8906 = r8905 / r8902;
        double r8907 = /* ERROR: no complex support in C */;
        double r8908 = r8907 * r8907;
        double r8909 = r8908 * r8907;
        double r8910 = r8909 * r8907;
        double r8911 = -r8902;
        double r8912 = 0;
        double r8913 = /* ERROR: no complex support in C */;
        double r8914 = r8913 * r8907;
        double r8915 = r8914 * r8907;
        double r8916 = r8915 * r8907;
        double r8917 = r8910 + r8916;
        double r8918 = 5;
        double r8919 = /* ERROR: no complex support in C */;
        double r8920 = r8919 * r8907;
        double r8921 = r8920 * r8907;
        double r8922 = r8917 + r8921;
        double r8923 = 4;
        double r8924 = /* ERROR: no complex support in C */;
        double r8925 = r8924 * r8907;
        double r8926 = r8922 + r8925;
        double r8927 = 7;
        double r8928 = /* ERROR: no complex support in C */;
        double r8929 = r8926 + r8928;
        double r8930 = /* ERROR: no complex support in C */;
        return r8930;
}


double f_of() {
        float r8931 = 1;
        float r8932 = -r8931;
        float r8933 = 2;
        float r8934 = r8932 / r8933;
        float r8935 = 3;
        float r8936 = sqrt(r8935);
        float r8937 = r8936 / r8933;
        float r8938 = /* ERROR: no complex support in C */;
        float r8939 = r8938 * r8938;
        float r8940 = r8939 * r8938;
        float r8941 = r8940 * r8938;
        float r8942 = -r8933;
        float r8943 = 0;
        float r8944 = /* ERROR: no complex support in C */;
        float r8945 = r8944 * r8938;
        float r8946 = r8945 * r8938;
        float r8947 = r8946 * r8938;
        float r8948 = r8941 + r8947;
        float r8949 = 5;
        float r8950 = /* ERROR: no complex support in C */;
        float r8951 = r8950 * r8938;
        float r8952 = r8951 * r8938;
        float r8953 = r8948 + r8952;
        float r8954 = 4;
        float r8955 = /* ERROR: no complex support in C */;
        float r8956 = r8955 * r8938;
        float r8957 = r8953 + r8956;
        float r8958 = 7;
        float r8959 = /* ERROR: no complex support in C */;
        float r8960 = r8957 + r8959;
        float r8961 = /* ERROR: no complex support in C */;
        return r8961;
}

double f_od() {
        double r8962 = 1;
        double r8963 = -r8962;
        double r8964 = 2;
        double r8965 = r8963 / r8964;
        double r8966 = 3;
        double r8967 = sqrt(r8966);
        double r8968 = r8967 / r8964;
        double r8969 = /* ERROR: no complex support in C */;
        double r8970 = r8969 * r8969;
        double r8971 = r8970 * r8969;
        double r8972 = r8971 * r8969;
        double r8973 = -r8964;
        double r8974 = 0;
        double r8975 = /* ERROR: no complex support in C */;
        double r8976 = r8975 * r8969;
        double r8977 = r8976 * r8969;
        double r8978 = r8977 * r8969;
        double r8979 = r8972 + r8978;
        double r8980 = 5;
        double r8981 = /* ERROR: no complex support in C */;
        double r8982 = r8981 * r8969;
        double r8983 = r8982 * r8969;
        double r8984 = r8979 + r8983;
        double r8985 = 4;
        double r8986 = /* ERROR: no complex support in C */;
        double r8987 = r8986 * r8969;
        double r8988 = r8984 + r8987;
        double r8989 = 7;
        double r8990 = /* ERROR: no complex support in C */;
        double r8991 = r8988 + r8990;
        double r8992 = /* ERROR: no complex support in C */;
        return r8992;
}

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 r8993, r8994, r8995, r8996, r8997, r8998, r8999, r9000, r9001, r9002, r9003, r9004, r9005, r9006, r9007, r9008, r9009, r9010, r9011, r9012, r9013, r9014, r9015, r9016, r9017, r9018, r9019, r9020, r9021, r9022, r9023;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1104);
        mpfr_init_set_str(r8993, "1", 10, MPFR_RNDN);
        mpfr_init(r8994);
        mpfr_init_set_str(r8995, "2", 10, MPFR_RNDN);
        mpfr_init(r8996);
        mpfr_init_set_str(r8997, "3", 10, MPFR_RNDN);
        mpfr_init(r8998);
        mpfr_init(r8999);
        mpfr_init(r9000);
        mpfr_init(r9001);
        mpfr_init(r9002);
        mpfr_init(r9003);
        mpfr_init(r9004);
        mpfr_init_set_str(r9005, "0", 10, MPFR_RNDN);
        mpfr_init(r9006);
        mpfr_init(r9007);
        mpfr_init(r9008);
        mpfr_init(r9009);
        mpfr_init(r9010);
        mpfr_init_set_str(r9011, "5", 10, MPFR_RNDN);
        mpfr_init(r9012);
        mpfr_init(r9013);
        mpfr_init(r9014);
        mpfr_init(r9015);
        mpfr_init_set_str(r9016, "4", 10, MPFR_RNDN);
        mpfr_init(r9017);
        mpfr_init(r9018);
        mpfr_init(r9019);
        mpfr_init_set_str(r9020, "7", 10, MPFR_RNDN);
        mpfr_init(r9021);
        mpfr_init(r9022);
        mpfr_init(r9023);
}

double f_im() {
        ;
        mpfr_neg(r8994, r8993, MPFR_RNDN);
        ;
        mpfr_div(r8996, r8994, r8995, MPFR_RNDN);
        ;
        mpfr_sqrt(r8998, r8997, MPFR_RNDN);
        mpfr_div(r8999, r8998, r8995, MPFR_RNDN);
        /* ERROR: no complex support in C */;
        mpfr_mul(r9001, r9000, r9000, MPFR_RNDN);
        mpfr_mul(r9002, r9001, r9000, MPFR_RNDN);
        mpfr_mul(r9003, r9002, r9000, MPFR_RNDN);
        mpfr_neg(r9004, r8995, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_mul(r9007, r9006, r9000, MPFR_RNDN);
        mpfr_mul(r9008, r9007, r9000, MPFR_RNDN);
        mpfr_mul(r9009, r9008, r9000, MPFR_RNDN);
        mpfr_add(r9010, r9003, r9009, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_mul(r9013, r9012, r9000, MPFR_RNDN);
        mpfr_mul(r9014, r9013, r9000, MPFR_RNDN);
        mpfr_add(r9015, r9010, r9014, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_mul(r9018, r9017, r9000, MPFR_RNDN);
        mpfr_add(r9019, r9015, r9018, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_add(r9022, r9019, r9021, MPFR_RNDN);
        /* ERROR: no complex support in C */;
        return mpfr_get_d(r9023, MPFR_RNDN);
}

static mpfr_t r9024, r9025, r9026, r9027, r9028, r9029, r9030, r9031, r9032, r9033, r9034, r9035, r9036, r9037, r9038, r9039, r9040, r9041, r9042, r9043, r9044, r9045, r9046, r9047, r9048, r9049, r9050, r9051, r9052, r9053, r9054;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1104);
        mpfr_init_set_str(r9024, "1", 10, MPFR_RNDN);
        mpfr_init(r9025);
        mpfr_init_set_str(r9026, "2", 10, MPFR_RNDN);
        mpfr_init(r9027);
        mpfr_init_set_str(r9028, "3", 10, MPFR_RNDN);
        mpfr_init(r9029);
        mpfr_init(r9030);
        mpfr_init(r9031);
        mpfr_init(r9032);
        mpfr_init(r9033);
        mpfr_init(r9034);
        mpfr_init(r9035);
        mpfr_init_set_str(r9036, "0", 10, MPFR_RNDN);
        mpfr_init(r9037);
        mpfr_init(r9038);
        mpfr_init(r9039);
        mpfr_init(r9040);
        mpfr_init(r9041);
        mpfr_init_set_str(r9042, "5", 10, MPFR_RNDN);
        mpfr_init(r9043);
        mpfr_init(r9044);
        mpfr_init(r9045);
        mpfr_init(r9046);
        mpfr_init_set_str(r9047, "4", 10, MPFR_RNDN);
        mpfr_init(r9048);
        mpfr_init(r9049);
        mpfr_init(r9050);
        mpfr_init_set_str(r9051, "7", 10, MPFR_RNDN);
        mpfr_init(r9052);
        mpfr_init(r9053);
        mpfr_init(r9054);
}

double f_fm() {
        ;
        mpfr_neg(r9025, r9024, MPFR_RNDN);
        ;
        mpfr_div(r9027, r9025, r9026, MPFR_RNDN);
        ;
        mpfr_sqrt(r9029, r9028, MPFR_RNDN);
        mpfr_div(r9030, r9029, r9026, MPFR_RNDN);
        /* ERROR: no complex support in C */;
        mpfr_mul(r9032, r9031, r9031, MPFR_RNDN);
        mpfr_mul(r9033, r9032, r9031, MPFR_RNDN);
        mpfr_mul(r9034, r9033, r9031, MPFR_RNDN);
        mpfr_neg(r9035, r9026, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_mul(r9038, r9037, r9031, MPFR_RNDN);
        mpfr_mul(r9039, r9038, r9031, MPFR_RNDN);
        mpfr_mul(r9040, r9039, r9031, MPFR_RNDN);
        mpfr_add(r9041, r9034, r9040, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_mul(r9044, r9043, r9031, MPFR_RNDN);
        mpfr_mul(r9045, r9044, r9031, MPFR_RNDN);
        mpfr_add(r9046, r9041, r9045, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_mul(r9049, r9048, r9031, MPFR_RNDN);
        mpfr_add(r9050, r9046, r9049, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_add(r9053, r9050, r9052, MPFR_RNDN);
        /* ERROR: no complex support in C */;
        return mpfr_get_d(r9054, MPFR_RNDN);
}

static mpfr_t r9055, r9056, r9057, r9058, r9059, r9060, r9061, r9062, r9063, r9064, r9065, r9066, r9067, r9068, r9069, r9070, r9071, r9072, r9073, r9074, r9075, r9076, r9077, r9078, r9079, r9080, r9081, r9082, r9083, r9084, r9085;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1104);
        mpfr_init_set_str(r9055, "1", 10, MPFR_RNDN);
        mpfr_init(r9056);
        mpfr_init_set_str(r9057, "2", 10, MPFR_RNDN);
        mpfr_init(r9058);
        mpfr_init_set_str(r9059, "3", 10, MPFR_RNDN);
        mpfr_init(r9060);
        mpfr_init(r9061);
        mpfr_init(r9062);
        mpfr_init(r9063);
        mpfr_init(r9064);
        mpfr_init(r9065);
        mpfr_init(r9066);
        mpfr_init_set_str(r9067, "0", 10, MPFR_RNDN);
        mpfr_init(r9068);
        mpfr_init(r9069);
        mpfr_init(r9070);
        mpfr_init(r9071);
        mpfr_init(r9072);
        mpfr_init_set_str(r9073, "5", 10, MPFR_RNDN);
        mpfr_init(r9074);
        mpfr_init(r9075);
        mpfr_init(r9076);
        mpfr_init(r9077);
        mpfr_init_set_str(r9078, "4", 10, MPFR_RNDN);
        mpfr_init(r9079);
        mpfr_init(r9080);
        mpfr_init(r9081);
        mpfr_init_set_str(r9082, "7", 10, MPFR_RNDN);
        mpfr_init(r9083);
        mpfr_init(r9084);
        mpfr_init(r9085);
}

double f_dm() {
        ;
        mpfr_neg(r9056, r9055, MPFR_RNDN);
        ;
        mpfr_div(r9058, r9056, r9057, MPFR_RNDN);
        ;
        mpfr_sqrt(r9060, r9059, MPFR_RNDN);
        mpfr_div(r9061, r9060, r9057, MPFR_RNDN);
        /* ERROR: no complex support in C */;
        mpfr_mul(r9063, r9062, r9062, MPFR_RNDN);
        mpfr_mul(r9064, r9063, r9062, MPFR_RNDN);
        mpfr_mul(r9065, r9064, r9062, MPFR_RNDN);
        mpfr_neg(r9066, r9057, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_mul(r9069, r9068, r9062, MPFR_RNDN);
        mpfr_mul(r9070, r9069, r9062, MPFR_RNDN);
        mpfr_mul(r9071, r9070, r9062, MPFR_RNDN);
        mpfr_add(r9072, r9065, r9071, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_mul(r9075, r9074, r9062, MPFR_RNDN);
        mpfr_mul(r9076, r9075, r9062, MPFR_RNDN);
        mpfr_add(r9077, r9072, r9076, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_mul(r9080, r9079, r9062, MPFR_RNDN);
        mpfr_add(r9081, r9077, r9080, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_add(r9084, r9081, r9083, MPFR_RNDN);
        /* ERROR: no complex support in C */;
        return mpfr_get_d(r9085, MPFR_RNDN);
}

