#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 r21941 = 1;
        float r21942 = -r21941;
        float r21943 = 2;
        float r21944 = r21942 / r21943;
        float r21945 = 3;
        float r21946 = sqrt(r21945);
        float r21947 = r21946 / r21943;
        float r21948 = /* ERROR: no complex support in C */;
        float r21949 = r21948 * r21948;
        float r21950 = r21949 * r21948;
        float r21951 = r21950 * r21948;
        float r21952 = -r21943;
        float r21953 = 0;
        float r21954 = /* ERROR: no complex support in C */;
        float r21955 = r21954 * r21948;
        float r21956 = r21955 * r21948;
        float r21957 = r21956 * r21948;
        float r21958 = r21951 + r21957;
        float r21959 = 5;
        float r21960 = /* ERROR: no complex support in C */;
        float r21961 = r21960 * r21948;
        float r21962 = r21961 * r21948;
        float r21963 = r21958 + r21962;
        float r21964 = 4;
        float r21965 = /* ERROR: no complex support in C */;
        float r21966 = r21965 * r21948;
        float r21967 = r21963 + r21966;
        float r21968 = 7;
        float r21969 = /* ERROR: no complex support in C */;
        float r21970 = r21967 + r21969;
        float r21971 = /* ERROR: no complex support in C */;
        return r21971;
}

double f_id() {
        double r21972 = 1;
        double r21973 = -r21972;
        double r21974 = 2;
        double r21975 = r21973 / r21974;
        double r21976 = 3;
        double r21977 = sqrt(r21976);
        double r21978 = r21977 / r21974;
        double r21979 = /* ERROR: no complex support in C */;
        double r21980 = r21979 * r21979;
        double r21981 = r21980 * r21979;
        double r21982 = r21981 * r21979;
        double r21983 = -r21974;
        double r21984 = 0;
        double r21985 = /* ERROR: no complex support in C */;
        double r21986 = r21985 * r21979;
        double r21987 = r21986 * r21979;
        double r21988 = r21987 * r21979;
        double r21989 = r21982 + r21988;
        double r21990 = 5;
        double r21991 = /* ERROR: no complex support in C */;
        double r21992 = r21991 * r21979;
        double r21993 = r21992 * r21979;
        double r21994 = r21989 + r21993;
        double r21995 = 4;
        double r21996 = /* ERROR: no complex support in C */;
        double r21997 = r21996 * r21979;
        double r21998 = r21994 + r21997;
        double r21999 = 7;
        double r22000 = /* ERROR: no complex support in C */;
        double r22001 = r21998 + r22000;
        double r22002 = /* ERROR: no complex support in C */;
        return r22002;
}


double f_of() {
        float r22003 = 1;
        float r22004 = -r22003;
        float r22005 = 2;
        float r22006 = r22004 / r22005;
        float r22007 = 3;
        float r22008 = sqrt(r22007);
        float r22009 = r22008 / r22005;
        float r22010 = /* ERROR: no complex support in C */;
        float r22011 = r22010 * r22010;
        float r22012 = r22011 * r22010;
        float r22013 = r22012 * r22010;
        float r22014 = -r22005;
        float r22015 = 0;
        float r22016 = /* ERROR: no complex support in C */;
        float r22017 = r22016 * r22010;
        float r22018 = r22017 * r22010;
        float r22019 = r22018 * r22010;
        float r22020 = r22013 + r22019;
        float r22021 = 5;
        float r22022 = /* ERROR: no complex support in C */;
        float r22023 = r22022 * r22010;
        float r22024 = r22023 * r22010;
        float r22025 = r22020 + r22024;
        float r22026 = 4;
        float r22027 = /* ERROR: no complex support in C */;
        float r22028 = r22027 * r22010;
        float r22029 = r22025 + r22028;
        float r22030 = 7;
        float r22031 = /* ERROR: no complex support in C */;
        float r22032 = r22029 + r22031;
        float r22033 = /* ERROR: no complex support in C */;
        return r22033;
}

double f_od() {
        double r22034 = 1;
        double r22035 = -r22034;
        double r22036 = 2;
        double r22037 = r22035 / r22036;
        double r22038 = 3;
        double r22039 = sqrt(r22038);
        double r22040 = r22039 / r22036;
        double r22041 = /* ERROR: no complex support in C */;
        double r22042 = r22041 * r22041;
        double r22043 = r22042 * r22041;
        double r22044 = r22043 * r22041;
        double r22045 = -r22036;
        double r22046 = 0;
        double r22047 = /* ERROR: no complex support in C */;
        double r22048 = r22047 * r22041;
        double r22049 = r22048 * r22041;
        double r22050 = r22049 * r22041;
        double r22051 = r22044 + r22050;
        double r22052 = 5;
        double r22053 = /* ERROR: no complex support in C */;
        double r22054 = r22053 * r22041;
        double r22055 = r22054 * r22041;
        double r22056 = r22051 + r22055;
        double r22057 = 4;
        double r22058 = /* ERROR: no complex support in C */;
        double r22059 = r22058 * r22041;
        double r22060 = r22056 + r22059;
        double r22061 = 7;
        double r22062 = /* ERROR: no complex support in C */;
        double r22063 = r22060 + r22062;
        double r22064 = /* ERROR: no complex support in C */;
        return r22064;
}

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 r22065, r22066, r22067, r22068, r22069, r22070, r22071, r22072, r22073, r22074, r22075, r22076, r22077, r22078, r22079, r22080, r22081, r22082, r22083, r22084, r22085, r22086, r22087, r22088, r22089, r22090, r22091, r22092, r22093, r22094, r22095;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1424);
        mpfr_init_set_str(r22065, "1", 10, MPFR_RNDN);
        mpfr_init(r22066);
        mpfr_init_set_str(r22067, "2", 10, MPFR_RNDN);
        mpfr_init(r22068);
        mpfr_init_set_str(r22069, "3", 10, MPFR_RNDN);
        mpfr_init(r22070);
        mpfr_init(r22071);
        mpfr_init(r22072);
        mpfr_init(r22073);
        mpfr_init(r22074);
        mpfr_init(r22075);
        mpfr_init(r22076);
        mpfr_init_set_str(r22077, "0", 10, MPFR_RNDN);
        mpfr_init(r22078);
        mpfr_init(r22079);
        mpfr_init(r22080);
        mpfr_init(r22081);
        mpfr_init(r22082);
        mpfr_init_set_str(r22083, "5", 10, MPFR_RNDN);
        mpfr_init(r22084);
        mpfr_init(r22085);
        mpfr_init(r22086);
        mpfr_init(r22087);
        mpfr_init_set_str(r22088, "4", 10, MPFR_RNDN);
        mpfr_init(r22089);
        mpfr_init(r22090);
        mpfr_init(r22091);
        mpfr_init_set_str(r22092, "7", 10, MPFR_RNDN);
        mpfr_init(r22093);
        mpfr_init(r22094);
        mpfr_init(r22095);
}

double f_im() {
        ;
        mpfr_neg(r22066, r22065, MPFR_RNDN);
        ;
        mpfr_div(r22068, r22066, r22067, MPFR_RNDN);
        ;
        mpfr_sqrt(r22070, r22069, MPFR_RNDN);
        mpfr_div(r22071, r22070, r22067, MPFR_RNDN);
        /* ERROR: no complex support in C */;
        mpfr_mul(r22073, r22072, r22072, MPFR_RNDN);
        mpfr_mul(r22074, r22073, r22072, MPFR_RNDN);
        mpfr_mul(r22075, r22074, r22072, MPFR_RNDN);
        mpfr_neg(r22076, r22067, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_mul(r22079, r22078, r22072, MPFR_RNDN);
        mpfr_mul(r22080, r22079, r22072, MPFR_RNDN);
        mpfr_mul(r22081, r22080, r22072, MPFR_RNDN);
        mpfr_add(r22082, r22075, r22081, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_mul(r22085, r22084, r22072, MPFR_RNDN);
        mpfr_mul(r22086, r22085, r22072, MPFR_RNDN);
        mpfr_add(r22087, r22082, r22086, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_mul(r22090, r22089, r22072, MPFR_RNDN);
        mpfr_add(r22091, r22087, r22090, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_add(r22094, r22091, r22093, MPFR_RNDN);
        /* ERROR: no complex support in C */;
        return mpfr_get_d(r22095, MPFR_RNDN);
}

static mpfr_t r22096, r22097, r22098, r22099, r22100, r22101, r22102, r22103, r22104, r22105, r22106, r22107, r22108, r22109, r22110, r22111, r22112, r22113, r22114, r22115, r22116, r22117, r22118, r22119, r22120, r22121, r22122, r22123, r22124, r22125, r22126;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1424);
        mpfr_init_set_str(r22096, "1", 10, MPFR_RNDN);
        mpfr_init(r22097);
        mpfr_init_set_str(r22098, "2", 10, MPFR_RNDN);
        mpfr_init(r22099);
        mpfr_init_set_str(r22100, "3", 10, MPFR_RNDN);
        mpfr_init(r22101);
        mpfr_init(r22102);
        mpfr_init(r22103);
        mpfr_init(r22104);
        mpfr_init(r22105);
        mpfr_init(r22106);
        mpfr_init(r22107);
        mpfr_init_set_str(r22108, "0", 10, MPFR_RNDN);
        mpfr_init(r22109);
        mpfr_init(r22110);
        mpfr_init(r22111);
        mpfr_init(r22112);
        mpfr_init(r22113);
        mpfr_init_set_str(r22114, "5", 10, MPFR_RNDN);
        mpfr_init(r22115);
        mpfr_init(r22116);
        mpfr_init(r22117);
        mpfr_init(r22118);
        mpfr_init_set_str(r22119, "4", 10, MPFR_RNDN);
        mpfr_init(r22120);
        mpfr_init(r22121);
        mpfr_init(r22122);
        mpfr_init_set_str(r22123, "7", 10, MPFR_RNDN);
        mpfr_init(r22124);
        mpfr_init(r22125);
        mpfr_init(r22126);
}

double f_fm() {
        ;
        mpfr_neg(r22097, r22096, MPFR_RNDN);
        ;
        mpfr_div(r22099, r22097, r22098, MPFR_RNDN);
        ;
        mpfr_sqrt(r22101, r22100, MPFR_RNDN);
        mpfr_div(r22102, r22101, r22098, MPFR_RNDN);
        /* ERROR: no complex support in C */;
        mpfr_mul(r22104, r22103, r22103, MPFR_RNDN);
        mpfr_mul(r22105, r22104, r22103, MPFR_RNDN);
        mpfr_mul(r22106, r22105, r22103, MPFR_RNDN);
        mpfr_neg(r22107, r22098, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_mul(r22110, r22109, r22103, MPFR_RNDN);
        mpfr_mul(r22111, r22110, r22103, MPFR_RNDN);
        mpfr_mul(r22112, r22111, r22103, MPFR_RNDN);
        mpfr_add(r22113, r22106, r22112, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_mul(r22116, r22115, r22103, MPFR_RNDN);
        mpfr_mul(r22117, r22116, r22103, MPFR_RNDN);
        mpfr_add(r22118, r22113, r22117, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_mul(r22121, r22120, r22103, MPFR_RNDN);
        mpfr_add(r22122, r22118, r22121, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_add(r22125, r22122, r22124, MPFR_RNDN);
        /* ERROR: no complex support in C */;
        return mpfr_get_d(r22126, MPFR_RNDN);
}

static mpfr_t r22127, r22128, r22129, r22130, r22131, r22132, r22133, r22134, r22135, r22136, r22137, r22138, r22139, r22140, r22141, r22142, r22143, r22144, r22145, r22146, r22147, r22148, r22149, r22150, r22151, r22152, r22153, r22154, r22155, r22156, r22157;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1424);
        mpfr_init_set_str(r22127, "1", 10, MPFR_RNDN);
        mpfr_init(r22128);
        mpfr_init_set_str(r22129, "2", 10, MPFR_RNDN);
        mpfr_init(r22130);
        mpfr_init_set_str(r22131, "3", 10, MPFR_RNDN);
        mpfr_init(r22132);
        mpfr_init(r22133);
        mpfr_init(r22134);
        mpfr_init(r22135);
        mpfr_init(r22136);
        mpfr_init(r22137);
        mpfr_init(r22138);
        mpfr_init_set_str(r22139, "0", 10, MPFR_RNDN);
        mpfr_init(r22140);
        mpfr_init(r22141);
        mpfr_init(r22142);
        mpfr_init(r22143);
        mpfr_init(r22144);
        mpfr_init_set_str(r22145, "5", 10, MPFR_RNDN);
        mpfr_init(r22146);
        mpfr_init(r22147);
        mpfr_init(r22148);
        mpfr_init(r22149);
        mpfr_init_set_str(r22150, "4", 10, MPFR_RNDN);
        mpfr_init(r22151);
        mpfr_init(r22152);
        mpfr_init(r22153);
        mpfr_init_set_str(r22154, "7", 10, MPFR_RNDN);
        mpfr_init(r22155);
        mpfr_init(r22156);
        mpfr_init(r22157);
}

double f_dm() {
        ;
        mpfr_neg(r22128, r22127, MPFR_RNDN);
        ;
        mpfr_div(r22130, r22128, r22129, MPFR_RNDN);
        ;
        mpfr_sqrt(r22132, r22131, MPFR_RNDN);
        mpfr_div(r22133, r22132, r22129, MPFR_RNDN);
        /* ERROR: no complex support in C */;
        mpfr_mul(r22135, r22134, r22134, MPFR_RNDN);
        mpfr_mul(r22136, r22135, r22134, MPFR_RNDN);
        mpfr_mul(r22137, r22136, r22134, MPFR_RNDN);
        mpfr_neg(r22138, r22129, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_mul(r22141, r22140, r22134, MPFR_RNDN);
        mpfr_mul(r22142, r22141, r22134, MPFR_RNDN);
        mpfr_mul(r22143, r22142, r22134, MPFR_RNDN);
        mpfr_add(r22144, r22137, r22143, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_mul(r22147, r22146, r22134, MPFR_RNDN);
        mpfr_mul(r22148, r22147, r22134, MPFR_RNDN);
        mpfr_add(r22149, r22144, r22148, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_mul(r22152, r22151, r22134, MPFR_RNDN);
        mpfr_add(r22153, r22149, r22152, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_add(r22156, r22153, r22155, MPFR_RNDN);
        /* ERROR: no complex support in C */;
        return mpfr_get_d(r22157, MPFR_RNDN);
}

