#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 r10780 = 1.0f;
        float r10781 = 5.0f;
        float r10782 = v;
        float r10783 = r10782 * r10782;
        float r10784 = r10781 * r10783;
        float r10785 = r10780 - r10784;
        float r10786 = r10783 - r10780;
        float r10787 = r10785 / r10786;
        float r10788 = acos(r10787);
        return r10788;
}

double f_id(double v) {
        double r10789 = 1.0;
        double r10790 = 5.0;
        double r10791 = v;
        double r10792 = r10791 * r10791;
        double r10793 = r10790 * r10792;
        double r10794 = r10789 - r10793;
        double r10795 = r10792 - r10789;
        double r10796 = r10794 / r10795;
        double r10797 = acos(r10796);
        return r10797;
}


double f_of(float v) {
        float r10798 = 1.0f;
        float r10799 = v;
        float r10800 = r10799 + r10798;
        float r10801 = r10798 / r10800;
        float r10802 = 5.0f;
        float r10803 = r10799 * r10799;
        float r10804 = r10802 * r10803;
        float r10805 = r10798 - r10804;
        float r10806 = r10799 - r10798;
        float r10807 = r10805 / r10806;
        float r10808 = r10801 * r10807;
        float r10809 = acos(r10808);
        return r10809;
}

double f_od(double v) {
        double r10810 = 1.0;
        double r10811 = v;
        double r10812 = r10811 + r10810;
        double r10813 = r10810 / r10812;
        double r10814 = 5.0;
        double r10815 = r10811 * r10811;
        double r10816 = r10814 * r10815;
        double r10817 = r10810 - r10816;
        double r10818 = r10811 - r10810;
        double r10819 = r10817 / r10818;
        double r10820 = r10813 * r10819;
        double r10821 = acos(r10820);
        return r10821;
}

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 r10822, r10823, r10824, r10825, r10826, r10827, r10828, r10829, r10830;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r10822, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r10823, "5", 10, MPFR_RNDN);
        mpfr_init(r10824);
        mpfr_init(r10825);
        mpfr_init(r10826);
        mpfr_init(r10827);
        mpfr_init(r10828);
        mpfr_init(r10829);
        mpfr_init(r10830);
}

double f_im(double v) {
        ;
        ;
        mpfr_set_d(r10824, v, MPFR_RNDN);
        mpfr_mul(r10825, r10824, r10824, MPFR_RNDN);
        mpfr_mul(r10826, r10823, r10825, MPFR_RNDN);
        mpfr_sub(r10827, r10822, r10826, MPFR_RNDN);
        mpfr_sub(r10828, r10825, r10822, MPFR_RNDN);
        mpfr_div(r10829, r10827, r10828, MPFR_RNDN);
        mpfr_acos(r10830, r10829, MPFR_RNDN);
        return mpfr_get_d(r10830, MPFR_RNDN);
}

static mpfr_t r10831, r10832, r10833, r10834, r10835, r10836, r10837, r10838, r10839, r10840, r10841, r10842;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r10831, "1", 10, MPFR_RNDN);
        mpfr_init(r10832);
        mpfr_init(r10833);
        mpfr_init(r10834);
        mpfr_init_set_str(r10835, "5", 10, MPFR_RNDN);
        mpfr_init(r10836);
        mpfr_init(r10837);
        mpfr_init(r10838);
        mpfr_init(r10839);
        mpfr_init(r10840);
        mpfr_init(r10841);
        mpfr_init(r10842);
}

double f_fm(double v) {
        ;
        mpfr_set_d(r10832, v, MPFR_RNDN);
        mpfr_add(r10833, r10832, r10831, MPFR_RNDN);
        mpfr_div(r10834, r10831, r10833, MPFR_RNDN);
        ;
        mpfr_mul(r10836, r10832, r10832, MPFR_RNDN);
        mpfr_mul(r10837, r10835, r10836, MPFR_RNDN);
        mpfr_sub(r10838, r10831, r10837, MPFR_RNDN);
        mpfr_sub(r10839, r10832, r10831, MPFR_RNDN);
        mpfr_div(r10840, r10838, r10839, MPFR_RNDN);
        mpfr_mul(r10841, r10834, r10840, MPFR_RNDN);
        mpfr_acos(r10842, r10841, MPFR_RNDN);
        return mpfr_get_d(r10842, MPFR_RNDN);
}

static mpfr_t r10843, r10844, r10845, r10846, r10847, r10848, r10849, r10850, r10851, r10852, r10853, r10854;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r10843, "1", 10, MPFR_RNDN);
        mpfr_init(r10844);
        mpfr_init(r10845);
        mpfr_init(r10846);
        mpfr_init_set_str(r10847, "5", 10, MPFR_RNDN);
        mpfr_init(r10848);
        mpfr_init(r10849);
        mpfr_init(r10850);
        mpfr_init(r10851);
        mpfr_init(r10852);
        mpfr_init(r10853);
        mpfr_init(r10854);
}

double f_dm(double v) {
        ;
        mpfr_set_d(r10844, v, MPFR_RNDN);
        mpfr_add(r10845, r10844, r10843, MPFR_RNDN);
        mpfr_div(r10846, r10843, r10845, MPFR_RNDN);
        ;
        mpfr_mul(r10848, r10844, r10844, MPFR_RNDN);
        mpfr_mul(r10849, r10847, r10848, MPFR_RNDN);
        mpfr_sub(r10850, r10843, r10849, MPFR_RNDN);
        mpfr_sub(r10851, r10844, r10843, MPFR_RNDN);
        mpfr_div(r10852, r10850, r10851, MPFR_RNDN);
        mpfr_mul(r10853, r10846, r10852, MPFR_RNDN);
        mpfr_acos(r10854, r10853, MPFR_RNDN);
        return mpfr_get_d(r10854, MPFR_RNDN);
}

