#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 r8206 = 1.0f;
        float r8207 = -r8206;
        float r8208 = 2.0f;
        float r8209 = r8207 / r8208;
        float r8210 = 3.0f;
        float r8211 = sqrt(r8210);
        float r8212 = r8211 / r8208;
        float r8213 = /* ERROR: no complex support in C */;
        float r8214 = r8213 * r8213;
        float r8215 = r8214 * r8213;
        float r8216 = r8215 * r8213;
        float r8217 = -r8208;
        float r8218 = 0.0f;
        float r8219 = /* ERROR: no complex support in C */;
        float r8220 = r8219 * r8213;
        float r8221 = r8220 * r8213;
        float r8222 = r8221 * r8213;
        float r8223 = r8216 + r8222;
        float r8224 = 5.0f;
        float r8225 = /* ERROR: no complex support in C */;
        float r8226 = r8225 * r8213;
        float r8227 = r8226 * r8213;
        float r8228 = r8223 + r8227;
        float r8229 = 4.0f;
        float r8230 = /* ERROR: no complex support in C */;
        float r8231 = r8230 * r8213;
        float r8232 = r8228 + r8231;
        float r8233 = 7.0f;
        float r8234 = /* ERROR: no complex support in C */;
        float r8235 = r8232 + r8234;
        float r8236 = /* ERROR: no complex support in C */;
        return r8236;
}

double f_id() {
        double r8237 = 1.0;
        double r8238 = -r8237;
        double r8239 = 2.0;
        double r8240 = r8238 / r8239;
        double r8241 = 3.0;
        double r8242 = sqrt(r8241);
        double r8243 = r8242 / r8239;
        double r8244 = /* ERROR: no complex support in C */;
        double r8245 = r8244 * r8244;
        double r8246 = r8245 * r8244;
        double r8247 = r8246 * r8244;
        double r8248 = -r8239;
        double r8249 = 0.0;
        double r8250 = /* ERROR: no complex support in C */;
        double r8251 = r8250 * r8244;
        double r8252 = r8251 * r8244;
        double r8253 = r8252 * r8244;
        double r8254 = r8247 + r8253;
        double r8255 = 5.0;
        double r8256 = /* ERROR: no complex support in C */;
        double r8257 = r8256 * r8244;
        double r8258 = r8257 * r8244;
        double r8259 = r8254 + r8258;
        double r8260 = 4.0;
        double r8261 = /* ERROR: no complex support in C */;
        double r8262 = r8261 * r8244;
        double r8263 = r8259 + r8262;
        double r8264 = 7.0;
        double r8265 = /* ERROR: no complex support in C */;
        double r8266 = r8263 + r8265;
        double r8267 = /* ERROR: no complex support in C */;
        return r8267;
}


double f_of() {
        float r8268 = 1.0f;
        float r8269 = -r8268;
        float r8270 = 2.0f;
        float r8271 = r8269 / r8270;
        float r8272 = 3.0f;
        float r8273 = sqrt(r8272);
        float r8274 = r8273 / r8270;
        float r8275 = /* ERROR: no complex support in C */;
        float r8276 = r8275 * r8275;
        float r8277 = r8276 * r8275;
        float r8278 = r8275 * r8277;
        float r8279 = -r8270;
        float r8280 = 0.0f;
        float r8281 = /* ERROR: no complex support in C */;
        float r8282 = r8281 * r8275;
        float r8283 = r8275 * r8282;
        float r8284 = r8275 * r8283;
        float r8285 = r8278 + r8284;
        float r8286 = 5.0f;
        float r8287 = /* ERROR: no complex support in C */;
        float r8288 = r8287 * r8275;
        float r8289 = r8288 * r8275;
        float r8290 = r8285 + r8289;
        float r8291 = 4.0f;
        float r8292 = /* ERROR: no complex support in C */;
        float r8293 = r8275 * r8292;
        float r8294 = r8290 + r8293;
        float r8295 = 7.0f;
        float r8296 = /* ERROR: no complex support in C */;
        float r8297 = r8294 + r8296;
        float r8298 = /* ERROR: no complex support in C */;
        return r8298;
}

double f_od() {
        double r8299 = 1.0;
        double r8300 = -r8299;
        double r8301 = 2.0;
        double r8302 = r8300 / r8301;
        double r8303 = 3.0;
        double r8304 = sqrt(r8303);
        double r8305 = r8304 / r8301;
        double r8306 = /* ERROR: no complex support in C */;
        double r8307 = r8306 * r8306;
        double r8308 = r8307 * r8306;
        double r8309 = r8306 * r8308;
        double r8310 = -r8301;
        double r8311 = 0.0;
        double r8312 = /* ERROR: no complex support in C */;
        double r8313 = r8312 * r8306;
        double r8314 = r8306 * r8313;
        double r8315 = r8306 * r8314;
        double r8316 = r8309 + r8315;
        double r8317 = 5.0;
        double r8318 = /* ERROR: no complex support in C */;
        double r8319 = r8318 * r8306;
        double r8320 = r8319 * r8306;
        double r8321 = r8316 + r8320;
        double r8322 = 4.0;
        double r8323 = /* ERROR: no complex support in C */;
        double r8324 = r8306 * r8323;
        double r8325 = r8321 + r8324;
        double r8326 = 7.0;
        double r8327 = /* ERROR: no complex support in C */;
        double r8328 = r8325 + r8327;
        double r8329 = /* ERROR: no complex support in C */;
        return r8329;
}

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 r8330, r8331, r8332, r8333, r8334, r8335, r8336, r8337, r8338, r8339, r8340, r8341, r8342, r8343, r8344, r8345, r8346, r8347, r8348, r8349, r8350, r8351, r8352, r8353, r8354, r8355, r8356, r8357, r8358, r8359, r8360;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1104);
        mpfr_init_set_str(r8330, "1", 10, MPFR_RNDN);
        mpfr_init(r8331);
        mpfr_init_set_str(r8332, "2", 10, MPFR_RNDN);
        mpfr_init(r8333);
        mpfr_init_set_str(r8334, "3", 10, MPFR_RNDN);
        mpfr_init(r8335);
        mpfr_init(r8336);
        mpfr_init(r8337);
        mpfr_init(r8338);
        mpfr_init(r8339);
        mpfr_init(r8340);
        mpfr_init(r8341);
        mpfr_init_set_str(r8342, "0", 10, MPFR_RNDN);
        mpfr_init(r8343);
        mpfr_init(r8344);
        mpfr_init(r8345);
        mpfr_init(r8346);
        mpfr_init(r8347);
        mpfr_init_set_str(r8348, "5", 10, MPFR_RNDN);
        mpfr_init(r8349);
        mpfr_init(r8350);
        mpfr_init(r8351);
        mpfr_init(r8352);
        mpfr_init_set_str(r8353, "4", 10, MPFR_RNDN);
        mpfr_init(r8354);
        mpfr_init(r8355);
        mpfr_init(r8356);
        mpfr_init_set_str(r8357, "7", 10, MPFR_RNDN);
        mpfr_init(r8358);
        mpfr_init(r8359);
        mpfr_init(r8360);
}

double f_im() {
        ;
        mpfr_neg(r8331, r8330, MPFR_RNDN);
        ;
        mpfr_div(r8333, r8331, r8332, MPFR_RNDN);
        ;
        mpfr_sqrt(r8335, r8334, MPFR_RNDN);
        mpfr_div(r8336, r8335, r8332, MPFR_RNDN);
        /* ERROR: no complex support in C */;
        /* ERROR: no complex support in C */;
        /* ERROR: no complex support in C */;
        /* ERROR: no complex support in C */;
        mpfr_neg(r8341, r8332, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        /* ERROR: no complex support in C */;
        /* ERROR: no complex support in C */;
        /* ERROR: no complex support in C */;
        /* ERROR: no complex support in C */;
        ;
        /* ERROR: no complex support in C */;
        /* ERROR: no complex support in C */;
        /* ERROR: no complex support in C */;
        /* ERROR: no complex support in C */;
        ;
        /* ERROR: no complex support in C */;
        /* ERROR: no complex support in C */;
        /* ERROR: no complex support in C */;
        ;
        /* ERROR: no complex support in C */;
        /* ERROR: no complex support in C */;
        /* ERROR: no complex support in C */;
        return mpfr_get_d(r8360, MPFR_RNDN);
}

static mpfr_t r8361, r8362, r8363, r8364, r8365, r8366, r8367, r8368, r8369, r8370, r8371, r8372, r8373, r8374, r8375, r8376, r8377, r8378, r8379, r8380, r8381, r8382, r8383, r8384, r8385, r8386, r8387, r8388, r8389, r8390, r8391;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1104);
        mpfr_init_set_str(r8361, "1", 10, MPFR_RNDN);
        mpfr_init(r8362);
        mpfr_init_set_str(r8363, "2", 10, MPFR_RNDN);
        mpfr_init(r8364);
        mpfr_init_set_str(r8365, "3", 10, MPFR_RNDN);
        mpfr_init(r8366);
        mpfr_init(r8367);
        mpfr_init(r8368);
        mpfr_init(r8369);
        mpfr_init(r8370);
        mpfr_init(r8371);
        mpfr_init(r8372);
        mpfr_init_set_str(r8373, "0", 10, MPFR_RNDN);
        mpfr_init(r8374);
        mpfr_init(r8375);
        mpfr_init(r8376);
        mpfr_init(r8377);
        mpfr_init(r8378);
        mpfr_init_set_str(r8379, "5", 10, MPFR_RNDN);
        mpfr_init(r8380);
        mpfr_init(r8381);
        mpfr_init(r8382);
        mpfr_init(r8383);
        mpfr_init_set_str(r8384, "4", 10, MPFR_RNDN);
        mpfr_init(r8385);
        mpfr_init(r8386);
        mpfr_init(r8387);
        mpfr_init_set_str(r8388, "7", 10, MPFR_RNDN);
        mpfr_init(r8389);
        mpfr_init(r8390);
        mpfr_init(r8391);
}

double f_fm() {
        ;
        mpfr_neg(r8362, r8361, MPFR_RNDN);
        ;
        mpfr_div(r8364, r8362, r8363, MPFR_RNDN);
        ;
        mpfr_sqrt(r8366, r8365, MPFR_RNDN);
        mpfr_div(r8367, r8366, r8363, MPFR_RNDN);
        /* ERROR: no complex support in C */;
        /* ERROR: no complex support in C */;
        /* ERROR: no complex support in C */;
        /* ERROR: no complex support in C */;
        mpfr_neg(r8372, r8363, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        /* ERROR: no complex support in C */;
        /* ERROR: no complex support in C */;
        /* ERROR: no complex support in C */;
        /* ERROR: no complex support in C */;
        ;
        /* ERROR: no complex support in C */;
        /* ERROR: no complex support in C */;
        /* ERROR: no complex support in C */;
        /* ERROR: no complex support in C */;
        ;
        /* ERROR: no complex support in C */;
        /* ERROR: no complex support in C */;
        /* ERROR: no complex support in C */;
        ;
        /* ERROR: no complex support in C */;
        /* ERROR: no complex support in C */;
        /* ERROR: no complex support in C */;
        return mpfr_get_d(r8391, MPFR_RNDN);
}

static mpfr_t r8392, r8393, r8394, r8395, r8396, r8397, r8398, r8399, r8400, r8401, r8402, r8403, r8404, r8405, r8406, r8407, r8408, r8409, r8410, r8411, r8412, r8413, r8414, r8415, r8416, r8417, r8418, r8419, r8420, r8421, r8422;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1104);
        mpfr_init_set_str(r8392, "1", 10, MPFR_RNDN);
        mpfr_init(r8393);
        mpfr_init_set_str(r8394, "2", 10, MPFR_RNDN);
        mpfr_init(r8395);
        mpfr_init_set_str(r8396, "3", 10, MPFR_RNDN);
        mpfr_init(r8397);
        mpfr_init(r8398);
        mpfr_init(r8399);
        mpfr_init(r8400);
        mpfr_init(r8401);
        mpfr_init(r8402);
        mpfr_init(r8403);
        mpfr_init_set_str(r8404, "0", 10, MPFR_RNDN);
        mpfr_init(r8405);
        mpfr_init(r8406);
        mpfr_init(r8407);
        mpfr_init(r8408);
        mpfr_init(r8409);
        mpfr_init_set_str(r8410, "5", 10, MPFR_RNDN);
        mpfr_init(r8411);
        mpfr_init(r8412);
        mpfr_init(r8413);
        mpfr_init(r8414);
        mpfr_init_set_str(r8415, "4", 10, MPFR_RNDN);
        mpfr_init(r8416);
        mpfr_init(r8417);
        mpfr_init(r8418);
        mpfr_init_set_str(r8419, "7", 10, MPFR_RNDN);
        mpfr_init(r8420);
        mpfr_init(r8421);
        mpfr_init(r8422);
}

double f_dm() {
        ;
        mpfr_neg(r8393, r8392, MPFR_RNDN);
        ;
        mpfr_div(r8395, r8393, r8394, MPFR_RNDN);
        ;
        mpfr_sqrt(r8397, r8396, MPFR_RNDN);
        mpfr_div(r8398, r8397, r8394, MPFR_RNDN);
        /* ERROR: no complex support in C */;
        /* ERROR: no complex support in C */;
        /* ERROR: no complex support in C */;
        /* ERROR: no complex support in C */;
        mpfr_neg(r8403, r8394, MPFR_RNDN);
        ;
        /* ERROR: no complex support in C */;
        /* ERROR: no complex support in C */;
        /* ERROR: no complex support in C */;
        /* ERROR: no complex support in C */;
        /* ERROR: no complex support in C */;
        ;
        /* ERROR: no complex support in C */;
        /* ERROR: no complex support in C */;
        /* ERROR: no complex support in C */;
        /* ERROR: no complex support in C */;
        ;
        /* ERROR: no complex support in C */;
        /* ERROR: no complex support in C */;
        /* ERROR: no complex support in C */;
        ;
        /* ERROR: no complex support in C */;
        /* ERROR: no complex support in C */;
        /* ERROR: no complex support in C */;
        return mpfr_get_d(r8422, MPFR_RNDN);
}

