#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 r22135 = 1;
        float r22136 = -r22135;
        float r22137 = 2;
        float r22138 = r22136 / r22137;
        float r22139 = 3;
        float r22140 = sqrt(r22139);
        float r22141 = r22140 / r22137;
        float r22142 = /* ERROR: no complex support in C */;
        float r22143 = r22142 * r22142;
        float r22144 = r22143 * r22142;
        float r22145 = r22144 * r22142;
        float r22146 = -r22137;
        float r22147 = 0;
        float r22148 = /* ERROR: no complex support in C */;
        float r22149 = r22148 * r22142;
        float r22150 = r22149 * r22142;
        float r22151 = r22150 * r22142;
        float r22152 = r22145 + r22151;
        float r22153 = 5;
        float r22154 = /* ERROR: no complex support in C */;
        float r22155 = r22154 * r22142;
        float r22156 = r22155 * r22142;
        float r22157 = r22152 + r22156;
        float r22158 = 4;
        float r22159 = /* ERROR: no complex support in C */;
        float r22160 = r22159 * r22142;
        float r22161 = r22157 + r22160;
        float r22162 = 7;
        float r22163 = /* ERROR: no complex support in C */;
        float r22164 = r22161 + r22163;
        float r22165 = /* ERROR: no complex support in C */;
        return r22165;
}

double f_id() {
        double r22166 = 1;
        double r22167 = -r22166;
        double r22168 = 2;
        double r22169 = r22167 / r22168;
        double r22170 = 3;
        double r22171 = sqrt(r22170);
        double r22172 = r22171 / r22168;
        double r22173 = /* ERROR: no complex support in C */;
        double r22174 = r22173 * r22173;
        double r22175 = r22174 * r22173;
        double r22176 = r22175 * r22173;
        double r22177 = -r22168;
        double r22178 = 0;
        double r22179 = /* ERROR: no complex support in C */;
        double r22180 = r22179 * r22173;
        double r22181 = r22180 * r22173;
        double r22182 = r22181 * r22173;
        double r22183 = r22176 + r22182;
        double r22184 = 5;
        double r22185 = /* ERROR: no complex support in C */;
        double r22186 = r22185 * r22173;
        double r22187 = r22186 * r22173;
        double r22188 = r22183 + r22187;
        double r22189 = 4;
        double r22190 = /* ERROR: no complex support in C */;
        double r22191 = r22190 * r22173;
        double r22192 = r22188 + r22191;
        double r22193 = 7;
        double r22194 = /* ERROR: no complex support in C */;
        double r22195 = r22192 + r22194;
        double r22196 = /* ERROR: no complex support in C */;
        return r22196;
}


double f_of() {
        float r22197 = 1;
        float r22198 = -r22197;
        float r22199 = 2;
        float r22200 = r22198 / r22199;
        float r22201 = 3;
        float r22202 = sqrt(r22201);
        float r22203 = r22202 / r22199;
        float r22204 = /* ERROR: no complex support in C */;
        float r22205 = r22204 * r22204;
        float r22206 = r22205 * r22204;
        float r22207 = r22206 * r22204;
        float r22208 = -r22199;
        float r22209 = 0;
        float r22210 = /* ERROR: no complex support in C */;
        float r22211 = r22210 * r22204;
        float r22212 = r22211 * r22204;
        float r22213 = r22212 * r22204;
        float r22214 = r22207 + r22213;
        float r22215 = 5;
        float r22216 = /* ERROR: no complex support in C */;
        float r22217 = r22216 * r22204;
        float r22218 = r22217 * r22204;
        float r22219 = r22214 + r22218;
        float r22220 = 4;
        float r22221 = /* ERROR: no complex support in C */;
        float r22222 = r22221 * r22204;
        float r22223 = r22219 + r22222;
        float r22224 = 7;
        float r22225 = /* ERROR: no complex support in C */;
        float r22226 = r22223 + r22225;
        float r22227 = /* ERROR: no complex support in C */;
        return r22227;
}

double f_od() {
        double r22228 = 1;
        double r22229 = -r22228;
        double r22230 = 2;
        double r22231 = r22229 / r22230;
        double r22232 = 3;
        double r22233 = sqrt(r22232);
        double r22234 = r22233 / r22230;
        double r22235 = /* ERROR: no complex support in C */;
        double r22236 = r22235 * r22235;
        double r22237 = r22236 * r22235;
        double r22238 = r22237 * r22235;
        double r22239 = -r22230;
        double r22240 = 0;
        double r22241 = /* ERROR: no complex support in C */;
        double r22242 = r22241 * r22235;
        double r22243 = r22242 * r22235;
        double r22244 = r22243 * r22235;
        double r22245 = r22238 + r22244;
        double r22246 = 5;
        double r22247 = /* ERROR: no complex support in C */;
        double r22248 = r22247 * r22235;
        double r22249 = r22248 * r22235;
        double r22250 = r22245 + r22249;
        double r22251 = 4;
        double r22252 = /* ERROR: no complex support in C */;
        double r22253 = r22252 * r22235;
        double r22254 = r22250 + r22253;
        double r22255 = 7;
        double r22256 = /* ERROR: no complex support in C */;
        double r22257 = r22254 + r22256;
        double r22258 = /* ERROR: no complex support in C */;
        return r22258;
}

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 r22259, r22260, r22261, r22262, r22263, r22264, r22265, r22266, r22267, r22268, r22269, r22270, r22271, r22272, r22273, r22274, r22275, r22276, r22277, r22278, r22279, r22280, r22281, r22282, r22283, r22284, r22285, r22286, r22287, r22288, r22289;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1424);
        mpfr_init_set_str(r22259, "1", 10, MPFR_RNDN);
        mpfr_init(r22260);
        mpfr_init_set_str(r22261, "2", 10, MPFR_RNDN);
        mpfr_init(r22262);
        mpfr_init_set_str(r22263, "3", 10, MPFR_RNDN);
        mpfr_init(r22264);
        mpfr_init(r22265);
        mpfr_init(r22266);
        mpfr_init(r22267);
        mpfr_init(r22268);
        mpfr_init(r22269);
        mpfr_init(r22270);
        mpfr_init_set_str(r22271, "0", 10, MPFR_RNDN);
        mpfr_init(r22272);
        mpfr_init(r22273);
        mpfr_init(r22274);
        mpfr_init(r22275);
        mpfr_init(r22276);
        mpfr_init_set_str(r22277, "5", 10, MPFR_RNDN);
        mpfr_init(r22278);
        mpfr_init(r22279);
        mpfr_init(r22280);
        mpfr_init(r22281);
        mpfr_init_set_str(r22282, "4", 10, MPFR_RNDN);
        mpfr_init(r22283);
        mpfr_init(r22284);
        mpfr_init(r22285);
        mpfr_init_set_str(r22286, "7", 10, MPFR_RNDN);
        mpfr_init(r22287);
        mpfr_init(r22288);
        mpfr_init(r22289);
}

double f_im() {
        ;
        mpfr_neg(r22260, r22259, MPFR_RNDN);
        ;
        mpfr_div(r22262, r22260, r22261, MPFR_RNDN);
        ;
        mpfr_sqrt(r22264, r22263, MPFR_RNDN);
        mpfr_div(r22265, r22264, r22261, MPFR_RNDN);
        /* ERROR: no complex support in C */;
        mpfr_mul(r22267, r22266, r22266, MPFR_RNDN);
        mpfr_mul(r22268, r22267, r22266, MPFR_RNDN);
        mpfr_mul(r22269, r22268, r22266, MPFR_RNDN);
        mpfr_neg(r22270, r22261, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_mul(r22273, r22272, r22266, MPFR_RNDN);
        mpfr_mul(r22274, r22273, r22266, MPFR_RNDN);
        mpfr_mul(r22275, r22274, r22266, MPFR_RNDN);
        mpfr_add(r22276, r22269, r22275, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_mul(r22279, r22278, r22266, MPFR_RNDN);
        mpfr_mul(r22280, r22279, r22266, MPFR_RNDN);
        mpfr_add(r22281, r22276, r22280, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_mul(r22284, r22283, r22266, MPFR_RNDN);
        mpfr_add(r22285, r22281, r22284, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_add(r22288, r22285, r22287, MPFR_RNDN);
        /* ERROR: no complex support in C */;
        return mpfr_get_d(r22289, MPFR_RNDN);
}

static mpfr_t r22290, r22291, r22292, r22293, r22294, r22295, r22296, r22297, r22298, r22299, r22300, r22301, r22302, r22303, r22304, r22305, r22306, r22307, r22308, r22309, r22310, r22311, r22312, r22313, r22314, r22315, r22316, r22317, r22318, r22319, r22320;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1424);
        mpfr_init_set_str(r22290, "1", 10, MPFR_RNDN);
        mpfr_init(r22291);
        mpfr_init_set_str(r22292, "2", 10, MPFR_RNDN);
        mpfr_init(r22293);
        mpfr_init_set_str(r22294, "3", 10, MPFR_RNDN);
        mpfr_init(r22295);
        mpfr_init(r22296);
        mpfr_init(r22297);
        mpfr_init(r22298);
        mpfr_init(r22299);
        mpfr_init(r22300);
        mpfr_init(r22301);
        mpfr_init_set_str(r22302, "0", 10, MPFR_RNDN);
        mpfr_init(r22303);
        mpfr_init(r22304);
        mpfr_init(r22305);
        mpfr_init(r22306);
        mpfr_init(r22307);
        mpfr_init_set_str(r22308, "5", 10, MPFR_RNDN);
        mpfr_init(r22309);
        mpfr_init(r22310);
        mpfr_init(r22311);
        mpfr_init(r22312);
        mpfr_init_set_str(r22313, "4", 10, MPFR_RNDN);
        mpfr_init(r22314);
        mpfr_init(r22315);
        mpfr_init(r22316);
        mpfr_init_set_str(r22317, "7", 10, MPFR_RNDN);
        mpfr_init(r22318);
        mpfr_init(r22319);
        mpfr_init(r22320);
}

double f_fm() {
        ;
        mpfr_neg(r22291, r22290, MPFR_RNDN);
        ;
        mpfr_div(r22293, r22291, r22292, MPFR_RNDN);
        ;
        mpfr_sqrt(r22295, r22294, MPFR_RNDN);
        mpfr_div(r22296, r22295, r22292, MPFR_RNDN);
        /* ERROR: no complex support in C */;
        mpfr_mul(r22298, r22297, r22297, MPFR_RNDN);
        mpfr_mul(r22299, r22298, r22297, MPFR_RNDN);
        mpfr_mul(r22300, r22299, r22297, MPFR_RNDN);
        mpfr_neg(r22301, r22292, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_mul(r22304, r22303, r22297, MPFR_RNDN);
        mpfr_mul(r22305, r22304, r22297, MPFR_RNDN);
        mpfr_mul(r22306, r22305, r22297, MPFR_RNDN);
        mpfr_add(r22307, r22300, r22306, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_mul(r22310, r22309, r22297, MPFR_RNDN);
        mpfr_mul(r22311, r22310, r22297, MPFR_RNDN);
        mpfr_add(r22312, r22307, r22311, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_mul(r22315, r22314, r22297, MPFR_RNDN);
        mpfr_add(r22316, r22312, r22315, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_add(r22319, r22316, r22318, MPFR_RNDN);
        /* ERROR: no complex support in C */;
        return mpfr_get_d(r22320, MPFR_RNDN);
}

static mpfr_t r22321, r22322, r22323, r22324, r22325, r22326, r22327, r22328, r22329, r22330, r22331, r22332, r22333, r22334, r22335, r22336, r22337, r22338, r22339, r22340, r22341, r22342, r22343, r22344, r22345, r22346, r22347, r22348, r22349, r22350, r22351;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1424);
        mpfr_init_set_str(r22321, "1", 10, MPFR_RNDN);
        mpfr_init(r22322);
        mpfr_init_set_str(r22323, "2", 10, MPFR_RNDN);
        mpfr_init(r22324);
        mpfr_init_set_str(r22325, "3", 10, MPFR_RNDN);
        mpfr_init(r22326);
        mpfr_init(r22327);
        mpfr_init(r22328);
        mpfr_init(r22329);
        mpfr_init(r22330);
        mpfr_init(r22331);
        mpfr_init(r22332);
        mpfr_init_set_str(r22333, "0", 10, MPFR_RNDN);
        mpfr_init(r22334);
        mpfr_init(r22335);
        mpfr_init(r22336);
        mpfr_init(r22337);
        mpfr_init(r22338);
        mpfr_init_set_str(r22339, "5", 10, MPFR_RNDN);
        mpfr_init(r22340);
        mpfr_init(r22341);
        mpfr_init(r22342);
        mpfr_init(r22343);
        mpfr_init_set_str(r22344, "4", 10, MPFR_RNDN);
        mpfr_init(r22345);
        mpfr_init(r22346);
        mpfr_init(r22347);
        mpfr_init_set_str(r22348, "7", 10, MPFR_RNDN);
        mpfr_init(r22349);
        mpfr_init(r22350);
        mpfr_init(r22351);
}

double f_dm() {
        ;
        mpfr_neg(r22322, r22321, MPFR_RNDN);
        ;
        mpfr_div(r22324, r22322, r22323, MPFR_RNDN);
        ;
        mpfr_sqrt(r22326, r22325, MPFR_RNDN);
        mpfr_div(r22327, r22326, r22323, MPFR_RNDN);
        /* ERROR: no complex support in C */;
        mpfr_mul(r22329, r22328, r22328, MPFR_RNDN);
        mpfr_mul(r22330, r22329, r22328, MPFR_RNDN);
        mpfr_mul(r22331, r22330, r22328, MPFR_RNDN);
        mpfr_neg(r22332, r22323, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_mul(r22335, r22334, r22328, MPFR_RNDN);
        mpfr_mul(r22336, r22335, r22328, MPFR_RNDN);
        mpfr_mul(r22337, r22336, r22328, MPFR_RNDN);
        mpfr_add(r22338, r22331, r22337, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_mul(r22341, r22340, r22328, MPFR_RNDN);
        mpfr_mul(r22342, r22341, r22328, MPFR_RNDN);
        mpfr_add(r22343, r22338, r22342, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_mul(r22346, r22345, r22328, MPFR_RNDN);
        mpfr_add(r22347, r22343, r22346, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        mpfr_add(r22350, r22347, r22349, MPFR_RNDN);
        /* ERROR: no complex support in C */;
        return mpfr_get_d(r22351, MPFR_RNDN);
}

