#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 r26969 = 1;
        float r26970 = 5;
        float r26971 = v;
        float r26972 = r26971 * r26971;
        float r26973 = r26970 * r26972;
        float r26974 = r26969 - r26973;
        float r26975 = r26972 - r26969;
        float r26976 = r26974 / r26975;
        float r26977 = acos(r26976);
        return r26977;
}

double f_id(double v) {
        double r26978 = 1;
        double r26979 = 5;
        double r26980 = v;
        double r26981 = r26980 * r26980;
        double r26982 = r26979 * r26981;
        double r26983 = r26978 - r26982;
        double r26984 = r26981 - r26978;
        double r26985 = r26983 / r26984;
        double r26986 = acos(r26985);
        return r26986;
}


double f_of(float v) {
        float r26987 = 1;
        float r26988 = 5;
        float r26989 = v;
        float r26990 = r26989 * r26989;
        float r26991 = r26988 * r26990;
        float r26992 = exp(r26991);
        float r26993 = log(r26992);
        float r26994 = r26987 - r26993;
        float r26995 = r26990 - r26987;
        float r26996 = r26994 / r26995;
        float r26997 = acos(r26996);
        return r26997;
}

double f_od(double v) {
        double r26998 = 1;
        double r26999 = 5;
        double r27000 = v;
        double r27001 = r27000 * r27000;
        double r27002 = r26999 * r27001;
        double r27003 = exp(r27002);
        double r27004 = log(r27003);
        double r27005 = r26998 - r27004;
        double r27006 = r27001 - r26998;
        double r27007 = r27005 / r27006;
        double r27008 = acos(r27007);
        return r27008;
}

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 r27009, r27010, r27011, r27012, r27013, r27014, r27015, r27016, r27017;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r27009, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r27010, "5", 10, MPFR_RNDN);
        mpfr_init(r27011);
        mpfr_init(r27012);
        mpfr_init(r27013);
        mpfr_init(r27014);
        mpfr_init(r27015);
        mpfr_init(r27016);
        mpfr_init(r27017);
}

double f_im(double v) {
        ;
        ;
        mpfr_set_d(r27011, v, MPFR_RNDN);
        mpfr_mul(r27012, r27011, r27011, MPFR_RNDN);
        mpfr_mul(r27013, r27010, r27012, MPFR_RNDN);
        mpfr_sub(r27014, r27009, r27013, MPFR_RNDN);
        mpfr_sub(r27015, r27012, r27009, MPFR_RNDN);
        mpfr_div(r27016, r27014, r27015, MPFR_RNDN);
        mpfr_acos(r27017, r27016, MPFR_RNDN);
        return mpfr_get_d(r27017, MPFR_RNDN);
}

static mpfr_t r27018, r27019, r27020, r27021, r27022, r27023, r27024, r27025, r27026, r27027, r27028;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r27018, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r27019, "5", 10, MPFR_RNDN);
        mpfr_init(r27020);
        mpfr_init(r27021);
        mpfr_init(r27022);
        mpfr_init(r27023);
        mpfr_init(r27024);
        mpfr_init(r27025);
        mpfr_init(r27026);
        mpfr_init(r27027);
        mpfr_init(r27028);
}

double f_fm(double v) {
        ;
        ;
        mpfr_set_d(r27020, v, MPFR_RNDN);
        mpfr_mul(r27021, r27020, r27020, MPFR_RNDN);
        mpfr_mul(r27022, r27019, r27021, MPFR_RNDN);
        mpfr_exp(r27023, r27022, MPFR_RNDN);
        mpfr_log(r27024, r27023, MPFR_RNDN);
        mpfr_sub(r27025, r27018, r27024, MPFR_RNDN);
        mpfr_sub(r27026, r27021, r27018, MPFR_RNDN);
        mpfr_div(r27027, r27025, r27026, MPFR_RNDN);
        mpfr_acos(r27028, r27027, MPFR_RNDN);
        return mpfr_get_d(r27028, MPFR_RNDN);
}

static mpfr_t r27029, r27030, r27031, r27032, r27033, r27034, r27035, r27036, r27037, r27038, r27039;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r27029, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r27030, "5", 10, MPFR_RNDN);
        mpfr_init(r27031);
        mpfr_init(r27032);
        mpfr_init(r27033);
        mpfr_init(r27034);
        mpfr_init(r27035);
        mpfr_init(r27036);
        mpfr_init(r27037);
        mpfr_init(r27038);
        mpfr_init(r27039);
}

double f_dm(double v) {
        ;
        ;
        mpfr_set_d(r27031, v, MPFR_RNDN);
        mpfr_mul(r27032, r27031, r27031, MPFR_RNDN);
        mpfr_mul(r27033, r27030, r27032, MPFR_RNDN);
        mpfr_exp(r27034, r27033, MPFR_RNDN);
        mpfr_log(r27035, r27034, MPFR_RNDN);
        mpfr_sub(r27036, r27029, r27035, MPFR_RNDN);
        mpfr_sub(r27037, r27032, r27029, MPFR_RNDN);
        mpfr_div(r27038, r27036, r27037, MPFR_RNDN);
        mpfr_acos(r27039, r27038, MPFR_RNDN);
        return mpfr_get_d(r27039, MPFR_RNDN);
}

