#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 r32908 = 4;
        float r32909 = 3;
        float r32910 = atan2(1.0, 0.0);
        float r32911 = r32909 * r32910;
        float r32912 = 1;
        float r32913 = v;
        float r32914 = r32913 * r32913;
        float r32915 = r32912 - r32914;
        float r32916 = r32911 * r32915;
        float r32917 = 2;
        float r32918 = 6;
        float r32919 = r32918 * r32914;
        float r32920 = r32917 - r32919;
        float r32921 = sqrt(r32920);
        float r32922 = r32916 * r32921;
        float r32923 = r32908 / r32922;
        return r32923;
}

double f_id(double v) {
        double r32924 = 4;
        double r32925 = 3;
        double r32926 = atan2(1.0, 0.0);
        double r32927 = r32925 * r32926;
        double r32928 = 1;
        double r32929 = v;
        double r32930 = r32929 * r32929;
        double r32931 = r32928 - r32930;
        double r32932 = r32927 * r32931;
        double r32933 = 2;
        double r32934 = 6;
        double r32935 = r32934 * r32930;
        double r32936 = r32933 - r32935;
        double r32937 = sqrt(r32936);
        double r32938 = r32932 * r32937;
        double r32939 = r32924 / r32938;
        return r32939;
}


double f_of(float v) {
        float r32940 = 4;
        float r32941 = 3;
        float r32942 = r32940 / r32941;
        float r32943 = atan2(1.0, 0.0);
        float r32944 = v;
        float r32945 = r32943 * r32944;
        float r32946 = r32945 * r32944;
        float r32947 = r32943 - r32946;
        float r32948 = r32942 / r32947;
        float r32949 = 2;
        float r32950 = 6;
        float r32951 = r32944 * r32944;
        float r32952 = r32950 * r32951;
        float r32953 = r32949 - r32952;
        float r32954 = sqrt(r32953);
        float r32955 = r32948 / r32954;
        return r32955;
}

double f_od(double v) {
        double r32956 = 4;
        double r32957 = 3;
        double r32958 = r32956 / r32957;
        double r32959 = atan2(1.0, 0.0);
        double r32960 = v;
        double r32961 = r32959 * r32960;
        double r32962 = r32961 * r32960;
        double r32963 = r32959 - r32962;
        double r32964 = r32958 / r32963;
        double r32965 = 2;
        double r32966 = 6;
        double r32967 = r32960 * r32960;
        double r32968 = r32966 * r32967;
        double r32969 = r32965 - r32968;
        double r32970 = sqrt(r32969);
        double r32971 = r32964 / r32970;
        return r32971;
}

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 r32972, r32973, r32974, r32975, r32976, r32977, r32978, r32979, r32980, r32981, r32982, r32983, r32984, r32985, r32986, r32987;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r32972, "4", 10, MPFR_RNDN);
        mpfr_init_set_str(r32973, "3", 10, MPFR_RNDN);
        mpfr_init(r32974);
        mpfr_init(r32975);
        mpfr_init_set_str(r32976, "1", 10, MPFR_RNDN);
        mpfr_init(r32977);
        mpfr_init(r32978);
        mpfr_init(r32979);
        mpfr_init(r32980);
        mpfr_init_set_str(r32981, "2", 10, MPFR_RNDN);
        mpfr_init_set_str(r32982, "6", 10, MPFR_RNDN);
        mpfr_init(r32983);
        mpfr_init(r32984);
        mpfr_init(r32985);
        mpfr_init(r32986);
        mpfr_init(r32987);
}

double f_im(double v) {
        ;
        ;
        mpfr_const_pi(r32974, MPFR_RNDN);
        mpfr_mul(r32975, r32973, r32974, MPFR_RNDN);
        ;
        mpfr_set_d(r32977, v, MPFR_RNDN);
        mpfr_mul(r32978, r32977, r32977, MPFR_RNDN);
        mpfr_sub(r32979, r32976, r32978, MPFR_RNDN);
        mpfr_mul(r32980, r32975, r32979, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r32983, r32982, r32978, MPFR_RNDN);
        mpfr_sub(r32984, r32981, r32983, MPFR_RNDN);
        mpfr_sqrt(r32985, r32984, MPFR_RNDN);
        mpfr_mul(r32986, r32980, r32985, MPFR_RNDN);
        mpfr_div(r32987, r32972, r32986, MPFR_RNDN);
        return mpfr_get_d(r32987, MPFR_RNDN);
}

static mpfr_t r32988, r32989, r32990, r32991, r32992, r32993, r32994, r32995, r32996, r32997, r32998, r32999, r33000, r33001, r33002, r33003;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r32988, "4", 10, MPFR_RNDN);
        mpfr_init_set_str(r32989, "3", 10, MPFR_RNDN);
        mpfr_init(r32990);
        mpfr_init(r32991);
        mpfr_init(r32992);
        mpfr_init(r32993);
        mpfr_init(r32994);
        mpfr_init(r32995);
        mpfr_init(r32996);
        mpfr_init_set_str(r32997, "2", 10, MPFR_RNDN);
        mpfr_init_set_str(r32998, "6", 10, MPFR_RNDN);
        mpfr_init(r32999);
        mpfr_init(r33000);
        mpfr_init(r33001);
        mpfr_init(r33002);
        mpfr_init(r33003);
}

double f_fm(double v) {
        ;
        ;
        mpfr_div(r32990, r32988, r32989, MPFR_RNDN);
        mpfr_const_pi(r32991, MPFR_RNDN);
        mpfr_set_d(r32992, v, MPFR_RNDN);
        mpfr_mul(r32993, r32991, r32992, MPFR_RNDN);
        mpfr_mul(r32994, r32993, r32992, MPFR_RNDN);
        mpfr_sub(r32995, r32991, r32994, MPFR_RNDN);
        mpfr_div(r32996, r32990, r32995, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r32999, r32992, r32992, MPFR_RNDN);
        mpfr_mul(r33000, r32998, r32999, MPFR_RNDN);
        mpfr_sub(r33001, r32997, r33000, MPFR_RNDN);
        mpfr_sqrt(r33002, r33001, MPFR_RNDN);
        mpfr_div(r33003, r32996, r33002, MPFR_RNDN);
        return mpfr_get_d(r33003, MPFR_RNDN);
}

static mpfr_t r33004, r33005, r33006, r33007, r33008, r33009, r33010, r33011, r33012, r33013, r33014, r33015, r33016, r33017, r33018, r33019;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r33004, "4", 10, MPFR_RNDN);
        mpfr_init_set_str(r33005, "3", 10, MPFR_RNDN);
        mpfr_init(r33006);
        mpfr_init(r33007);
        mpfr_init(r33008);
        mpfr_init(r33009);
        mpfr_init(r33010);
        mpfr_init(r33011);
        mpfr_init(r33012);
        mpfr_init_set_str(r33013, "2", 10, MPFR_RNDN);
        mpfr_init_set_str(r33014, "6", 10, MPFR_RNDN);
        mpfr_init(r33015);
        mpfr_init(r33016);
        mpfr_init(r33017);
        mpfr_init(r33018);
        mpfr_init(r33019);
}

double f_dm(double v) {
        ;
        ;
        mpfr_div(r33006, r33004, r33005, MPFR_RNDN);
        mpfr_const_pi(r33007, MPFR_RNDN);
        mpfr_set_d(r33008, v, MPFR_RNDN);
        mpfr_mul(r33009, r33007, r33008, MPFR_RNDN);
        mpfr_mul(r33010, r33009, r33008, MPFR_RNDN);
        mpfr_sub(r33011, r33007, r33010, MPFR_RNDN);
        mpfr_div(r33012, r33006, r33011, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r33015, r33008, r33008, MPFR_RNDN);
        mpfr_mul(r33016, r33014, r33015, MPFR_RNDN);
        mpfr_sub(r33017, r33013, r33016, MPFR_RNDN);
        mpfr_sqrt(r33018, r33017, MPFR_RNDN);
        mpfr_div(r33019, r33012, r33018, MPFR_RNDN);
        return mpfr_get_d(r33019, MPFR_RNDN);
}

