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

char *name = "2cbrt (problem 3.3.4)";

double f_if(float x) {
        float r36906 = x;
        float r36907 = 1;
        float r36908 = r36906 + r36907;
        float r36909 = cbrt(r36908);
        float r36910 = cbrt(r36906);
        float r36911 = r36909 - r36910;
        return r36911;
}

double f_id(double x) {
        double r36912 = x;
        double r36913 = 1;
        double r36914 = r36912 + r36913;
        double r36915 = cbrt(r36914);
        double r36916 = cbrt(r36912);
        double r36917 = r36915 - r36916;
        return r36917;
}


double f_of(float x) {
        float r36918 = 1;
        float r36919 = x;
        float r36920 = r36918 + r36919;
        float r36921 = cbrt(r36920);
        float r36922 = r36921 * r36921;
        float r36923 = cbrt(r36919);
        float r36924 = cbrt(r36923);
        float r36925 = r36924 * r36924;
        float r36926 = r36925 * r36924;
        float r36927 = r36926 + r36921;
        float r36928 = r36927 * r36923;
        float r36929 = r36922 + r36928;
        float r36930 = r36918 / r36929;
        return r36930;
}

double f_od(double x) {
        double r36931 = 1;
        double r36932 = x;
        double r36933 = r36931 + r36932;
        double r36934 = cbrt(r36933);
        double r36935 = r36934 * r36934;
        double r36936 = cbrt(r36932);
        double r36937 = cbrt(r36936);
        double r36938 = r36937 * r36937;
        double r36939 = r36938 * r36937;
        double r36940 = r36939 + r36934;
        double r36941 = r36940 * r36936;
        double r36942 = r36935 + r36941;
        double r36943 = r36931 / r36942;
        return r36943;
}

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 r36944, r36945, r36946, r36947, r36948, r36949;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1424);
        mpfr_init(r36944);
        mpfr_init_set_str(r36945, "1", 10, MPFR_RNDN);
        mpfr_init(r36946);
        mpfr_init(r36947);
        mpfr_init(r36948);
        mpfr_init(r36949);
}

double f_im(double x) {
        mpfr_set_d(r36944, x, MPFR_RNDN);
        ;
        mpfr_add(r36946, r36944, r36945, MPFR_RNDN);
        mpfr_cbrt(r36947, r36946, MPFR_RNDN);
        mpfr_cbrt(r36948, r36944, MPFR_RNDN);
        mpfr_sub(r36949, r36947, r36948, MPFR_RNDN);
        return mpfr_get_d(r36949, MPFR_RNDN);
}

static mpfr_t r36950, r36951, r36952, r36953, r36954, r36955, r36956, r36957, r36958, r36959, r36960, r36961, r36962;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1424);
        mpfr_init_set_str(r36950, "1", 10, MPFR_RNDN);
        mpfr_init(r36951);
        mpfr_init(r36952);
        mpfr_init(r36953);
        mpfr_init(r36954);
        mpfr_init(r36955);
        mpfr_init(r36956);
        mpfr_init(r36957);
        mpfr_init(r36958);
        mpfr_init(r36959);
        mpfr_init(r36960);
        mpfr_init(r36961);
        mpfr_init(r36962);
}

double f_fm(double x) {
        ;
        mpfr_set_d(r36951, x, MPFR_RNDN);
        mpfr_add(r36952, r36950, r36951, MPFR_RNDN);
        mpfr_cbrt(r36953, r36952, MPFR_RNDN);
        mpfr_mul(r36954, r36953, r36953, MPFR_RNDN);
        mpfr_cbrt(r36955, r36951, MPFR_RNDN);
        mpfr_cbrt(r36956, r36955, MPFR_RNDN);
        mpfr_mul(r36957, r36956, r36956, MPFR_RNDN);
        mpfr_mul(r36958, r36957, r36956, MPFR_RNDN);
        mpfr_add(r36959, r36958, r36953, MPFR_RNDN);
        mpfr_mul(r36960, r36959, r36955, MPFR_RNDN);
        mpfr_add(r36961, r36954, r36960, MPFR_RNDN);
        mpfr_div(r36962, r36950, r36961, MPFR_RNDN);
        return mpfr_get_d(r36962, MPFR_RNDN);
}

static mpfr_t r36963, r36964, r36965, r36966, r36967, r36968, r36969, r36970, r36971, r36972, r36973, r36974, r36975;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1424);
        mpfr_init_set_str(r36963, "1", 10, MPFR_RNDN);
        mpfr_init(r36964);
        mpfr_init(r36965);
        mpfr_init(r36966);
        mpfr_init(r36967);
        mpfr_init(r36968);
        mpfr_init(r36969);
        mpfr_init(r36970);
        mpfr_init(r36971);
        mpfr_init(r36972);
        mpfr_init(r36973);
        mpfr_init(r36974);
        mpfr_init(r36975);
}

double f_dm(double x) {
        ;
        mpfr_set_d(r36964, x, MPFR_RNDN);
        mpfr_add(r36965, r36963, r36964, MPFR_RNDN);
        mpfr_cbrt(r36966, r36965, MPFR_RNDN);
        mpfr_mul(r36967, r36966, r36966, MPFR_RNDN);
        mpfr_cbrt(r36968, r36964, MPFR_RNDN);
        mpfr_cbrt(r36969, r36968, MPFR_RNDN);
        mpfr_mul(r36970, r36969, r36969, MPFR_RNDN);
        mpfr_mul(r36971, r36970, r36969, MPFR_RNDN);
        mpfr_add(r36972, r36971, r36966, MPFR_RNDN);
        mpfr_mul(r36973, r36972, r36968, MPFR_RNDN);
        mpfr_add(r36974, r36967, r36973, MPFR_RNDN);
        mpfr_div(r36975, r36963, r36974, MPFR_RNDN);
        return mpfr_get_d(r36975, MPFR_RNDN);
}

