#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 r8218 = 1.0f;
        float r8219 = -r8218;
        float r8220 = 2.0f;
        float r8221 = r8219 / r8220;
        float r8222 = 3.0f;
        float r8223 = sqrt(r8222);
        float r8224 = r8223 / r8220;
        float r8225 = /* ERROR: no complex support in C */;
        float r8226 = r8225 * r8225;
        float r8227 = r8226 * r8225;
        float r8228 = r8227 * r8225;
        float r8229 = -r8220;
        float r8230 = 0.0f;
        float r8231 = /* ERROR: no complex support in C */;
        float r8232 = r8231 * r8225;
        float r8233 = r8232 * r8225;
        float r8234 = r8233 * r8225;
        float r8235 = r8228 + r8234;
        float r8236 = 5.0f;
        float r8237 = /* ERROR: no complex support in C */;
        float r8238 = r8237 * r8225;
        float r8239 = r8238 * r8225;
        float r8240 = r8235 + r8239;
        float r8241 = 4.0f;
        float r8242 = /* ERROR: no complex support in C */;
        float r8243 = r8242 * r8225;
        float r8244 = r8240 + r8243;
        float r8245 = 7.0f;
        float r8246 = /* ERROR: no complex support in C */;
        float r8247 = r8244 + r8246;
        float r8248 = /* ERROR: no complex support in C */;
        return r8248;
}

double f_id() {
        double r8249 = 1.0;
        double r8250 = -r8249;
        double r8251 = 2.0;
        double r8252 = r8250 / r8251;
        double r8253 = 3.0;
        double r8254 = sqrt(r8253);
        double r8255 = r8254 / r8251;
        double r8256 = /* ERROR: no complex support in C */;
        double r8257 = r8256 * r8256;
        double r8258 = r8257 * r8256;
        double r8259 = r8258 * r8256;
        double r8260 = -r8251;
        double r8261 = 0.0;
        double r8262 = /* ERROR: no complex support in C */;
        double r8263 = r8262 * r8256;
        double r8264 = r8263 * r8256;
        double r8265 = r8264 * r8256;
        double r8266 = r8259 + r8265;
        double r8267 = 5.0;
        double r8268 = /* ERROR: no complex support in C */;
        double r8269 = r8268 * r8256;
        double r8270 = r8269 * r8256;
        double r8271 = r8266 + r8270;
        double r8272 = 4.0;
        double r8273 = /* ERROR: no complex support in C */;
        double r8274 = r8273 * r8256;
        double r8275 = r8271 + r8274;
        double r8276 = 7.0;
        double r8277 = /* ERROR: no complex support in C */;
        double r8278 = r8275 + r8277;
        double r8279 = /* ERROR: no complex support in C */;
        return r8279;
}


double f_of() {
        float r8280 = 1.0f;
        float r8281 = -r8280;
        float r8282 = 2.0f;
        float r8283 = r8281 / r8282;
        float r8284 = 3.0f;
        float r8285 = sqrt(r8284);
        float r8286 = r8285 / r8282;
        float r8287 = /* ERROR: no complex support in C */;
        float r8288 = r8287 * r8287;
        float r8289 = r8288 * r8287;
        float r8290 = r8287 * r8289;
        float r8291 = -r8282;
        float r8292 = 0.0f;
        float r8293 = /* ERROR: no complex support in C */;
        float r8294 = r8293 * r8287;
        float r8295 = r8287 * r8294;
        float r8296 = r8287 * r8295;
        float r8297 = r8290 + r8296;
        float r8298 = 5.0f;
        float r8299 = /* ERROR: no complex support in C */;
        float r8300 = r8299 * r8287;
        float r8301 = r8300 * r8287;
        float r8302 = r8297 + r8301;
        float r8303 = 4.0f;
        float r8304 = /* ERROR: no complex support in C */;
        float r8305 = r8287 * r8304;
        float r8306 = r8302 + r8305;
        float r8307 = 7.0f;
        float r8308 = /* ERROR: no complex support in C */;
        float r8309 = r8306 + r8308;
        float r8310 = /* ERROR: no complex support in C */;
        return r8310;
}

double f_od() {
        double r8311 = 1.0;
        double r8312 = -r8311;
        double r8313 = 2.0;
        double r8314 = r8312 / r8313;
        double r8315 = 3.0;
        double r8316 = sqrt(r8315);
        double r8317 = r8316 / r8313;
        double r8318 = /* ERROR: no complex support in C */;
        double r8319 = r8318 * r8318;
        double r8320 = r8319 * r8318;
        double r8321 = r8318 * r8320;
        double r8322 = -r8313;
        double r8323 = 0.0;
        double r8324 = /* ERROR: no complex support in C */;
        double r8325 = r8324 * r8318;
        double r8326 = r8318 * r8325;
        double r8327 = r8318 * r8326;
        double r8328 = r8321 + r8327;
        double r8329 = 5.0;
        double r8330 = /* ERROR: no complex support in C */;
        double r8331 = r8330 * r8318;
        double r8332 = r8331 * r8318;
        double r8333 = r8328 + r8332;
        double r8334 = 4.0;
        double r8335 = /* ERROR: no complex support in C */;
        double r8336 = r8318 * r8335;
        double r8337 = r8333 + r8336;
        double r8338 = 7.0;
        double r8339 = /* ERROR: no complex support in C */;
        double r8340 = r8337 + r8339;
        double r8341 = /* ERROR: no complex support in C */;
        return r8341;
}

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 r8342, r8343, r8344, r8345, r8346, r8347, r8348, r8349, r8350, r8351, r8352, r8353, r8354, r8355, r8356, r8357, r8358, r8359, r8360, r8361, r8362, r8363, r8364, r8365, r8366, r8367, r8368, r8369, r8370, r8371, r8372;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1104);
        mpfr_init_set_str(r8342, "1", 10, MPFR_RNDN);
        mpfr_init(r8343);
        mpfr_init_set_str(r8344, "2", 10, MPFR_RNDN);
        mpfr_init(r8345);
        mpfr_init_set_str(r8346, "3", 10, MPFR_RNDN);
        mpfr_init(r8347);
        mpfr_init(r8348);
        mpfr_init(r8349);
        mpfr_init(r8350);
        mpfr_init(r8351);
        mpfr_init(r8352);
        mpfr_init(r8353);
        mpfr_init_set_str(r8354, "0", 10, MPFR_RNDN);
        mpfr_init(r8355);
        mpfr_init(r8356);
        mpfr_init(r8357);
        mpfr_init(r8358);
        mpfr_init(r8359);
        mpfr_init_set_str(r8360, "5", 10, MPFR_RNDN);
        mpfr_init(r8361);
        mpfr_init(r8362);
        mpfr_init(r8363);
        mpfr_init(r8364);
        mpfr_init_set_str(r8365, "4", 10, MPFR_RNDN);
        mpfr_init(r8366);
        mpfr_init(r8367);
        mpfr_init(r8368);
        mpfr_init_set_str(r8369, "7", 10, MPFR_RNDN);
        mpfr_init(r8370);
        mpfr_init(r8371);
        mpfr_init(r8372);
}

double f_im() {
        ;
        mpfr_neg(r8343, r8342, MPFR_RNDN);
        ;
        mpfr_div(r8345, r8343, r8344, MPFR_RNDN);
        ;
        mpfr_sqrt(r8347, r8346, MPFR_RNDN);
        mpfr_div(r8348, r8347, r8344, 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(r8353, r8344, 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(r8372, MPFR_RNDN);
}

static mpfr_t r8373, r8374, r8375, r8376, r8377, r8378, r8379, r8380, r8381, r8382, r8383, r8384, r8385, r8386, r8387, r8388, r8389, r8390, r8391, r8392, r8393, r8394, r8395, r8396, r8397, r8398, r8399, r8400, r8401, r8402, r8403;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1104);
        mpfr_init_set_str(r8373, "1", 10, MPFR_RNDN);
        mpfr_init(r8374);
        mpfr_init_set_str(r8375, "2", 10, MPFR_RNDN);
        mpfr_init(r8376);
        mpfr_init_set_str(r8377, "3", 10, MPFR_RNDN);
        mpfr_init(r8378);
        mpfr_init(r8379);
        mpfr_init(r8380);
        mpfr_init(r8381);
        mpfr_init(r8382);
        mpfr_init(r8383);
        mpfr_init(r8384);
        mpfr_init_set_str(r8385, "0", 10, MPFR_RNDN);
        mpfr_init(r8386);
        mpfr_init(r8387);
        mpfr_init(r8388);
        mpfr_init(r8389);
        mpfr_init(r8390);
        mpfr_init_set_str(r8391, "5", 10, MPFR_RNDN);
        mpfr_init(r8392);
        mpfr_init(r8393);
        mpfr_init(r8394);
        mpfr_init(r8395);
        mpfr_init_set_str(r8396, "4", 10, MPFR_RNDN);
        mpfr_init(r8397);
        mpfr_init(r8398);
        mpfr_init(r8399);
        mpfr_init_set_str(r8400, "7", 10, MPFR_RNDN);
        mpfr_init(r8401);
        mpfr_init(r8402);
        mpfr_init(r8403);
}

double f_fm() {
        ;
        mpfr_neg(r8374, r8373, MPFR_RNDN);
        ;
        mpfr_div(r8376, r8374, r8375, MPFR_RNDN);
        ;
        mpfr_sqrt(r8378, r8377, MPFR_RNDN);
        mpfr_div(r8379, r8378, r8375, 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(r8384, r8375, 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(r8403, MPFR_RNDN);
}

static mpfr_t r8404, r8405, r8406, r8407, r8408, r8409, r8410, r8411, r8412, r8413, r8414, r8415, r8416, r8417, r8418, r8419, r8420, r8421, r8422, r8423, r8424, r8425, r8426, r8427, r8428, r8429, r8430, r8431, r8432, r8433, r8434;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1104);
        mpfr_init_set_str(r8404, "1", 10, MPFR_RNDN);
        mpfr_init(r8405);
        mpfr_init_set_str(r8406, "2", 10, MPFR_RNDN);
        mpfr_init(r8407);
        mpfr_init_set_str(r8408, "3", 10, MPFR_RNDN);
        mpfr_init(r8409);
        mpfr_init(r8410);
        mpfr_init(r8411);
        mpfr_init(r8412);
        mpfr_init(r8413);
        mpfr_init(r8414);
        mpfr_init(r8415);
        mpfr_init_set_str(r8416, "0", 10, MPFR_RNDN);
        mpfr_init(r8417);
        mpfr_init(r8418);
        mpfr_init(r8419);
        mpfr_init(r8420);
        mpfr_init(r8421);
        mpfr_init_set_str(r8422, "5", 10, MPFR_RNDN);
        mpfr_init(r8423);
        mpfr_init(r8424);
        mpfr_init(r8425);
        mpfr_init(r8426);
        mpfr_init_set_str(r8427, "4", 10, MPFR_RNDN);
        mpfr_init(r8428);
        mpfr_init(r8429);
        mpfr_init(r8430);
        mpfr_init_set_str(r8431, "7", 10, MPFR_RNDN);
        mpfr_init(r8432);
        mpfr_init(r8433);
        mpfr_init(r8434);
}

double f_dm() {
        ;
        mpfr_neg(r8405, r8404, MPFR_RNDN);
        ;
        mpfr_div(r8407, r8405, r8406, MPFR_RNDN);
        ;
        mpfr_sqrt(r8409, r8408, MPFR_RNDN);
        mpfr_div(r8410, r8409, r8406, 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(r8415, r8406, 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(r8434, MPFR_RNDN);
}

