#include <tgmath.h>
#include <gmp.h>
#include <mpfr.h>
#include <stdio.h>
#include <stdbool.h>

char *name = "math.cube on complex, real part";

double f_if(float x_re, float x_im) {
        float r11469 = x_re;
        float r11470 = r11469 * r11469;
        float r11471 = x_im;
        float r11472 = r11471 * r11471;
        float r11473 = r11470 - r11472;
        float r11474 = r11473 * r11469;
        float r11475 = r11469 * r11471;
        float r11476 = r11471 * r11469;
        float r11477 = r11475 + r11476;
        float r11478 = r11477 * r11471;
        float r11479 = r11474 - r11478;
        return r11479;
}

double f_id(double x_re, double x_im) {
        double r11480 = x_re;
        double r11481 = r11480 * r11480;
        double r11482 = x_im;
        double r11483 = r11482 * r11482;
        double r11484 = r11481 - r11483;
        double r11485 = r11484 * r11480;
        double r11486 = r11480 * r11482;
        double r11487 = r11482 * r11480;
        double r11488 = r11486 + r11487;
        double r11489 = r11488 * r11482;
        double r11490 = r11485 - r11489;
        return r11490;
}


double f_of(float x_re, float x_im) {
        float r11491 = x_re;
        float r11492 = 3.0f;
        float r11493 = pow(r11491, r11492);
        float r11494 = x_im;
        float r11495 = r11494 * r11492;
        float r11496 = r11494 * r11491;
        float r11497 = r11495 * r11496;
        float r11498 = r11493 - r11497;
        return r11498;
}

double f_od(double x_re, double x_im) {
        double r11499 = x_re;
        double r11500 = 3.0;
        double r11501 = pow(r11499, r11500);
        double r11502 = x_im;
        double r11503 = r11502 * r11500;
        double r11504 = r11502 * r11499;
        double r11505 = r11503 * r11504;
        double r11506 = r11501 - r11505;
        return r11506;
}

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 r11507, r11508, r11509, r11510, r11511, r11512, r11513, r11514, r11515, r11516, r11517;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r11507);
        mpfr_init(r11508);
        mpfr_init(r11509);
        mpfr_init(r11510);
        mpfr_init(r11511);
        mpfr_init(r11512);
        mpfr_init(r11513);
        mpfr_init(r11514);
        mpfr_init(r11515);
        mpfr_init(r11516);
        mpfr_init(r11517);
}

double f_im(double x_re, double x_im) {
        mpfr_set_d(r11507, x_re, MPFR_RNDN);
        mpfr_mul(r11508, r11507, r11507, MPFR_RNDN);
        mpfr_set_d(r11509, x_im, MPFR_RNDN);
        mpfr_mul(r11510, r11509, r11509, MPFR_RNDN);
        mpfr_sub(r11511, r11508, r11510, MPFR_RNDN);
        mpfr_mul(r11512, r11511, r11507, MPFR_RNDN);
        mpfr_mul(r11513, r11507, r11509, MPFR_RNDN);
        mpfr_mul(r11514, r11509, r11507, MPFR_RNDN);
        mpfr_add(r11515, r11513, r11514, MPFR_RNDN);
        mpfr_mul(r11516, r11515, r11509, MPFR_RNDN);
        mpfr_sub(r11517, r11512, r11516, MPFR_RNDN);
        return mpfr_get_d(r11517, MPFR_RNDN);
}

static mpfr_t r11518, r11519, r11520, r11521, r11522, r11523, r11524, r11525;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init(r11518);
        mpfr_init_set_str(r11519, "3", 10, MPFR_RNDN);
        mpfr_init(r11520);
        mpfr_init(r11521);
        mpfr_init(r11522);
        mpfr_init(r11523);
        mpfr_init(r11524);
        mpfr_init(r11525);
}

double f_fm(double x_re, double x_im) {
        mpfr_set_d(r11518, x_re, MPFR_RNDN);
        ;
        mpfr_pow(r11520, r11518, r11519, MPFR_RNDN);
        mpfr_set_d(r11521, x_im, MPFR_RNDN);
        mpfr_mul(r11522, r11521, r11519, MPFR_RNDN);
        mpfr_mul(r11523, r11521, r11518, MPFR_RNDN);
        mpfr_mul(r11524, r11522, r11523, MPFR_RNDN);
        mpfr_sub(r11525, r11520, r11524, MPFR_RNDN);
        return mpfr_get_d(r11525, MPFR_RNDN);
}

static mpfr_t r11526, r11527, r11528, r11529, r11530, r11531, r11532, r11533;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r11526);
        mpfr_init_set_str(r11527, "3", 10, MPFR_RNDN);
        mpfr_init(r11528);
        mpfr_init(r11529);
        mpfr_init(r11530);
        mpfr_init(r11531);
        mpfr_init(r11532);
        mpfr_init(r11533);
}

double f_dm(double x_re, double x_im) {
        mpfr_set_d(r11526, x_re, MPFR_RNDN);
        ;
        mpfr_pow(r11528, r11526, r11527, MPFR_RNDN);
        mpfr_set_d(r11529, x_im, MPFR_RNDN);
        mpfr_mul(r11530, r11529, r11527, MPFR_RNDN);
        mpfr_mul(r11531, r11529, r11526, MPFR_RNDN);
        mpfr_mul(r11532, r11530, r11531, MPFR_RNDN);
        mpfr_sub(r11533, r11528, r11532, MPFR_RNDN);
        return mpfr_get_d(r11533, MPFR_RNDN);
}

