#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 r11870913 = x;
        float r11870914 = 1;
        float r11870915 = r11870913 + r11870914;
        float r11870916 = cbrt(r11870915);
        float r11870917 = cbrt(r11870913);
        float r11870918 = r11870916 - r11870917;
        return r11870918;
}

double f_id(double x) {
        double r11870919 = x;
        double r11870920 = 1;
        double r11870921 = r11870919 + r11870920;
        double r11870922 = cbrt(r11870921);
        double r11870923 = cbrt(r11870919);
        double r11870924 = r11870922 - r11870923;
        return r11870924;
}


double f_of(float x) {
        float r11870925 = 1;
        float r11870926 = x;
        float r11870927 = r11870925 + r11870926;
        float r11870928 = cbrt(r11870927);
        float r11870929 = r11870928 * r11870928;
        float r11870930 = cbrt(r11870926);
        float r11870931 = cbrt(r11870930);
        float r11870932 = r11870931 * r11870931;
        float r11870933 = cbrt(r11870931);
        float r11870934 = r11870933 * r11870933;
        float r11870935 = cbrt(r11870933);
        float r11870936 = r11870935 * r11870935;
        float r11870937 = r11870936 * r11870935;
        float r11870938 = r11870934 * r11870937;
        float r11870939 = r11870932 * r11870938;
        float r11870940 = r11870939 + r11870928;
        float r11870941 = r11870940 * r11870930;
        float r11870942 = r11870929 + r11870941;
        float r11870943 = r11870925 / r11870942;
        return r11870943;
}

double f_od(double x) {
        double r11870944 = 1;
        double r11870945 = x;
        double r11870946 = r11870944 + r11870945;
        double r11870947 = cbrt(r11870946);
        double r11870948 = r11870947 * r11870947;
        double r11870949 = cbrt(r11870945);
        double r11870950 = cbrt(r11870949);
        double r11870951 = r11870950 * r11870950;
        double r11870952 = cbrt(r11870950);
        double r11870953 = r11870952 * r11870952;
        double r11870954 = cbrt(r11870952);
        double r11870955 = r11870954 * r11870954;
        double r11870956 = r11870955 * r11870954;
        double r11870957 = r11870953 * r11870956;
        double r11870958 = r11870951 * r11870957;
        double r11870959 = r11870958 + r11870947;
        double r11870960 = r11870959 * r11870949;
        double r11870961 = r11870948 + r11870960;
        double r11870962 = r11870944 / r11870961;
        return r11870962;
}

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 r11870963, r11870964, r11870965, r11870966, r11870967, r11870968;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1424);
        mpfr_init(r11870963);
        mpfr_init_set_str(r11870964, "1", 10, MPFR_RNDN);
        mpfr_init(r11870965);
        mpfr_init(r11870966);
        mpfr_init(r11870967);
        mpfr_init(r11870968);
}

double f_im(double x) {
        mpfr_set_d(r11870963, x, MPFR_RNDN);
        ;
        mpfr_add(r11870965, r11870963, r11870964, MPFR_RNDN);
        mpfr_cbrt(r11870966, r11870965, MPFR_RNDN);
        mpfr_cbrt(r11870967, r11870963, MPFR_RNDN);
        mpfr_sub(r11870968, r11870966, r11870967, MPFR_RNDN);
        return mpfr_get_d(r11870968, MPFR_RNDN);
}

static mpfr_t r11870969, r11870970, r11870971, r11870972, r11870973, r11870974, r11870975, r11870976, r11870977, r11870978, r11870979, r11870980, r11870981, r11870982, r11870983, r11870984, r11870985, r11870986, r11870987;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1424);
        mpfr_init_set_str(r11870969, "1", 10, MPFR_RNDN);
        mpfr_init(r11870970);
        mpfr_init(r11870971);
        mpfr_init(r11870972);
        mpfr_init(r11870973);
        mpfr_init(r11870974);
        mpfr_init(r11870975);
        mpfr_init(r11870976);
        mpfr_init(r11870977);
        mpfr_init(r11870978);
        mpfr_init(r11870979);
        mpfr_init(r11870980);
        mpfr_init(r11870981);
        mpfr_init(r11870982);
        mpfr_init(r11870983);
        mpfr_init(r11870984);
        mpfr_init(r11870985);
        mpfr_init(r11870986);
        mpfr_init(r11870987);
}

double f_fm(double x) {
        ;
        mpfr_set_d(r11870970, x, MPFR_RNDN);
        mpfr_add(r11870971, r11870969, r11870970, MPFR_RNDN);
        mpfr_cbrt(r11870972, r11870971, MPFR_RNDN);
        mpfr_mul(r11870973, r11870972, r11870972, MPFR_RNDN);
        mpfr_cbrt(r11870974, r11870970, MPFR_RNDN);
        mpfr_cbrt(r11870975, r11870974, MPFR_RNDN);
        mpfr_mul(r11870976, r11870975, r11870975, MPFR_RNDN);
        mpfr_cbrt(r11870977, r11870975, MPFR_RNDN);
        mpfr_mul(r11870978, r11870977, r11870977, MPFR_RNDN);
        mpfr_cbrt(r11870979, r11870977, MPFR_RNDN);
        mpfr_mul(r11870980, r11870979, r11870979, MPFR_RNDN);
        mpfr_mul(r11870981, r11870980, r11870979, MPFR_RNDN);
        mpfr_mul(r11870982, r11870978, r11870981, MPFR_RNDN);
        mpfr_mul(r11870983, r11870976, r11870982, MPFR_RNDN);
        mpfr_add(r11870984, r11870983, r11870972, MPFR_RNDN);
        mpfr_mul(r11870985, r11870984, r11870974, MPFR_RNDN);
        mpfr_add(r11870986, r11870973, r11870985, MPFR_RNDN);
        mpfr_div(r11870987, r11870969, r11870986, MPFR_RNDN);
        return mpfr_get_d(r11870987, MPFR_RNDN);
}

static mpfr_t r11870988, r11870989, r11870990, r11870991, r11870992, r11870993, r11870994, r11870995, r11870996, r11870997, r11870998, r11870999, r11871000, r11871001, r11871002, r11871003, r11871004, r11871005, r11871006;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1424);
        mpfr_init_set_str(r11870988, "1", 10, MPFR_RNDN);
        mpfr_init(r11870989);
        mpfr_init(r11870990);
        mpfr_init(r11870991);
        mpfr_init(r11870992);
        mpfr_init(r11870993);
        mpfr_init(r11870994);
        mpfr_init(r11870995);
        mpfr_init(r11870996);
        mpfr_init(r11870997);
        mpfr_init(r11870998);
        mpfr_init(r11870999);
        mpfr_init(r11871000);
        mpfr_init(r11871001);
        mpfr_init(r11871002);
        mpfr_init(r11871003);
        mpfr_init(r11871004);
        mpfr_init(r11871005);
        mpfr_init(r11871006);
}

double f_dm(double x) {
        ;
        mpfr_set_d(r11870989, x, MPFR_RNDN);
        mpfr_add(r11870990, r11870988, r11870989, MPFR_RNDN);
        mpfr_cbrt(r11870991, r11870990, MPFR_RNDN);
        mpfr_mul(r11870992, r11870991, r11870991, MPFR_RNDN);
        mpfr_cbrt(r11870993, r11870989, MPFR_RNDN);
        mpfr_cbrt(r11870994, r11870993, MPFR_RNDN);
        mpfr_mul(r11870995, r11870994, r11870994, MPFR_RNDN);
        mpfr_cbrt(r11870996, r11870994, MPFR_RNDN);
        mpfr_mul(r11870997, r11870996, r11870996, MPFR_RNDN);
        mpfr_cbrt(r11870998, r11870996, MPFR_RNDN);
        mpfr_mul(r11870999, r11870998, r11870998, MPFR_RNDN);
        mpfr_mul(r11871000, r11870999, r11870998, MPFR_RNDN);
        mpfr_mul(r11871001, r11870997, r11871000, MPFR_RNDN);
        mpfr_mul(r11871002, r11870995, r11871001, MPFR_RNDN);
        mpfr_add(r11871003, r11871002, r11870991, MPFR_RNDN);
        mpfr_mul(r11871004, r11871003, r11870993, MPFR_RNDN);
        mpfr_add(r11871005, r11870992, r11871004, MPFR_RNDN);
        mpfr_div(r11871006, r11870988, r11871005, MPFR_RNDN);
        return mpfr_get_d(r11871006, MPFR_RNDN);
}

