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

char *name = "VandenBroeck and Keller, Equation (20)";

double f_if(float f) {
        float r19862 = 1;
        float r19863 = atan2(1.0, 0.0);
        float r19864 = 4;
        float r19865 = r19863 / r19864;
        float r19866 = r19862 / r19865;
        float r19867 = f;
        float r19868 = r19865 * r19867;
        float r19869 = exp(r19868);
        float r19870 = -r19868;
        float r19871 = exp(r19870);
        float r19872 = r19869 + r19871;
        float r19873 = r19869 - r19871;
        float r19874 = r19872 / r19873;
        float r19875 = log(r19874);
        float r19876 = r19866 * r19875;
        float r19877 = -r19876;
        return r19877;
}

double f_id(double f) {
        double r19878 = 1;
        double r19879 = atan2(1.0, 0.0);
        double r19880 = 4;
        double r19881 = r19879 / r19880;
        double r19882 = r19878 / r19881;
        double r19883 = f;
        double r19884 = r19881 * r19883;
        double r19885 = exp(r19884);
        double r19886 = -r19884;
        double r19887 = exp(r19886);
        double r19888 = r19885 + r19887;
        double r19889 = r19885 - r19887;
        double r19890 = r19888 / r19889;
        double r19891 = log(r19890);
        double r19892 = r19882 * r19891;
        double r19893 = -r19892;
        return r19893;
}


double f_of(float f) {
        float r19894 = 4;
        float r19895 = -r19894;
        float r19896 = atan2(1.0, 0.0);
        float r19897 = r19895 / r19896;
        float r19898 = 1/48;
        float r19899 = 2;
        float r19900 = pow(r19896, r19899);
        float r19901 = f;
        float r19902 = pow(r19901, r19899);
        float r19903 = r19900 * r19902;
        float r19904 = r19898 * r19903;
        float r19905 = r19894 / r19896;
        float r19906 = cbrt(r19905);
        float r19907 = r19906 * r19906;
        float r19908 = log(r19907);
        float r19909 = log(r19906);
        float r19910 = r19908 + r19909;
        float r19911 = r19904 + r19910;
        float r19912 = log(r19901);
        float r19913 = 7/23040;
        float r19914 = pow(r19896, r19894);
        float r19915 = pow(r19901, r19894);
        float r19916 = r19914 * r19915;
        float r19917 = r19913 * r19916;
        float r19918 = r19912 + r19917;
        float r19919 = r19911 - r19918;
        float r19920 = r19897 * r19919;
        return r19920;
}

double f_od(double f) {
        double r19921 = 4;
        double r19922 = -r19921;
        double r19923 = atan2(1.0, 0.0);
        double r19924 = r19922 / r19923;
        double r19925 = 1/48;
        double r19926 = 2;
        double r19927 = pow(r19923, r19926);
        double r19928 = f;
        double r19929 = pow(r19928, r19926);
        double r19930 = r19927 * r19929;
        double r19931 = r19925 * r19930;
        double r19932 = r19921 / r19923;
        double r19933 = cbrt(r19932);
        double r19934 = r19933 * r19933;
        double r19935 = log(r19934);
        double r19936 = log(r19933);
        double r19937 = r19935 + r19936;
        double r19938 = r19931 + r19937;
        double r19939 = log(r19928);
        double r19940 = 7/23040;
        double r19941 = pow(r19923, r19921);
        double r19942 = pow(r19928, r19921);
        double r19943 = r19941 * r19942;
        double r19944 = r19940 * r19943;
        double r19945 = r19939 + r19944;
        double r19946 = r19938 - r19945;
        double r19947 = r19924 * r19946;
        return r19947;
}

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 r19948, r19949, r19950, r19951, r19952, r19953, r19954, r19955, r19956, r19957, r19958, r19959, r19960, r19961, r19962, r19963;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1424);
        mpfr_init_set_str(r19948, "1", 10, MPFR_RNDN);
        mpfr_init(r19949);
        mpfr_init_set_str(r19950, "4", 10, MPFR_RNDN);
        mpfr_init(r19951);
        mpfr_init(r19952);
        mpfr_init(r19953);
        mpfr_init(r19954);
        mpfr_init(r19955);
        mpfr_init(r19956);
        mpfr_init(r19957);
        mpfr_init(r19958);
        mpfr_init(r19959);
        mpfr_init(r19960);
        mpfr_init(r19961);
        mpfr_init(r19962);
        mpfr_init(r19963);
}

double f_im(double f) {
        ;
        mpfr_const_pi(r19949, MPFR_RNDN);
        ;
        mpfr_div(r19951, r19949, r19950, MPFR_RNDN);
        mpfr_div(r19952, r19948, r19951, MPFR_RNDN);
        mpfr_set_d(r19953, f, MPFR_RNDN);
        mpfr_mul(r19954, r19951, r19953, MPFR_RNDN);
        mpfr_exp(r19955, r19954, MPFR_RNDN);
        mpfr_neg(r19956, r19954, MPFR_RNDN);
        mpfr_exp(r19957, r19956, MPFR_RNDN);
        mpfr_add(r19958, r19955, r19957, MPFR_RNDN);
        mpfr_sub(r19959, r19955, r19957, MPFR_RNDN);
        mpfr_div(r19960, r19958, r19959, MPFR_RNDN);
        mpfr_log(r19961, r19960, MPFR_RNDN);
        mpfr_mul(r19962, r19952, r19961, MPFR_RNDN);
        mpfr_neg(r19963, r19962, MPFR_RNDN);
        return mpfr_get_d(r19963, MPFR_RNDN);
}

static mpfr_t r19964, r19965, r19966, r19967, r19968, r19969, r19970, r19971, r19972, r19973, r19974, r19975, r19976, r19977, r19978, r19979, r19980, r19981, r19982, r19983, r19984, r19985, r19986, r19987, r19988, r19989, r19990;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1424);
        mpfr_init_set_str(r19964, "4", 10, MPFR_RNDN);
        mpfr_init(r19965);
        mpfr_init(r19966);
        mpfr_init(r19967);
        mpfr_init_set_str(r19968, "1/48", 10, MPFR_RNDN);
        mpfr_init_set_str(r19969, "2", 10, MPFR_RNDN);
        mpfr_init(r19970);
        mpfr_init(r19971);
        mpfr_init(r19972);
        mpfr_init(r19973);
        mpfr_init(r19974);
        mpfr_init(r19975);
        mpfr_init(r19976);
        mpfr_init(r19977);
        mpfr_init(r19978);
        mpfr_init(r19979);
        mpfr_init(r19980);
        mpfr_init(r19981);
        mpfr_init(r19982);
        mpfr_init_set_str(r19983, "7/23040", 10, MPFR_RNDN);
        mpfr_init(r19984);
        mpfr_init(r19985);
        mpfr_init(r19986);
        mpfr_init(r19987);
        mpfr_init(r19988);
        mpfr_init(r19989);
        mpfr_init(r19990);
}

double f_fm(double f) {
        ;
        mpfr_neg(r19965, r19964, MPFR_RNDN);
        mpfr_const_pi(r19966, MPFR_RNDN);
        mpfr_div(r19967, r19965, r19966, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r19970, r19966, r19969, MPFR_RNDN);
        mpfr_set_d(r19971, f, MPFR_RNDN);
        mpfr_pow(r19972, r19971, r19969, MPFR_RNDN);
        mpfr_mul(r19973, r19970, r19972, MPFR_RNDN);
        mpfr_mul(r19974, r19968, r19973, MPFR_RNDN);
        mpfr_div(r19975, r19964, r19966, MPFR_RNDN);
        mpfr_cbrt(r19976, r19975, MPFR_RNDN);
        mpfr_mul(r19977, r19976, r19976, MPFR_RNDN);
        mpfr_log(r19978, r19977, MPFR_RNDN);
        mpfr_log(r19979, r19976, MPFR_RNDN);
        mpfr_add(r19980, r19978, r19979, MPFR_RNDN);
        mpfr_add(r19981, r19974, r19980, MPFR_RNDN);
        mpfr_log(r19982, r19971, MPFR_RNDN);
        ;
        mpfr_pow(r19984, r19966, r19964, MPFR_RNDN);
        mpfr_pow(r19985, r19971, r19964, MPFR_RNDN);
        mpfr_mul(r19986, r19984, r19985, MPFR_RNDN);
        mpfr_mul(r19987, r19983, r19986, MPFR_RNDN);
        mpfr_add(r19988, r19982, r19987, MPFR_RNDN);
        mpfr_sub(r19989, r19981, r19988, MPFR_RNDN);
        mpfr_mul(r19990, r19967, r19989, MPFR_RNDN);
        return mpfr_get_d(r19990, MPFR_RNDN);
}

static mpfr_t r19991, r19992, r19993, r19994, r19995, r19996, r19997, r19998, r19999, r20000, r20001, r20002, r20003, r20004, r20005, r20006, r20007, r20008, r20009, r20010, r20011, r20012, r20013, r20014, r20015, r20016, r20017;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1424);
        mpfr_init_set_str(r19991, "4", 10, MPFR_RNDN);
        mpfr_init(r19992);
        mpfr_init(r19993);
        mpfr_init(r19994);
        mpfr_init_set_str(r19995, "1/48", 10, MPFR_RNDN);
        mpfr_init_set_str(r19996, "2", 10, MPFR_RNDN);
        mpfr_init(r19997);
        mpfr_init(r19998);
        mpfr_init(r19999);
        mpfr_init(r20000);
        mpfr_init(r20001);
        mpfr_init(r20002);
        mpfr_init(r20003);
        mpfr_init(r20004);
        mpfr_init(r20005);
        mpfr_init(r20006);
        mpfr_init(r20007);
        mpfr_init(r20008);
        mpfr_init(r20009);
        mpfr_init_set_str(r20010, "7/23040", 10, MPFR_RNDN);
        mpfr_init(r20011);
        mpfr_init(r20012);
        mpfr_init(r20013);
        mpfr_init(r20014);
        mpfr_init(r20015);
        mpfr_init(r20016);
        mpfr_init(r20017);
}

double f_dm(double f) {
        ;
        mpfr_neg(r19992, r19991, MPFR_RNDN);
        mpfr_const_pi(r19993, MPFR_RNDN);
        mpfr_div(r19994, r19992, r19993, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r19997, r19993, r19996, MPFR_RNDN);
        mpfr_set_d(r19998, f, MPFR_RNDN);
        mpfr_pow(r19999, r19998, r19996, MPFR_RNDN);
        mpfr_mul(r20000, r19997, r19999, MPFR_RNDN);
        mpfr_mul(r20001, r19995, r20000, MPFR_RNDN);
        mpfr_div(r20002, r19991, r19993, MPFR_RNDN);
        mpfr_cbrt(r20003, r20002, MPFR_RNDN);
        mpfr_mul(r20004, r20003, r20003, MPFR_RNDN);
        mpfr_log(r20005, r20004, MPFR_RNDN);
        mpfr_log(r20006, r20003, MPFR_RNDN);
        mpfr_add(r20007, r20005, r20006, MPFR_RNDN);
        mpfr_add(r20008, r20001, r20007, MPFR_RNDN);
        mpfr_log(r20009, r19998, MPFR_RNDN);
        ;
        mpfr_pow(r20011, r19993, r19991, MPFR_RNDN);
        mpfr_pow(r20012, r19998, r19991, MPFR_RNDN);
        mpfr_mul(r20013, r20011, r20012, MPFR_RNDN);
        mpfr_mul(r20014, r20010, r20013, MPFR_RNDN);
        mpfr_add(r20015, r20009, r20014, MPFR_RNDN);
        mpfr_sub(r20016, r20008, r20015, MPFR_RNDN);
        mpfr_mul(r20017, r19994, r20016, MPFR_RNDN);
        return mpfr_get_d(r20017, MPFR_RNDN);
}

