#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 r21912 = 1;
        float r21913 = -r21912;
        float r21914 = 2;
        float r21915 = r21913 / r21914;
        float r21916 = 3;
        float r21917 = sqrt(r21916);
        float r21918 = r21917 / r21914;
        float r21919 = /* ERROR: no complex support in C */;
        float r21920 = r21919 * r21919;
        float r21921 = r21920 * r21919;
        float r21922 = r21921 * r21919;
        float r21923 = -r21914;
        float r21924 = 0;
        float r21925 = /* ERROR: no complex support in C */;
        float r21926 = r21925 * r21919;
        float r21927 = r21926 * r21919;
        float r21928 = r21927 * r21919;
        float r21929 = r21922 + r21928;
        float r21930 = 5;
        float r21931 = /* ERROR: no complex support in C */;
        float r21932 = r21931 * r21919;
        float r21933 = r21932 * r21919;
        float r21934 = r21929 + r21933;
        float r21935 = 4;
        float r21936 = /* ERROR: no complex support in C */;
        float r21937 = r21936 * r21919;
        float r21938 = r21934 + r21937;
        float r21939 = 7;
        float r21940 = /* ERROR: no complex support in C */;
        float r21941 = r21938 + r21940;
        float r21942 = /* ERROR: no complex support in C */;
        return r21942;
}

double f_id() {
        double r21943 = 1;
        double r21944 = -r21943;
        double r21945 = 2;
        double r21946 = r21944 / r21945;
        double r21947 = 3;
        double r21948 = sqrt(r21947);
        double r21949 = r21948 / r21945;
        double r21950 = /* ERROR: no complex support in C */;
        double r21951 = r21950 * r21950;
        double r21952 = r21951 * r21950;
        double r21953 = r21952 * r21950;
        double r21954 = -r21945;
        double r21955 = 0;
        double r21956 = /* ERROR: no complex support in C */;
        double r21957 = r21956 * r21950;
        double r21958 = r21957 * r21950;
        double r21959 = r21958 * r21950;
        double r21960 = r21953 + r21959;
        double r21961 = 5;
        double r21962 = /* ERROR: no complex support in C */;
        double r21963 = r21962 * r21950;
        double r21964 = r21963 * r21950;
        double r21965 = r21960 + r21964;
        double r21966 = 4;
        double r21967 = /* ERROR: no complex support in C */;
        double r21968 = r21967 * r21950;
        double r21969 = r21965 + r21968;
        double r21970 = 7;
        double r21971 = /* ERROR: no complex support in C */;
        double r21972 = r21969 + r21971;
        double r21973 = /* ERROR: no complex support in C */;
        return r21973;
}


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

double f_od() {
        double r21998 = 4;
        double r21999 = -1/2;
        double r22000 = 3;
        double r22001 = sqrt(r22000);
        double r22002 = 2;
        double r22003 = r22001 / r22002;
        double r22004 = /* ERROR: no complex support in C */;
        double r22005 = r21998 * r22004;
        double r22006 = 5;
        double r22007 = r22004 * r22006;
        double r22008 = r22007 * r22004;
        double r22009 = r22004 * r22004;
        double r22010 = r22009 * r22004;
        double r22011 = r22010 * r22004;
        double r22012 = -2;
        double r22013 = r22012 * r22004;
        double r22014 = r22004 * r22013;
        double r22015 = r22004 * r22014;
        double r22016 = r22011 + r22015;
        double r22017 = r22008 + r22016;
        double r22018 = r22005 + r22017;
        double r22019 = 7;
        double r22020 = r22018 + r22019;
        double r22021 = /* ERROR: no complex support in C */;
        return r22021;
}

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 r22022, r22023, r22024, r22025, r22026, r22027, r22028, r22029, r22030, r22031, r22032, r22033, r22034, r22035, r22036, r22037, r22038, r22039, r22040, r22041, r22042, r22043, r22044, r22045, r22046, r22047, r22048, r22049, r22050, r22051, r22052;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1424);
        mpfr_init_set_str(r22022, "1", 10, MPFR_RNDN);
        mpfr_init(r22023);
        mpfr_init_set_str(r22024, "2", 10, MPFR_RNDN);
        mpfr_init(r22025);
        mpfr_init_set_str(r22026, "3", 10, MPFR_RNDN);
        mpfr_init(r22027);
        mpfr_init(r22028);
        mpfr_init(r22029);
        mpfr_init(r22030);
        mpfr_init(r22031);
        mpfr_init(r22032);
        mpfr_init(r22033);
        mpfr_init_set_str(r22034, "0", 10, MPFR_RNDN);
        mpfr_init(r22035);
        mpfr_init(r22036);
        mpfr_init(r22037);
        mpfr_init(r22038);
        mpfr_init(r22039);
        mpfr_init_set_str(r22040, "5", 10, MPFR_RNDN);
        mpfr_init(r22041);
        mpfr_init(r22042);
        mpfr_init(r22043);
        mpfr_init(r22044);
        mpfr_init_set_str(r22045, "4", 10, MPFR_RNDN);
        mpfr_init(r22046);
        mpfr_init(r22047);
        mpfr_init(r22048);
        mpfr_init_set_str(r22049, "7", 10, MPFR_RNDN);
        mpfr_init(r22050);
        mpfr_init(r22051);
        mpfr_init(r22052);
}

double f_im() {
        ;
        mpfr_neg(r22023, r22022, MPFR_RNDN);
        ;
        mpfr_div(r22025, r22023, r22024, MPFR_RNDN);
        ;
        mpfr_sqrt(r22027, r22026, MPFR_RNDN);
        mpfr_div(r22028, r22027, r22024, MPFR_RNDN);
        /* ERROR: no complex support in C */;
        mpfr_mul(r22030, r22029, r22029, MPFR_RNDN);
        mpfr_mul(r22031, r22030, r22029, MPFR_RNDN);
        mpfr_mul(r22032, r22031, r22029, MPFR_RNDN);
        mpfr_neg(r22033, r22024, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_mul(r22036, r22035, r22029, MPFR_RNDN);
        mpfr_mul(r22037, r22036, r22029, MPFR_RNDN);
        mpfr_mul(r22038, r22037, r22029, MPFR_RNDN);
        mpfr_add(r22039, r22032, r22038, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_mul(r22042, r22041, r22029, MPFR_RNDN);
        mpfr_mul(r22043, r22042, r22029, MPFR_RNDN);
        mpfr_add(r22044, r22039, r22043, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_mul(r22047, r22046, r22029, MPFR_RNDN);
        mpfr_add(r22048, r22044, r22047, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_add(r22051, r22048, r22050, MPFR_RNDN);
        /* ERROR: no complex support in C */;
        return mpfr_get_d(r22052, MPFR_RNDN);
}

static mpfr_t r22053, r22054, r22055, r22056, r22057, r22058, r22059, r22060, r22061, r22062, r22063, r22064, r22065, r22066, r22067, r22068, r22069, r22070, r22071, r22072, r22073, r22074, r22075, r22076;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1424);
        mpfr_init_set_str(r22053, "4", 10, MPFR_RNDN);
        mpfr_init_set_str(r22054, "-1/2", 10, MPFR_RNDN);
        mpfr_init_set_str(r22055, "3", 10, MPFR_RNDN);
        mpfr_init(r22056);
        mpfr_init_set_str(r22057, "2", 10, MPFR_RNDN);
        mpfr_init(r22058);
        mpfr_init(r22059);
        mpfr_init(r22060);
        mpfr_init_set_str(r22061, "5", 10, MPFR_RNDN);
        mpfr_init(r22062);
        mpfr_init(r22063);
        mpfr_init(r22064);
        mpfr_init(r22065);
        mpfr_init(r22066);
        mpfr_init_set_str(r22067, "-2", 10, MPFR_RNDN);
        mpfr_init(r22068);
        mpfr_init(r22069);
        mpfr_init(r22070);
        mpfr_init(r22071);
        mpfr_init(r22072);
        mpfr_init(r22073);
        mpfr_init_set_str(r22074, "7", 10, MPFR_RNDN);
        mpfr_init(r22075);
        mpfr_init(r22076);
}

double f_fm() {
        ;
        ;
        ;
        mpfr_sqrt(r22056, r22055, MPFR_RNDN);
        ;
        mpfr_div(r22058, r22056, r22057, MPFR_RNDN);
        /* ERROR: no complex support in C */;
        mpfr_mul(r22060, r22053, r22059, MPFR_RNDN);
        ;
        mpfr_mul(r22062, r22059, r22061, MPFR_RNDN);
        mpfr_mul(r22063, r22062, r22059, MPFR_RNDN);
        mpfr_mul(r22064, r22059, r22059, MPFR_RNDN);
        mpfr_mul(r22065, r22064, r22059, MPFR_RNDN);
        mpfr_mul(r22066, r22065, r22059, MPFR_RNDN);
        ;
        mpfr_mul(r22068, r22067, r22059, MPFR_RNDN);
        mpfr_mul(r22069, r22059, r22068, MPFR_RNDN);
        mpfr_mul(r22070, r22059, r22069, MPFR_RNDN);
        mpfr_add(r22071, r22066, r22070, MPFR_RNDN);
        mpfr_add(r22072, r22063, r22071, MPFR_RNDN);
        mpfr_add(r22073, r22060, r22072, MPFR_RNDN);
        ;
        mpfr_add(r22075, r22073, r22074, MPFR_RNDN);
        /* ERROR: no complex support in C */;
        return mpfr_get_d(r22076, MPFR_RNDN);
}

static mpfr_t r22077, r22078, r22079, r22080, r22081, r22082, r22083, r22084, r22085, r22086, r22087, r22088, r22089, r22090, r22091, r22092, r22093, r22094, r22095, r22096, r22097, r22098, r22099, r22100;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1424);
        mpfr_init_set_str(r22077, "4", 10, MPFR_RNDN);
        mpfr_init_set_str(r22078, "-1/2", 10, MPFR_RNDN);
        mpfr_init_set_str(r22079, "3", 10, MPFR_RNDN);
        mpfr_init(r22080);
        mpfr_init_set_str(r22081, "2", 10, MPFR_RNDN);
        mpfr_init(r22082);
        mpfr_init(r22083);
        mpfr_init(r22084);
        mpfr_init_set_str(r22085, "5", 10, MPFR_RNDN);
        mpfr_init(r22086);
        mpfr_init(r22087);
        mpfr_init(r22088);
        mpfr_init(r22089);
        mpfr_init(r22090);
        mpfr_init_set_str(r22091, "-2", 10, MPFR_RNDN);
        mpfr_init(r22092);
        mpfr_init(r22093);
        mpfr_init(r22094);
        mpfr_init(r22095);
        mpfr_init(r22096);
        mpfr_init(r22097);
        mpfr_init_set_str(r22098, "7", 10, MPFR_RNDN);
        mpfr_init(r22099);
        mpfr_init(r22100);
}

double f_dm() {
        ;
        ;
        ;
        mpfr_sqrt(r22080, r22079, MPFR_RNDN);
        ;
        mpfr_div(r22082, r22080, r22081, MPFR_RNDN);
        /* ERROR: no complex support in C */;
        mpfr_mul(r22084, r22077, r22083, MPFR_RNDN);
        ;
        mpfr_mul(r22086, r22083, r22085, MPFR_RNDN);
        mpfr_mul(r22087, r22086, r22083, MPFR_RNDN);
        mpfr_mul(r22088, r22083, r22083, MPFR_RNDN);
        mpfr_mul(r22089, r22088, r22083, MPFR_RNDN);
        mpfr_mul(r22090, r22089, r22083, MPFR_RNDN);
        ;
        mpfr_mul(r22092, r22091, r22083, MPFR_RNDN);
        mpfr_mul(r22093, r22083, r22092, MPFR_RNDN);
        mpfr_mul(r22094, r22083, r22093, MPFR_RNDN);
        mpfr_add(r22095, r22090, r22094, MPFR_RNDN);
        mpfr_add(r22096, r22087, r22095, MPFR_RNDN);
        mpfr_add(r22097, r22084, r22096, MPFR_RNDN);
        ;
        mpfr_add(r22099, r22097, r22098, MPFR_RNDN);
        /* ERROR: no complex support in C */;
        return mpfr_get_d(r22100, MPFR_RNDN);
}

