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

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


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

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

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 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, r8361, r8362, r8363;

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

double f_im() {
        ;
        mpfr_neg(r8334, r8333, MPFR_RNDN);
        ;
        mpfr_div(r8336, r8334, r8335, MPFR_RNDN);
        ;
        mpfr_sqrt(r8338, r8337, MPFR_RNDN);
        mpfr_div(r8339, r8338, r8335, 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(r8344, r8335, 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(r8363, MPFR_RNDN);
}

static mpfr_t 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, r8392, r8393, r8394;

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

double f_fm() {
        ;
        mpfr_neg(r8365, r8364, MPFR_RNDN);
        ;
        mpfr_div(r8367, r8365, r8366, MPFR_RNDN);
        ;
        mpfr_sqrt(r8369, r8368, MPFR_RNDN);
        mpfr_div(r8370, r8369, r8366, 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(r8375, r8366, 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(r8394, MPFR_RNDN);
}

static mpfr_t 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, r8423, r8424, r8425;

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

double f_dm() {
        ;
        mpfr_neg(r8396, r8395, MPFR_RNDN);
        ;
        mpfr_div(r8398, r8396, r8397, MPFR_RNDN);
        ;
        mpfr_sqrt(r8400, r8399, MPFR_RNDN);
        mpfr_div(r8401, r8400, r8397, 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(r8406, r8397, 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(r8425, MPFR_RNDN);
}

