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

char *name = "Falkner and Boettcher, Appendix B, 1";

double f_if(float v) {
        float r10924 = 1;
        float r10925 = 5;
        float r10926 = v;
        float r10927 = r10926 * r10926;
        float r10928 = r10925 * r10927;
        float r10929 = r10924 - r10928;
        float r10930 = r10927 - r10924;
        float r10931 = r10929 / r10930;
        float r10932 = acos(r10931);
        return r10932;
}

double f_id(double v) {
        double r10933 = 1;
        double r10934 = 5;
        double r10935 = v;
        double r10936 = r10935 * r10935;
        double r10937 = r10934 * r10936;
        double r10938 = r10933 - r10937;
        double r10939 = r10936 - r10933;
        double r10940 = r10938 / r10939;
        double r10941 = acos(r10940);
        return r10941;
}


double f_of(float v) {
        float r10942 = atan2(1.0, 0.0);
        float r10943 = 2;
        float r10944 = r10942 / r10943;
        float r10945 = 1;
        float r10946 = 5;
        float r10947 = v;
        float r10948 = r10947 * r10947;
        float r10949 = r10946 * r10948;
        float r10950 = exp(r10949);
        float r10951 = log(r10950);
        float r10952 = r10945 - r10951;
        float r10953 = r10948 - r10945;
        float r10954 = r10952 / r10953;
        float r10955 = asin(r10954);
        float r10956 = r10944 - r10955;
        return r10956;
}

double f_od(double v) {
        double r10957 = atan2(1.0, 0.0);
        double r10958 = 2;
        double r10959 = r10957 / r10958;
        double r10960 = 1;
        double r10961 = 5;
        double r10962 = v;
        double r10963 = r10962 * r10962;
        double r10964 = r10961 * r10963;
        double r10965 = exp(r10964);
        double r10966 = log(r10965);
        double r10967 = r10960 - r10966;
        double r10968 = r10963 - r10960;
        double r10969 = r10967 / r10968;
        double r10970 = asin(r10969);
        double r10971 = r10959 - r10970;
        return r10971;
}

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 r10972, r10973, r10974, r10975, r10976, r10977, r10978, r10979, r10980;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r10972, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r10973, "5", 10, MPFR_RNDN);
        mpfr_init(r10974);
        mpfr_init(r10975);
        mpfr_init(r10976);
        mpfr_init(r10977);
        mpfr_init(r10978);
        mpfr_init(r10979);
        mpfr_init(r10980);
}

double f_im(double v) {
        ;
        ;
        mpfr_set_d(r10974, v, MPFR_RNDN);
        mpfr_mul(r10975, r10974, r10974, MPFR_RNDN);
        mpfr_mul(r10976, r10973, r10975, MPFR_RNDN);
        mpfr_sub(r10977, r10972, r10976, MPFR_RNDN);
        mpfr_sub(r10978, r10975, r10972, MPFR_RNDN);
        mpfr_div(r10979, r10977, r10978, MPFR_RNDN);
        mpfr_acos(r10980, r10979, MPFR_RNDN);
        return mpfr_get_d(r10980, MPFR_RNDN);
}

static mpfr_t r10981, r10982, r10983, r10984, r10985, r10986, r10987, r10988, r10989, r10990, r10991, r10992, r10993, r10994, r10995;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init(r10981);
        mpfr_init_set_str(r10982, "2", 10, MPFR_RNDN);
        mpfr_init(r10983);
        mpfr_init_set_str(r10984, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r10985, "5", 10, MPFR_RNDN);
        mpfr_init(r10986);
        mpfr_init(r10987);
        mpfr_init(r10988);
        mpfr_init(r10989);
        mpfr_init(r10990);
        mpfr_init(r10991);
        mpfr_init(r10992);
        mpfr_init(r10993);
        mpfr_init(r10994);
        mpfr_init(r10995);
}

double f_fm(double v) {
        mpfr_const_pi(r10981, MPFR_RNDN);
        ;
        mpfr_div(r10983, r10981, r10982, MPFR_RNDN);
        ;
        ;
        mpfr_set_d(r10986, v, MPFR_RNDN);
        mpfr_mul(r10987, r10986, r10986, MPFR_RNDN);
        mpfr_mul(r10988, r10985, r10987, MPFR_RNDN);
        mpfr_exp(r10989, r10988, MPFR_RNDN);
        mpfr_log(r10990, r10989, MPFR_RNDN);
        mpfr_sub(r10991, r10984, r10990, MPFR_RNDN);
        mpfr_sub(r10992, r10987, r10984, MPFR_RNDN);
        mpfr_div(r10993, r10991, r10992, MPFR_RNDN);
        mpfr_asin(r10994, r10993, MPFR_RNDN);
        mpfr_sub(r10995, r10983, r10994, MPFR_RNDN);
        return mpfr_get_d(r10995, MPFR_RNDN);
}

static mpfr_t r10996, r10997, r10998, r10999, r11000, r11001, r11002, r11003, r11004, r11005, r11006, r11007, r11008, r11009, r11010;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r10996);
        mpfr_init_set_str(r10997, "2", 10, MPFR_RNDN);
        mpfr_init(r10998);
        mpfr_init_set_str(r10999, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r11000, "5", 10, MPFR_RNDN);
        mpfr_init(r11001);
        mpfr_init(r11002);
        mpfr_init(r11003);
        mpfr_init(r11004);
        mpfr_init(r11005);
        mpfr_init(r11006);
        mpfr_init(r11007);
        mpfr_init(r11008);
        mpfr_init(r11009);
        mpfr_init(r11010);
}

double f_dm(double v) {
        mpfr_const_pi(r10996, MPFR_RNDN);
        ;
        mpfr_div(r10998, r10996, r10997, MPFR_RNDN);
        ;
        ;
        mpfr_set_d(r11001, v, MPFR_RNDN);
        mpfr_mul(r11002, r11001, r11001, MPFR_RNDN);
        mpfr_mul(r11003, r11000, r11002, MPFR_RNDN);
        mpfr_exp(r11004, r11003, MPFR_RNDN);
        mpfr_log(r11005, r11004, MPFR_RNDN);
        mpfr_sub(r11006, r10999, r11005, MPFR_RNDN);
        mpfr_sub(r11007, r11002, r10999, MPFR_RNDN);
        mpfr_div(r11008, r11006, r11007, MPFR_RNDN);
        mpfr_asin(r11009, r11008, MPFR_RNDN);
        mpfr_sub(r11010, r10998, r11009, MPFR_RNDN);
        return mpfr_get_d(r11010, MPFR_RNDN);
}

