#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 r30464780 = 1;
        float r30464781 = 5;
        float r30464782 = v;
        float r30464783 = r30464782 * r30464782;
        float r30464784 = r30464781 * r30464783;
        float r30464785 = r30464780 - r30464784;
        float r30464786 = r30464783 - r30464780;
        float r30464787 = r30464785 / r30464786;
        float r30464788 = acos(r30464787);
        return r30464788;
}

double f_id(double v) {
        double r30464789 = 1;
        double r30464790 = 5;
        double r30464791 = v;
        double r30464792 = r30464791 * r30464791;
        double r30464793 = r30464790 * r30464792;
        double r30464794 = r30464789 - r30464793;
        double r30464795 = r30464792 - r30464789;
        double r30464796 = r30464794 / r30464795;
        double r30464797 = acos(r30464796);
        return r30464797;
}


double f_of(float v) {
        float r30464798 = 1;
        float r30464799 = v;
        float r30464800 = 5;
        float r30464801 = r30464799 * r30464800;
        float r30464802 = r30464801 * r30464799;
        float r30464803 = r30464798 - r30464802;
        float r30464804 = r30464799 * r30464799;
        float r30464805 = r30464804 - r30464798;
        float r30464806 = r30464803 / r30464805;
        float r30464807 = acos(r30464806);
        float r30464808 = log(r30464807);
        float r30464809 = sqrt(r30464808);
        float r30464810 = exp(r30464809);
        float r30464811 = r30464800 * r30464804;
        float r30464812 = exp(r30464811);
        float r30464813 = log(r30464812);
        float r30464814 = r30464798 - r30464813;
        float r30464815 = r30464814 / r30464805;
        float r30464816 = acos(r30464815);
        float r30464817 = log(r30464816);
        float r30464818 = sqrt(r30464817);
        float r30464819 = pow(r30464810, r30464818);
        return r30464819;
}

double f_od(double v) {
        double r30464820 = 1;
        double r30464821 = v;
        double r30464822 = 5;
        double r30464823 = r30464821 * r30464822;
        double r30464824 = r30464823 * r30464821;
        double r30464825 = r30464820 - r30464824;
        double r30464826 = r30464821 * r30464821;
        double r30464827 = r30464826 - r30464820;
        double r30464828 = r30464825 / r30464827;
        double r30464829 = acos(r30464828);
        double r30464830 = log(r30464829);
        double r30464831 = sqrt(r30464830);
        double r30464832 = exp(r30464831);
        double r30464833 = r30464822 * r30464826;
        double r30464834 = exp(r30464833);
        double r30464835 = log(r30464834);
        double r30464836 = r30464820 - r30464835;
        double r30464837 = r30464836 / r30464827;
        double r30464838 = acos(r30464837);
        double r30464839 = log(r30464838);
        double r30464840 = sqrt(r30464839);
        double r30464841 = pow(r30464832, r30464840);
        return r30464841;
}

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 r30464842, r30464843, r30464844, r30464845, r30464846, r30464847, r30464848, r30464849, r30464850;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r30464842, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r30464843, "5", 10, MPFR_RNDN);
        mpfr_init(r30464844);
        mpfr_init(r30464845);
        mpfr_init(r30464846);
        mpfr_init(r30464847);
        mpfr_init(r30464848);
        mpfr_init(r30464849);
        mpfr_init(r30464850);
}

double f_im(double v) {
        ;
        ;
        mpfr_set_d(r30464844, v, MPFR_RNDN);
        mpfr_mul(r30464845, r30464844, r30464844, MPFR_RNDN);
        mpfr_mul(r30464846, r30464843, r30464845, MPFR_RNDN);
        mpfr_sub(r30464847, r30464842, r30464846, MPFR_RNDN);
        mpfr_sub(r30464848, r30464845, r30464842, MPFR_RNDN);
        mpfr_div(r30464849, r30464847, r30464848, MPFR_RNDN);
        mpfr_acos(r30464850, r30464849, MPFR_RNDN);
        return mpfr_get_d(r30464850, MPFR_RNDN);
}

static mpfr_t r30464851, r30464852, r30464853, r30464854, r30464855, r30464856, r30464857, r30464858, r30464859, r30464860, r30464861, r30464862, r30464863, r30464864, r30464865, r30464866, r30464867, r30464868, r30464869, r30464870, r30464871, r30464872;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r30464851, "1", 10, MPFR_RNDN);
        mpfr_init(r30464852);
        mpfr_init_set_str(r30464853, "5", 10, MPFR_RNDN);
        mpfr_init(r30464854);
        mpfr_init(r30464855);
        mpfr_init(r30464856);
        mpfr_init(r30464857);
        mpfr_init(r30464858);
        mpfr_init(r30464859);
        mpfr_init(r30464860);
        mpfr_init(r30464861);
        mpfr_init(r30464862);
        mpfr_init(r30464863);
        mpfr_init(r30464864);
        mpfr_init(r30464865);
        mpfr_init(r30464866);
        mpfr_init(r30464867);
        mpfr_init(r30464868);
        mpfr_init(r30464869);
        mpfr_init(r30464870);
        mpfr_init(r30464871);
        mpfr_init(r30464872);
}

double f_fm(double v) {
        ;
        mpfr_set_d(r30464852, v, MPFR_RNDN);
        ;
        mpfr_mul(r30464854, r30464852, r30464853, MPFR_RNDN);
        mpfr_mul(r30464855, r30464854, r30464852, MPFR_RNDN);
        mpfr_sub(r30464856, r30464851, r30464855, MPFR_RNDN);
        mpfr_mul(r30464857, r30464852, r30464852, MPFR_RNDN);
        mpfr_sub(r30464858, r30464857, r30464851, MPFR_RNDN);
        mpfr_div(r30464859, r30464856, r30464858, MPFR_RNDN);
        mpfr_acos(r30464860, r30464859, MPFR_RNDN);
        mpfr_log(r30464861, r30464860, MPFR_RNDN);
        mpfr_sqrt(r30464862, r30464861, MPFR_RNDN);
        mpfr_exp(r30464863, r30464862, MPFR_RNDN);
        mpfr_mul(r30464864, r30464853, r30464857, MPFR_RNDN);
        mpfr_exp(r30464865, r30464864, MPFR_RNDN);
        mpfr_log(r30464866, r30464865, MPFR_RNDN);
        mpfr_sub(r30464867, r30464851, r30464866, MPFR_RNDN);
        mpfr_div(r30464868, r30464867, r30464858, MPFR_RNDN);
        mpfr_acos(r30464869, r30464868, MPFR_RNDN);
        mpfr_log(r30464870, r30464869, MPFR_RNDN);
        mpfr_sqrt(r30464871, r30464870, MPFR_RNDN);
        mpfr_pow(r30464872, r30464863, r30464871, MPFR_RNDN);
        return mpfr_get_d(r30464872, MPFR_RNDN);
}

static mpfr_t r30464873, r30464874, r30464875, r30464876, r30464877, r30464878, r30464879, r30464880, r30464881, r30464882, r30464883, r30464884, r30464885, r30464886, r30464887, r30464888, r30464889, r30464890, r30464891, r30464892, r30464893, r30464894;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r30464873, "1", 10, MPFR_RNDN);
        mpfr_init(r30464874);
        mpfr_init_set_str(r30464875, "5", 10, MPFR_RNDN);
        mpfr_init(r30464876);
        mpfr_init(r30464877);
        mpfr_init(r30464878);
        mpfr_init(r30464879);
        mpfr_init(r30464880);
        mpfr_init(r30464881);
        mpfr_init(r30464882);
        mpfr_init(r30464883);
        mpfr_init(r30464884);
        mpfr_init(r30464885);
        mpfr_init(r30464886);
        mpfr_init(r30464887);
        mpfr_init(r30464888);
        mpfr_init(r30464889);
        mpfr_init(r30464890);
        mpfr_init(r30464891);
        mpfr_init(r30464892);
        mpfr_init(r30464893);
        mpfr_init(r30464894);
}

double f_dm(double v) {
        ;
        mpfr_set_d(r30464874, v, MPFR_RNDN);
        ;
        mpfr_mul(r30464876, r30464874, r30464875, MPFR_RNDN);
        mpfr_mul(r30464877, r30464876, r30464874, MPFR_RNDN);
        mpfr_sub(r30464878, r30464873, r30464877, MPFR_RNDN);
        mpfr_mul(r30464879, r30464874, r30464874, MPFR_RNDN);
        mpfr_sub(r30464880, r30464879, r30464873, MPFR_RNDN);
        mpfr_div(r30464881, r30464878, r30464880, MPFR_RNDN);
        mpfr_acos(r30464882, r30464881, MPFR_RNDN);
        mpfr_log(r30464883, r30464882, MPFR_RNDN);
        mpfr_sqrt(r30464884, r30464883, MPFR_RNDN);
        mpfr_exp(r30464885, r30464884, MPFR_RNDN);
        mpfr_mul(r30464886, r30464875, r30464879, MPFR_RNDN);
        mpfr_exp(r30464887, r30464886, MPFR_RNDN);
        mpfr_log(r30464888, r30464887, MPFR_RNDN);
        mpfr_sub(r30464889, r30464873, r30464888, MPFR_RNDN);
        mpfr_div(r30464890, r30464889, r30464880, MPFR_RNDN);
        mpfr_acos(r30464891, r30464890, MPFR_RNDN);
        mpfr_log(r30464892, r30464891, MPFR_RNDN);
        mpfr_sqrt(r30464893, r30464892, MPFR_RNDN);
        mpfr_pow(r30464894, r30464885, r30464893, MPFR_RNDN);
        return mpfr_get_d(r30464894, MPFR_RNDN);
}

