#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 r8312 = 1.0f;
        float r8313 = -r8312;
        float r8314 = 2.0f;
        float r8315 = r8313 / r8314;
        float r8316 = 3.0f;
        float r8317 = sqrt(r8316);
        float r8318 = r8317 / r8314;
        float r8319 = /* ERROR: no complex support in C */;
        float r8320 = r8319 * r8319;
        float r8321 = r8320 * r8319;
        float r8322 = r8321 * r8319;
        float r8323 = -r8314;
        float r8324 = 0.0f;
        float r8325 = /* ERROR: no complex support in C */;
        float r8326 = r8325 * r8319;
        float r8327 = r8326 * r8319;
        float r8328 = r8327 * r8319;
        float r8329 = r8322 + r8328;
        float r8330 = 5.0f;
        float r8331 = /* ERROR: no complex support in C */;
        float r8332 = r8331 * r8319;
        float r8333 = r8332 * r8319;
        float r8334 = r8329 + r8333;
        float r8335 = 4.0f;
        float r8336 = /* ERROR: no complex support in C */;
        float r8337 = r8336 * r8319;
        float r8338 = r8334 + r8337;
        float r8339 = 7.0f;
        float r8340 = /* ERROR: no complex support in C */;
        float r8341 = r8338 + r8340;
        float r8342 = /* ERROR: no complex support in C */;
        return r8342;
}

double f_id() {
        double r8343 = 1.0;
        double r8344 = -r8343;
        double r8345 = 2.0;
        double r8346 = r8344 / r8345;
        double r8347 = 3.0;
        double r8348 = sqrt(r8347);
        double r8349 = r8348 / r8345;
        double r8350 = /* ERROR: no complex support in C */;
        double r8351 = r8350 * r8350;
        double r8352 = r8351 * r8350;
        double r8353 = r8352 * r8350;
        double r8354 = -r8345;
        double r8355 = 0.0;
        double r8356 = /* ERROR: no complex support in C */;
        double r8357 = r8356 * r8350;
        double r8358 = r8357 * r8350;
        double r8359 = r8358 * r8350;
        double r8360 = r8353 + r8359;
        double r8361 = 5.0;
        double r8362 = /* ERROR: no complex support in C */;
        double r8363 = r8362 * r8350;
        double r8364 = r8363 * r8350;
        double r8365 = r8360 + r8364;
        double r8366 = 4.0;
        double r8367 = /* ERROR: no complex support in C */;
        double r8368 = r8367 * r8350;
        double r8369 = r8365 + r8368;
        double r8370 = 7.0;
        double r8371 = /* ERROR: no complex support in C */;
        double r8372 = r8369 + r8371;
        double r8373 = /* ERROR: no complex support in C */;
        return r8373;
}


double f_of() {
        float r8374 = 1.0f;
        float r8375 = -r8374;
        float r8376 = 2.0f;
        float r8377 = r8375 / r8376;
        float r8378 = 3.0f;
        float r8379 = sqrt(r8378);
        float r8380 = r8379 / r8376;
        float r8381 = /* ERROR: no complex support in C */;
        float r8382 = r8381 * r8381;
        float r8383 = r8382 * r8381;
        float r8384 = r8381 * r8383;
        float r8385 = -r8376;
        float r8386 = 0.0f;
        float r8387 = /* ERROR: no complex support in C */;
        float r8388 = r8387 * r8381;
        float r8389 = r8381 * r8388;
        float r8390 = r8381 * r8389;
        float r8391 = r8384 + r8390;
        float r8392 = 5.0f;
        float r8393 = /* ERROR: no complex support in C */;
        float r8394 = r8393 * r8381;
        float r8395 = r8394 * r8381;
        float r8396 = r8391 + r8395;
        float r8397 = 4.0f;
        float r8398 = /* ERROR: no complex support in C */;
        float r8399 = r8381 * r8398;
        float r8400 = r8396 + r8399;
        float r8401 = 7.0f;
        float r8402 = /* ERROR: no complex support in C */;
        float r8403 = r8400 + r8402;
        float r8404 = /* ERROR: no complex support in C */;
        return r8404;
}

double f_od() {
        double r8405 = 1.0;
        double r8406 = -r8405;
        double r8407 = 2.0;
        double r8408 = r8406 / r8407;
        double r8409 = 3.0;
        double r8410 = sqrt(r8409);
        double r8411 = r8410 / r8407;
        double r8412 = /* ERROR: no complex support in C */;
        double r8413 = r8412 * r8412;
        double r8414 = r8413 * r8412;
        double r8415 = r8412 * r8414;
        double r8416 = -r8407;
        double r8417 = 0.0;
        double r8418 = /* ERROR: no complex support in C */;
        double r8419 = r8418 * r8412;
        double r8420 = r8412 * r8419;
        double r8421 = r8412 * r8420;
        double r8422 = r8415 + r8421;
        double r8423 = 5.0;
        double r8424 = /* ERROR: no complex support in C */;
        double r8425 = r8424 * r8412;
        double r8426 = r8425 * r8412;
        double r8427 = r8422 + r8426;
        double r8428 = 4.0;
        double r8429 = /* ERROR: no complex support in C */;
        double r8430 = r8412 * r8429;
        double r8431 = r8427 + r8430;
        double r8432 = 7.0;
        double r8433 = /* ERROR: no complex support in C */;
        double r8434 = r8431 + r8433;
        double r8435 = /* ERROR: no complex support in C */;
        return r8435;
}

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 r8436, r8437, r8438, r8439, r8440, r8441, r8442, r8443, r8444, r8445, r8446, r8447, r8448, r8449, r8450, r8451, r8452, r8453, r8454, r8455, r8456, r8457, r8458, r8459, r8460, r8461, r8462, r8463, r8464, r8465, r8466;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1104);
        mpfr_init_set_str(r8436, "1", 10, MPFR_RNDN);
        mpfr_init(r8437);
        mpfr_init_set_str(r8438, "2", 10, MPFR_RNDN);
        mpfr_init(r8439);
        mpfr_init_set_str(r8440, "3", 10, MPFR_RNDN);
        mpfr_init(r8441);
        mpfr_init(r8442);
        mpfr_init(r8443);
        mpfr_init(r8444);
        mpfr_init(r8445);
        mpfr_init(r8446);
        mpfr_init(r8447);
        mpfr_init_set_str(r8448, "0", 10, MPFR_RNDN);
        mpfr_init(r8449);
        mpfr_init(r8450);
        mpfr_init(r8451);
        mpfr_init(r8452);
        mpfr_init(r8453);
        mpfr_init_set_str(r8454, "5", 10, MPFR_RNDN);
        mpfr_init(r8455);
        mpfr_init(r8456);
        mpfr_init(r8457);
        mpfr_init(r8458);
        mpfr_init_set_str(r8459, "4", 10, MPFR_RNDN);
        mpfr_init(r8460);
        mpfr_init(r8461);
        mpfr_init(r8462);
        mpfr_init_set_str(r8463, "7", 10, MPFR_RNDN);
        mpfr_init(r8464);
        mpfr_init(r8465);
        mpfr_init(r8466);
}

double f_im() {
        ;
        mpfr_neg(r8437, r8436, MPFR_RNDN);
        ;
        mpfr_div(r8439, r8437, r8438, MPFR_RNDN);
        ;
        mpfr_sqrt(r8441, r8440, MPFR_RNDN);
        mpfr_div(r8442, r8441, r8438, 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(r8447, r8438, 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(r8466, MPFR_RNDN);
}

static mpfr_t r8467, r8468, r8469, r8470, r8471, r8472, r8473, r8474, r8475, r8476, r8477, r8478, r8479, r8480, r8481, r8482, r8483, r8484, r8485, r8486, r8487, r8488, r8489, r8490, r8491, r8492, r8493, r8494, r8495, r8496, r8497;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1104);
        mpfr_init_set_str(r8467, "1", 10, MPFR_RNDN);
        mpfr_init(r8468);
        mpfr_init_set_str(r8469, "2", 10, MPFR_RNDN);
        mpfr_init(r8470);
        mpfr_init_set_str(r8471, "3", 10, MPFR_RNDN);
        mpfr_init(r8472);
        mpfr_init(r8473);
        mpfr_init(r8474);
        mpfr_init(r8475);
        mpfr_init(r8476);
        mpfr_init(r8477);
        mpfr_init(r8478);
        mpfr_init_set_str(r8479, "0", 10, MPFR_RNDN);
        mpfr_init(r8480);
        mpfr_init(r8481);
        mpfr_init(r8482);
        mpfr_init(r8483);
        mpfr_init(r8484);
        mpfr_init_set_str(r8485, "5", 10, MPFR_RNDN);
        mpfr_init(r8486);
        mpfr_init(r8487);
        mpfr_init(r8488);
        mpfr_init(r8489);
        mpfr_init_set_str(r8490, "4", 10, MPFR_RNDN);
        mpfr_init(r8491);
        mpfr_init(r8492);
        mpfr_init(r8493);
        mpfr_init_set_str(r8494, "7", 10, MPFR_RNDN);
        mpfr_init(r8495);
        mpfr_init(r8496);
        mpfr_init(r8497);
}

double f_fm() {
        ;
        mpfr_neg(r8468, r8467, MPFR_RNDN);
        ;
        mpfr_div(r8470, r8468, r8469, MPFR_RNDN);
        ;
        mpfr_sqrt(r8472, r8471, MPFR_RNDN);
        mpfr_div(r8473, r8472, r8469, 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(r8478, r8469, 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(r8497, MPFR_RNDN);
}

static mpfr_t r8498, r8499, r8500, r8501, r8502, r8503, r8504, r8505, r8506, r8507, r8508, r8509, r8510, r8511, r8512, r8513, r8514, r8515, r8516, r8517, r8518, r8519, r8520, r8521, r8522, r8523, r8524, r8525, r8526, r8527, r8528;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1104);
        mpfr_init_set_str(r8498, "1", 10, MPFR_RNDN);
        mpfr_init(r8499);
        mpfr_init_set_str(r8500, "2", 10, MPFR_RNDN);
        mpfr_init(r8501);
        mpfr_init_set_str(r8502, "3", 10, MPFR_RNDN);
        mpfr_init(r8503);
        mpfr_init(r8504);
        mpfr_init(r8505);
        mpfr_init(r8506);
        mpfr_init(r8507);
        mpfr_init(r8508);
        mpfr_init(r8509);
        mpfr_init_set_str(r8510, "0", 10, MPFR_RNDN);
        mpfr_init(r8511);
        mpfr_init(r8512);
        mpfr_init(r8513);
        mpfr_init(r8514);
        mpfr_init(r8515);
        mpfr_init_set_str(r8516, "5", 10, MPFR_RNDN);
        mpfr_init(r8517);
        mpfr_init(r8518);
        mpfr_init(r8519);
        mpfr_init(r8520);
        mpfr_init_set_str(r8521, "4", 10, MPFR_RNDN);
        mpfr_init(r8522);
        mpfr_init(r8523);
        mpfr_init(r8524);
        mpfr_init_set_str(r8525, "7", 10, MPFR_RNDN);
        mpfr_init(r8526);
        mpfr_init(r8527);
        mpfr_init(r8528);
}

double f_dm() {
        ;
        mpfr_neg(r8499, r8498, MPFR_RNDN);
        ;
        mpfr_div(r8501, r8499, r8500, MPFR_RNDN);
        ;
        mpfr_sqrt(r8503, r8502, MPFR_RNDN);
        mpfr_div(r8504, r8503, r8500, 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(r8509, r8500, 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(r8528, MPFR_RNDN);
}

