#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 r26845 = 4;
        float r26846 = 3;
        float r26847 = atan2(1.0, 0.0);
        float r26848 = r26846 * r26847;
        float r26849 = 1;
        float r26850 = v;
        float r26851 = r26850 * r26850;
        float r26852 = r26849 - r26851;
        float r26853 = r26848 * r26852;
        float r26854 = 2;
        float r26855 = 6;
        float r26856 = r26855 * r26851;
        float r26857 = r26854 - r26856;
        float r26858 = sqrt(r26857);
        float r26859 = r26853 * r26858;
        float r26860 = r26845 / r26859;
        return r26860;
}

double f_id(double v) {
        double r26861 = 4;
        double r26862 = 3;
        double r26863 = atan2(1.0, 0.0);
        double r26864 = r26862 * r26863;
        double r26865 = 1;
        double r26866 = v;
        double r26867 = r26866 * r26866;
        double r26868 = r26865 - r26867;
        double r26869 = r26864 * r26868;
        double r26870 = 2;
        double r26871 = 6;
        double r26872 = r26871 * r26867;
        double r26873 = r26870 - r26872;
        double r26874 = sqrt(r26873);
        double r26875 = r26869 * r26874;
        double r26876 = r26861 / r26875;
        return r26876;
}


double f_of(float v) {
        float r26877 = 4;
        float r26878 = atan2(1.0, 0.0);
        float r26879 = 3;
        float r26880 = r26878 * r26879;
        float r26881 = r26877 / r26880;
        float r26882 = 1;
        float r26883 = v;
        float r26884 = r26883 * r26883;
        float r26885 = r26882 - r26884;
        float r26886 = r26881 / r26885;
        float r26887 = 6;
        float r26888 = -r26887;
        float r26889 = 2;
        float r26890 = fma(r26888, r26884, r26889);
        float r26891 = sqrt(r26890);
        float r26892 = r26886 / r26891;
        float r26893 = pow(r26892, r26879);
        float r26894 = cbrt(r26893);
        return r26894;
}

double f_od(double v) {
        double r26895 = 4;
        double r26896 = atan2(1.0, 0.0);
        double r26897 = 3;
        double r26898 = r26896 * r26897;
        double r26899 = r26895 / r26898;
        double r26900 = 1;
        double r26901 = v;
        double r26902 = r26901 * r26901;
        double r26903 = r26900 - r26902;
        double r26904 = r26899 / r26903;
        double r26905 = 6;
        double r26906 = -r26905;
        double r26907 = 2;
        double r26908 = fma(r26906, r26902, r26907);
        double r26909 = sqrt(r26908);
        double r26910 = r26904 / r26909;
        double r26911 = pow(r26910, r26897);
        double r26912 = cbrt(r26911);
        return r26912;
}

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 r26913, r26914, r26915, r26916, r26917, r26918, r26919, r26920, r26921, r26922, r26923, r26924, r26925, r26926, r26927, r26928;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(336);
        mpfr_init_set_str(r26913, "4", 10, MPFR_RNDN);
        mpfr_init_set_str(r26914, "3", 10, MPFR_RNDN);
        mpfr_init(r26915);
        mpfr_init(r26916);
        mpfr_init_set_str(r26917, "1", 10, MPFR_RNDN);
        mpfr_init(r26918);
        mpfr_init(r26919);
        mpfr_init(r26920);
        mpfr_init(r26921);
        mpfr_init_set_str(r26922, "2", 10, MPFR_RNDN);
        mpfr_init_set_str(r26923, "6", 10, MPFR_RNDN);
        mpfr_init(r26924);
        mpfr_init(r26925);
        mpfr_init(r26926);
        mpfr_init(r26927);
        mpfr_init(r26928);
}

double f_im(double v) {
        ;
        ;
        mpfr_const_pi(r26915, MPFR_RNDN);
        mpfr_mul(r26916, r26914, r26915, MPFR_RNDN);
        ;
        mpfr_set_d(r26918, v, MPFR_RNDN);
        mpfr_mul(r26919, r26918, r26918, MPFR_RNDN);
        mpfr_sub(r26920, r26917, r26919, MPFR_RNDN);
        mpfr_mul(r26921, r26916, r26920, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r26924, r26923, r26919, MPFR_RNDN);
        mpfr_sub(r26925, r26922, r26924, MPFR_RNDN);
        mpfr_sqrt(r26926, r26925, MPFR_RNDN);
        mpfr_mul(r26927, r26921, r26926, MPFR_RNDN);
        mpfr_div(r26928, r26913, r26927, MPFR_RNDN);
        return mpfr_get_d(r26928, MPFR_RNDN);
}

static mpfr_t r26929, r26930, r26931, r26932, r26933, r26934, r26935, r26936, r26937, r26938, r26939, r26940, r26941, r26942, r26943, r26944, r26945, r26946;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(336);
        mpfr_init_set_str(r26929, "4", 10, MPFR_RNDN);
        mpfr_init(r26930);
        mpfr_init_set_str(r26931, "3", 10, MPFR_RNDN);
        mpfr_init(r26932);
        mpfr_init(r26933);
        mpfr_init_set_str(r26934, "1", 10, MPFR_RNDN);
        mpfr_init(r26935);
        mpfr_init(r26936);
        mpfr_init(r26937);
        mpfr_init(r26938);
        mpfr_init_set_str(r26939, "6", 10, MPFR_RNDN);
        mpfr_init(r26940);
        mpfr_init_set_str(r26941, "2", 10, MPFR_RNDN);
        mpfr_init(r26942);
        mpfr_init(r26943);
        mpfr_init(r26944);
        mpfr_init(r26945);
        mpfr_init(r26946);
}

double f_fm(double v) {
        ;
        mpfr_const_pi(r26930, MPFR_RNDN);
        ;
        mpfr_mul(r26932, r26930, r26931, MPFR_RNDN);
        mpfr_div(r26933, r26929, r26932, MPFR_RNDN);
        ;
        mpfr_set_d(r26935, v, MPFR_RNDN);
        mpfr_mul(r26936, r26935, r26935, MPFR_RNDN);
        mpfr_sub(r26937, r26934, r26936, MPFR_RNDN);
        mpfr_div(r26938, r26933, r26937, MPFR_RNDN);
        ;
        mpfr_neg(r26940, r26939, MPFR_RNDN);
        ;
        mpfr_fma(r26942, r26940, r26936, r26941, MPFR_RNDN);
        mpfr_sqrt(r26943, r26942, MPFR_RNDN);
        mpfr_div(r26944, r26938, r26943, MPFR_RNDN);
        mpfr_pow(r26945, r26944, r26931, MPFR_RNDN);
        mpfr_cbrt(r26946, r26945, MPFR_RNDN);
        return mpfr_get_d(r26946, MPFR_RNDN);
}

static mpfr_t r26947, r26948, r26949, r26950, r26951, r26952, r26953, r26954, r26955, r26956, r26957, r26958, r26959, r26960, r26961, r26962, r26963, r26964;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(336);
        mpfr_init_set_str(r26947, "4", 10, MPFR_RNDN);
        mpfr_init(r26948);
        mpfr_init_set_str(r26949, "3", 10, MPFR_RNDN);
        mpfr_init(r26950);
        mpfr_init(r26951);
        mpfr_init_set_str(r26952, "1", 10, MPFR_RNDN);
        mpfr_init(r26953);
        mpfr_init(r26954);
        mpfr_init(r26955);
        mpfr_init(r26956);
        mpfr_init_set_str(r26957, "6", 10, MPFR_RNDN);
        mpfr_init(r26958);
        mpfr_init_set_str(r26959, "2", 10, MPFR_RNDN);
        mpfr_init(r26960);
        mpfr_init(r26961);
        mpfr_init(r26962);
        mpfr_init(r26963);
        mpfr_init(r26964);
}

double f_dm(double v) {
        ;
        mpfr_const_pi(r26948, MPFR_RNDN);
        ;
        mpfr_mul(r26950, r26948, r26949, MPFR_RNDN);
        mpfr_div(r26951, r26947, r26950, MPFR_RNDN);
        ;
        mpfr_set_d(r26953, v, MPFR_RNDN);
        mpfr_mul(r26954, r26953, r26953, MPFR_RNDN);
        mpfr_sub(r26955, r26952, r26954, MPFR_RNDN);
        mpfr_div(r26956, r26951, r26955, MPFR_RNDN);
        ;
        mpfr_neg(r26958, r26957, MPFR_RNDN);
        ;
        mpfr_fma(r26960, r26958, r26954, r26959, MPFR_RNDN);
        mpfr_sqrt(r26961, r26960, MPFR_RNDN);
        mpfr_div(r26962, r26956, r26961, MPFR_RNDN);
        mpfr_pow(r26963, r26962, r26949, MPFR_RNDN);
        mpfr_cbrt(r26964, r26963, MPFR_RNDN);
        return mpfr_get_d(r26964, MPFR_RNDN);
}

