#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 r8328 = 1.0f;
        float r8329 = -r8328;
        float r8330 = 2.0f;
        float r8331 = r8329 / r8330;
        float r8332 = 3.0f;
        float r8333 = sqrt(r8332);
        float r8334 = r8333 / r8330;
        float r8335 = /* ERROR: no complex support in C */;
        float r8336 = r8335 * r8335;
        float r8337 = r8336 * r8335;
        float r8338 = r8337 * r8335;
        float r8339 = -r8330;
        float r8340 = 0.0f;
        float r8341 = /* ERROR: no complex support in C */;
        float r8342 = r8341 * r8335;
        float r8343 = r8342 * r8335;
        float r8344 = r8343 * r8335;
        float r8345 = r8338 + r8344;
        float r8346 = 5.0f;
        float r8347 = /* ERROR: no complex support in C */;
        float r8348 = r8347 * r8335;
        float r8349 = r8348 * r8335;
        float r8350 = r8345 + r8349;
        float r8351 = 4.0f;
        float r8352 = /* ERROR: no complex support in C */;
        float r8353 = r8352 * r8335;
        float r8354 = r8350 + r8353;
        float r8355 = 7.0f;
        float r8356 = /* ERROR: no complex support in C */;
        float r8357 = r8354 + r8356;
        float r8358 = /* ERROR: no complex support in C */;
        return r8358;
}

double f_id() {
        double r8359 = 1.0;
        double r8360 = -r8359;
        double r8361 = 2.0;
        double r8362 = r8360 / r8361;
        double r8363 = 3.0;
        double r8364 = sqrt(r8363);
        double r8365 = r8364 / r8361;
        double r8366 = /* ERROR: no complex support in C */;
        double r8367 = r8366 * r8366;
        double r8368 = r8367 * r8366;
        double r8369 = r8368 * r8366;
        double r8370 = -r8361;
        double r8371 = 0.0;
        double r8372 = /* ERROR: no complex support in C */;
        double r8373 = r8372 * r8366;
        double r8374 = r8373 * r8366;
        double r8375 = r8374 * r8366;
        double r8376 = r8369 + r8375;
        double r8377 = 5.0;
        double r8378 = /* ERROR: no complex support in C */;
        double r8379 = r8378 * r8366;
        double r8380 = r8379 * r8366;
        double r8381 = r8376 + r8380;
        double r8382 = 4.0;
        double r8383 = /* ERROR: no complex support in C */;
        double r8384 = r8383 * r8366;
        double r8385 = r8381 + r8384;
        double r8386 = 7.0;
        double r8387 = /* ERROR: no complex support in C */;
        double r8388 = r8385 + r8387;
        double r8389 = /* ERROR: no complex support in C */;
        return r8389;
}


double f_of() {
        float r8390 = 1.0f;
        float r8391 = -r8390;
        float r8392 = 2.0f;
        float r8393 = r8391 / r8392;
        float r8394 = 3.0f;
        float r8395 = sqrt(r8394);
        float r8396 = r8395 / r8392;
        float r8397 = /* ERROR: no complex support in C */;
        float r8398 = r8397 * r8397;
        float r8399 = r8398 * r8397;
        float r8400 = r8397 * r8399;
        float r8401 = -r8392;
        float r8402 = 0.0f;
        float r8403 = /* ERROR: no complex support in C */;
        float r8404 = r8403 * r8397;
        float r8405 = r8397 * r8404;
        float r8406 = r8397 * r8405;
        float r8407 = r8400 + r8406;
        float r8408 = 5.0f;
        float r8409 = /* ERROR: no complex support in C */;
        float r8410 = r8409 * r8397;
        float r8411 = r8410 * r8397;
        float r8412 = r8407 + r8411;
        float r8413 = 4.0f;
        float r8414 = /* ERROR: no complex support in C */;
        float r8415 = r8397 * r8414;
        float r8416 = r8412 + r8415;
        float r8417 = 7.0f;
        float r8418 = /* ERROR: no complex support in C */;
        float r8419 = r8416 + r8418;
        float r8420 = /* ERROR: no complex support in C */;
        return r8420;
}

double f_od() {
        double r8421 = 1.0;
        double r8422 = -r8421;
        double r8423 = 2.0;
        double r8424 = r8422 / r8423;
        double r8425 = 3.0;
        double r8426 = sqrt(r8425);
        double r8427 = r8426 / r8423;
        double r8428 = /* ERROR: no complex support in C */;
        double r8429 = r8428 * r8428;
        double r8430 = r8429 * r8428;
        double r8431 = r8428 * r8430;
        double r8432 = -r8423;
        double r8433 = 0.0;
        double r8434 = /* ERROR: no complex support in C */;
        double r8435 = r8434 * r8428;
        double r8436 = r8428 * r8435;
        double r8437 = r8428 * r8436;
        double r8438 = r8431 + r8437;
        double r8439 = 5.0;
        double r8440 = /* ERROR: no complex support in C */;
        double r8441 = r8440 * r8428;
        double r8442 = r8441 * r8428;
        double r8443 = r8438 + r8442;
        double r8444 = 4.0;
        double r8445 = /* ERROR: no complex support in C */;
        double r8446 = r8428 * r8445;
        double r8447 = r8443 + r8446;
        double r8448 = 7.0;
        double r8449 = /* ERROR: no complex support in C */;
        double r8450 = r8447 + r8449;
        double r8451 = /* ERROR: no complex support in C */;
        return r8451;
}

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 r8452, r8453, r8454, r8455, r8456, r8457, r8458, r8459, r8460, r8461, r8462, r8463, r8464, r8465, r8466, r8467, r8468, r8469, r8470, r8471, r8472, r8473, r8474, r8475, r8476, r8477, r8478, r8479, r8480, r8481, r8482;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1104);
        mpfr_init_set_str(r8452, "1", 10, MPFR_RNDN);
        mpfr_init(r8453);
        mpfr_init_set_str(r8454, "2", 10, MPFR_RNDN);
        mpfr_init(r8455);
        mpfr_init_set_str(r8456, "3", 10, MPFR_RNDN);
        mpfr_init(r8457);
        mpfr_init(r8458);
        mpfr_init(r8459);
        mpfr_init(r8460);
        mpfr_init(r8461);
        mpfr_init(r8462);
        mpfr_init(r8463);
        mpfr_init_set_str(r8464, "0", 10, MPFR_RNDN);
        mpfr_init(r8465);
        mpfr_init(r8466);
        mpfr_init(r8467);
        mpfr_init(r8468);
        mpfr_init(r8469);
        mpfr_init_set_str(r8470, "5", 10, MPFR_RNDN);
        mpfr_init(r8471);
        mpfr_init(r8472);
        mpfr_init(r8473);
        mpfr_init(r8474);
        mpfr_init_set_str(r8475, "4", 10, MPFR_RNDN);
        mpfr_init(r8476);
        mpfr_init(r8477);
        mpfr_init(r8478);
        mpfr_init_set_str(r8479, "7", 10, MPFR_RNDN);
        mpfr_init(r8480);
        mpfr_init(r8481);
        mpfr_init(r8482);
}

double f_im() {
        ;
        mpfr_neg(r8453, r8452, MPFR_RNDN);
        ;
        mpfr_div(r8455, r8453, r8454, MPFR_RNDN);
        ;
        mpfr_sqrt(r8457, r8456, MPFR_RNDN);
        mpfr_div(r8458, r8457, r8454, 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(r8463, r8454, 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(r8482, MPFR_RNDN);
}

static mpfr_t r8483, r8484, r8485, r8486, r8487, r8488, r8489, r8490, r8491, r8492, r8493, r8494, r8495, r8496, r8497, r8498, r8499, r8500, r8501, r8502, r8503, r8504, r8505, r8506, r8507, r8508, r8509, r8510, r8511, r8512, r8513;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1104);
        mpfr_init_set_str(r8483, "1", 10, MPFR_RNDN);
        mpfr_init(r8484);
        mpfr_init_set_str(r8485, "2", 10, MPFR_RNDN);
        mpfr_init(r8486);
        mpfr_init_set_str(r8487, "3", 10, MPFR_RNDN);
        mpfr_init(r8488);
        mpfr_init(r8489);
        mpfr_init(r8490);
        mpfr_init(r8491);
        mpfr_init(r8492);
        mpfr_init(r8493);
        mpfr_init(r8494);
        mpfr_init_set_str(r8495, "0", 10, MPFR_RNDN);
        mpfr_init(r8496);
        mpfr_init(r8497);
        mpfr_init(r8498);
        mpfr_init(r8499);
        mpfr_init(r8500);
        mpfr_init_set_str(r8501, "5", 10, MPFR_RNDN);
        mpfr_init(r8502);
        mpfr_init(r8503);
        mpfr_init(r8504);
        mpfr_init(r8505);
        mpfr_init_set_str(r8506, "4", 10, MPFR_RNDN);
        mpfr_init(r8507);
        mpfr_init(r8508);
        mpfr_init(r8509);
        mpfr_init_set_str(r8510, "7", 10, MPFR_RNDN);
        mpfr_init(r8511);
        mpfr_init(r8512);
        mpfr_init(r8513);
}

double f_fm() {
        ;
        mpfr_neg(r8484, r8483, MPFR_RNDN);
        ;
        mpfr_div(r8486, r8484, r8485, MPFR_RNDN);
        ;
        mpfr_sqrt(r8488, r8487, MPFR_RNDN);
        mpfr_div(r8489, r8488, r8485, 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(r8494, r8485, 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(r8513, MPFR_RNDN);
}

static mpfr_t r8514, r8515, r8516, r8517, r8518, r8519, r8520, r8521, r8522, r8523, r8524, r8525, r8526, r8527, r8528, r8529, r8530, r8531, r8532, r8533, r8534, r8535, r8536, r8537, r8538, r8539, r8540, r8541, r8542, r8543, r8544;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1104);
        mpfr_init_set_str(r8514, "1", 10, MPFR_RNDN);
        mpfr_init(r8515);
        mpfr_init_set_str(r8516, "2", 10, MPFR_RNDN);
        mpfr_init(r8517);
        mpfr_init_set_str(r8518, "3", 10, MPFR_RNDN);
        mpfr_init(r8519);
        mpfr_init(r8520);
        mpfr_init(r8521);
        mpfr_init(r8522);
        mpfr_init(r8523);
        mpfr_init(r8524);
        mpfr_init(r8525);
        mpfr_init_set_str(r8526, "0", 10, MPFR_RNDN);
        mpfr_init(r8527);
        mpfr_init(r8528);
        mpfr_init(r8529);
        mpfr_init(r8530);
        mpfr_init(r8531);
        mpfr_init_set_str(r8532, "5", 10, MPFR_RNDN);
        mpfr_init(r8533);
        mpfr_init(r8534);
        mpfr_init(r8535);
        mpfr_init(r8536);
        mpfr_init_set_str(r8537, "4", 10, MPFR_RNDN);
        mpfr_init(r8538);
        mpfr_init(r8539);
        mpfr_init(r8540);
        mpfr_init_set_str(r8541, "7", 10, MPFR_RNDN);
        mpfr_init(r8542);
        mpfr_init(r8543);
        mpfr_init(r8544);
}

double f_dm() {
        ;
        mpfr_neg(r8515, r8514, MPFR_RNDN);
        ;
        mpfr_div(r8517, r8515, r8516, MPFR_RNDN);
        ;
        mpfr_sqrt(r8519, r8518, MPFR_RNDN);
        mpfr_div(r8520, r8519, r8516, 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(r8525, r8516, 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(r8544, MPFR_RNDN);
}

