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

char *name = "Falkner and Boettcher, Equation (22+)";

double f_if(float v) {
        float r10898 = 4;
        float r10899 = 3;
        float r10900 = atan2(1.0, 0.0);
        float r10901 = r10899 * r10900;
        float r10902 = 1;
        float r10903 = v;
        float r10904 = r10903 * r10903;
        float r10905 = r10902 - r10904;
        float r10906 = r10901 * r10905;
        float r10907 = 2;
        float r10908 = 6;
        float r10909 = r10908 * r10904;
        float r10910 = r10907 - r10909;
        float r10911 = sqrt(r10910);
        float r10912 = r10906 * r10911;
        float r10913 = r10898 / r10912;
        return r10913;
}

double f_id(double v) {
        double r10914 = 4;
        double r10915 = 3;
        double r10916 = atan2(1.0, 0.0);
        double r10917 = r10915 * r10916;
        double r10918 = 1;
        double r10919 = v;
        double r10920 = r10919 * r10919;
        double r10921 = r10918 - r10920;
        double r10922 = r10917 * r10921;
        double r10923 = 2;
        double r10924 = 6;
        double r10925 = r10924 * r10920;
        double r10926 = r10923 - r10925;
        double r10927 = sqrt(r10926);
        double r10928 = r10922 * r10927;
        double r10929 = r10914 / r10928;
        return r10929;
}


double f_of(float v) {
        float r10930 = 4;
        float r10931 = atan2(1.0, 0.0);
        float r10932 = 3;
        float r10933 = r10931 * r10932;
        float r10934 = r10930 / r10933;
        float r10935 = 1;
        float r10936 = v;
        float r10937 = r10936 * r10936;
        float r10938 = r10935 - r10937;
        float r10939 = r10934 / r10938;
        float r10940 = 2;
        float r10941 = 6;
        float r10942 = r10941 * r10936;
        float r10943 = r10936 * r10942;
        float r10944 = r10940 - r10943;
        float r10945 = sqrt(r10944);
        float r10946 = r10939 / r10945;
        float r10947 = pow(r10946, r10932);
        float r10948 = cbrt(r10947);
        return r10948;
}

double f_od(double v) {
        double r10949 = 4;
        double r10950 = atan2(1.0, 0.0);
        double r10951 = 3;
        double r10952 = r10950 * r10951;
        double r10953 = r10949 / r10952;
        double r10954 = 1;
        double r10955 = v;
        double r10956 = r10955 * r10955;
        double r10957 = r10954 - r10956;
        double r10958 = r10953 / r10957;
        double r10959 = 2;
        double r10960 = 6;
        double r10961 = r10960 * r10955;
        double r10962 = r10955 * r10961;
        double r10963 = r10959 - r10962;
        double r10964 = sqrt(r10963);
        double r10965 = r10958 / r10964;
        double r10966 = pow(r10965, r10951);
        double r10967 = cbrt(r10966);
        return r10967;
}

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 r10968, r10969, r10970, r10971, r10972, r10973, r10974, r10975, r10976, r10977, r10978, r10979, r10980, r10981, r10982, r10983;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(336);
        mpfr_init_set_str(r10968, "4", 10, MPFR_RNDN);
        mpfr_init_set_str(r10969, "3", 10, MPFR_RNDN);
        mpfr_init(r10970);
        mpfr_init(r10971);
        mpfr_init_set_str(r10972, "1", 10, MPFR_RNDN);
        mpfr_init(r10973);
        mpfr_init(r10974);
        mpfr_init(r10975);
        mpfr_init(r10976);
        mpfr_init_set_str(r10977, "2", 10, MPFR_RNDN);
        mpfr_init_set_str(r10978, "6", 10, MPFR_RNDN);
        mpfr_init(r10979);
        mpfr_init(r10980);
        mpfr_init(r10981);
        mpfr_init(r10982);
        mpfr_init(r10983);
}

double f_im(double v) {
        ;
        ;
        mpfr_const_pi(r10970, MPFR_RNDN);
        mpfr_mul(r10971, r10969, r10970, MPFR_RNDN);
        ;
        mpfr_set_d(r10973, v, MPFR_RNDN);
        mpfr_mul(r10974, r10973, r10973, MPFR_RNDN);
        mpfr_sub(r10975, r10972, r10974, MPFR_RNDN);
        mpfr_mul(r10976, r10971, r10975, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r10979, r10978, r10974, MPFR_RNDN);
        mpfr_sub(r10980, r10977, r10979, MPFR_RNDN);
        mpfr_sqrt(r10981, r10980, MPFR_RNDN);
        mpfr_mul(r10982, r10976, r10981, MPFR_RNDN);
        mpfr_div(r10983, r10968, r10982, MPFR_RNDN);
        return mpfr_get_d(r10983, MPFR_RNDN);
}

static mpfr_t r10984, r10985, r10986, r10987, r10988, r10989, r10990, r10991, r10992, r10993, r10994, r10995, r10996, r10997, r10998, r10999, r11000, r11001, r11002;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(336);
        mpfr_init_set_str(r10984, "4", 10, MPFR_RNDN);
        mpfr_init(r10985);
        mpfr_init_set_str(r10986, "3", 10, MPFR_RNDN);
        mpfr_init(r10987);
        mpfr_init(r10988);
        mpfr_init_set_str(r10989, "1", 10, MPFR_RNDN);
        mpfr_init(r10990);
        mpfr_init(r10991);
        mpfr_init(r10992);
        mpfr_init(r10993);
        mpfr_init_set_str(r10994, "2", 10, MPFR_RNDN);
        mpfr_init_set_str(r10995, "6", 10, MPFR_RNDN);
        mpfr_init(r10996);
        mpfr_init(r10997);
        mpfr_init(r10998);
        mpfr_init(r10999);
        mpfr_init(r11000);
        mpfr_init(r11001);
        mpfr_init(r11002);
}

double f_fm(double v) {
        ;
        mpfr_const_pi(r10985, MPFR_RNDN);
        ;
        mpfr_mul(r10987, r10985, r10986, MPFR_RNDN);
        mpfr_div(r10988, r10984, r10987, MPFR_RNDN);
        ;
        mpfr_set_d(r10990, v, MPFR_RNDN);
        mpfr_mul(r10991, r10990, r10990, MPFR_RNDN);
        mpfr_sub(r10992, r10989, r10991, MPFR_RNDN);
        mpfr_div(r10993, r10988, r10992, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r10996, r10995, r10990, MPFR_RNDN);
        mpfr_mul(r10997, r10990, r10996, MPFR_RNDN);
        mpfr_sub(r10998, r10994, r10997, MPFR_RNDN);
        mpfr_sqrt(r10999, r10998, MPFR_RNDN);
        mpfr_div(r11000, r10993, r10999, MPFR_RNDN);
        mpfr_pow(r11001, r11000, r10986, MPFR_RNDN);
        mpfr_cbrt(r11002, r11001, MPFR_RNDN);
        return mpfr_get_d(r11002, MPFR_RNDN);
}

static mpfr_t r11003, r11004, r11005, r11006, r11007, r11008, r11009, r11010, r11011, r11012, r11013, r11014, r11015, r11016, r11017, r11018, r11019, r11020, r11021;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(336);
        mpfr_init_set_str(r11003, "4", 10, MPFR_RNDN);
        mpfr_init(r11004);
        mpfr_init_set_str(r11005, "3", 10, MPFR_RNDN);
        mpfr_init(r11006);
        mpfr_init(r11007);
        mpfr_init_set_str(r11008, "1", 10, MPFR_RNDN);
        mpfr_init(r11009);
        mpfr_init(r11010);
        mpfr_init(r11011);
        mpfr_init(r11012);
        mpfr_init_set_str(r11013, "2", 10, MPFR_RNDN);
        mpfr_init_set_str(r11014, "6", 10, MPFR_RNDN);
        mpfr_init(r11015);
        mpfr_init(r11016);
        mpfr_init(r11017);
        mpfr_init(r11018);
        mpfr_init(r11019);
        mpfr_init(r11020);
        mpfr_init(r11021);
}

double f_dm(double v) {
        ;
        mpfr_const_pi(r11004, MPFR_RNDN);
        ;
        mpfr_mul(r11006, r11004, r11005, MPFR_RNDN);
        mpfr_div(r11007, r11003, r11006, MPFR_RNDN);
        ;
        mpfr_set_d(r11009, v, MPFR_RNDN);
        mpfr_mul(r11010, r11009, r11009, MPFR_RNDN);
        mpfr_sub(r11011, r11008, r11010, MPFR_RNDN);
        mpfr_div(r11012, r11007, r11011, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r11015, r11014, r11009, MPFR_RNDN);
        mpfr_mul(r11016, r11009, r11015, MPFR_RNDN);
        mpfr_sub(r11017, r11013, r11016, MPFR_RNDN);
        mpfr_sqrt(r11018, r11017, MPFR_RNDN);
        mpfr_div(r11019, r11012, r11018, MPFR_RNDN);
        mpfr_pow(r11020, r11019, r11005, MPFR_RNDN);
        mpfr_cbrt(r11021, r11020, MPFR_RNDN);
        return mpfr_get_d(r11021, MPFR_RNDN);
}

