#include <tgmath.h>
#include <gmp.h>
#include <mpfr.h>
#include <stdio.h>
#include <stdbool.h>

char *name = "Falkner and Boettcher, Equation (20:1,3)";

double f_if(float v, float t) {
        float r26823 = 1;
        float r26824 = 5;
        float r26825 = v;
        float r26826 = r26825 * r26825;
        float r26827 = r26824 * r26826;
        float r26828 = r26823 - r26827;
        float r26829 = atan2(1.0, 0.0);
        float r26830 = t;
        float r26831 = r26829 * r26830;
        float r26832 = 2;
        float r26833 = 3;
        float r26834 = r26833 * r26826;
        float r26835 = r26823 - r26834;
        float r26836 = r26832 * r26835;
        float r26837 = sqrt(r26836);
        float r26838 = r26831 * r26837;
        float r26839 = r26823 - r26826;
        float r26840 = r26838 * r26839;
        float r26841 = r26828 / r26840;
        return r26841;
}

double f_id(double v, double t) {
        double r26842 = 1;
        double r26843 = 5;
        double r26844 = v;
        double r26845 = r26844 * r26844;
        double r26846 = r26843 * r26845;
        double r26847 = r26842 - r26846;
        double r26848 = atan2(1.0, 0.0);
        double r26849 = t;
        double r26850 = r26848 * r26849;
        double r26851 = 2;
        double r26852 = 3;
        double r26853 = r26852 * r26845;
        double r26854 = r26842 - r26853;
        double r26855 = r26851 * r26854;
        double r26856 = sqrt(r26855);
        double r26857 = r26850 * r26856;
        double r26858 = r26842 - r26845;
        double r26859 = r26857 * r26858;
        double r26860 = r26847 / r26859;
        return r26860;
}


double f_of(float v, float t) {
        float r26861 = 1;
        float r26862 = v;
        float r26863 = 5;
        float r26864 = r26862 * r26863;
        float r26865 = r26862 * r26864;
        float r26866 = r26861 - r26865;
        float r26867 = t;
        float r26868 = r26866 / r26867;
        float r26869 = atan2(1.0, 0.0);
        float r26870 = r26862 * r26862;
        float r26871 = r26870 * r26870;
        float r26872 = r26861 - r26871;
        float r26873 = r26869 * r26872;
        float r26874 = 2;
        float r26875 = 3;
        float r26876 = r26875 * r26870;
        float r26877 = r26861 - r26876;
        float r26878 = r26874 * r26877;
        float r26879 = sqrt(r26878);
        float r26880 = r26873 * r26879;
        float r26881 = r26861 / r26880;
        float r26882 = r26868 * r26881;
        float r26883 = r26861 + r26870;
        float r26884 = r26882 * r26883;
        return r26884;
}

double f_od(double v, double t) {
        double r26885 = 1;
        double r26886 = v;
        double r26887 = 5;
        double r26888 = r26886 * r26887;
        double r26889 = r26886 * r26888;
        double r26890 = r26885 - r26889;
        double r26891 = t;
        double r26892 = r26890 / r26891;
        double r26893 = atan2(1.0, 0.0);
        double r26894 = r26886 * r26886;
        double r26895 = r26894 * r26894;
        double r26896 = r26885 - r26895;
        double r26897 = r26893 * r26896;
        double r26898 = 2;
        double r26899 = 3;
        double r26900 = r26899 * r26894;
        double r26901 = r26885 - r26900;
        double r26902 = r26898 * r26901;
        double r26903 = sqrt(r26902);
        double r26904 = r26897 * r26903;
        double r26905 = r26885 / r26904;
        double r26906 = r26892 * r26905;
        double r26907 = r26885 + r26894;
        double r26908 = r26906 * r26907;
        return r26908;
}

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

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r26909, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r26910, "5", 10, MPFR_RNDN);
        mpfr_init(r26911);
        mpfr_init(r26912);
        mpfr_init(r26913);
        mpfr_init(r26914);
        mpfr_init(r26915);
        mpfr_init(r26916);
        mpfr_init(r26917);
        mpfr_init_set_str(r26918, "2", 10, MPFR_RNDN);
        mpfr_init_set_str(r26919, "3", 10, MPFR_RNDN);
        mpfr_init(r26920);
        mpfr_init(r26921);
        mpfr_init(r26922);
        mpfr_init(r26923);
        mpfr_init(r26924);
        mpfr_init(r26925);
        mpfr_init(r26926);
        mpfr_init(r26927);
}

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

static mpfr_t r26928, r26929, r26930, r26931, r26932, r26933, r26934, r26935, r26936, r26937, r26938, r26939, r26940, r26941, r26942, r26943, r26944, r26945, r26946, r26947, r26948, r26949, r26950, r26951;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r26928, "1", 10, MPFR_RNDN);
        mpfr_init(r26929);
        mpfr_init_set_str(r26930, "5", 10, MPFR_RNDN);
        mpfr_init(r26931);
        mpfr_init(r26932);
        mpfr_init(r26933);
        mpfr_init(r26934);
        mpfr_init(r26935);
        mpfr_init(r26936);
        mpfr_init(r26937);
        mpfr_init(r26938);
        mpfr_init(r26939);
        mpfr_init(r26940);
        mpfr_init_set_str(r26941, "2", 10, MPFR_RNDN);
        mpfr_init_set_str(r26942, "3", 10, MPFR_RNDN);
        mpfr_init(r26943);
        mpfr_init(r26944);
        mpfr_init(r26945);
        mpfr_init(r26946);
        mpfr_init(r26947);
        mpfr_init(r26948);
        mpfr_init(r26949);
        mpfr_init(r26950);
        mpfr_init(r26951);
}

double f_fm(double v, double t) {
        ;
        mpfr_set_d(r26929, v, MPFR_RNDN);
        ;
        mpfr_mul(r26931, r26929, r26930, MPFR_RNDN);
        mpfr_mul(r26932, r26929, r26931, MPFR_RNDN);
        mpfr_sub(r26933, r26928, r26932, MPFR_RNDN);
        mpfr_set_d(r26934, t, MPFR_RNDN);
        mpfr_div(r26935, r26933, r26934, MPFR_RNDN);
        mpfr_const_pi(r26936, MPFR_RNDN);
        mpfr_mul(r26937, r26929, r26929, MPFR_RNDN);
        mpfr_mul(r26938, r26937, r26937, MPFR_RNDN);
        mpfr_sub(r26939, r26928, r26938, MPFR_RNDN);
        mpfr_mul(r26940, r26936, r26939, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r26943, r26942, r26937, MPFR_RNDN);
        mpfr_sub(r26944, r26928, r26943, MPFR_RNDN);
        mpfr_mul(r26945, r26941, r26944, MPFR_RNDN);
        mpfr_sqrt(r26946, r26945, MPFR_RNDN);
        mpfr_mul(r26947, r26940, r26946, MPFR_RNDN);
        mpfr_div(r26948, r26928, r26947, MPFR_RNDN);
        mpfr_mul(r26949, r26935, r26948, MPFR_RNDN);
        mpfr_add(r26950, r26928, r26937, MPFR_RNDN);
        mpfr_mul(r26951, r26949, r26950, MPFR_RNDN);
        return mpfr_get_d(r26951, MPFR_RNDN);
}

static mpfr_t r26952, r26953, r26954, r26955, r26956, r26957, r26958, r26959, r26960, r26961, r26962, r26963, r26964, r26965, r26966, r26967, r26968, r26969, r26970, r26971, r26972, r26973, r26974, r26975;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r26952, "1", 10, MPFR_RNDN);
        mpfr_init(r26953);
        mpfr_init_set_str(r26954, "5", 10, MPFR_RNDN);
        mpfr_init(r26955);
        mpfr_init(r26956);
        mpfr_init(r26957);
        mpfr_init(r26958);
        mpfr_init(r26959);
        mpfr_init(r26960);
        mpfr_init(r26961);
        mpfr_init(r26962);
        mpfr_init(r26963);
        mpfr_init(r26964);
        mpfr_init_set_str(r26965, "2", 10, MPFR_RNDN);
        mpfr_init_set_str(r26966, "3", 10, MPFR_RNDN);
        mpfr_init(r26967);
        mpfr_init(r26968);
        mpfr_init(r26969);
        mpfr_init(r26970);
        mpfr_init(r26971);
        mpfr_init(r26972);
        mpfr_init(r26973);
        mpfr_init(r26974);
        mpfr_init(r26975);
}

double f_dm(double v, double t) {
        ;
        mpfr_set_d(r26953, v, MPFR_RNDN);
        ;
        mpfr_mul(r26955, r26953, r26954, MPFR_RNDN);
        mpfr_mul(r26956, r26953, r26955, MPFR_RNDN);
        mpfr_sub(r26957, r26952, r26956, MPFR_RNDN);
        mpfr_set_d(r26958, t, MPFR_RNDN);
        mpfr_div(r26959, r26957, r26958, MPFR_RNDN);
        mpfr_const_pi(r26960, MPFR_RNDN);
        mpfr_mul(r26961, r26953, r26953, MPFR_RNDN);
        mpfr_mul(r26962, r26961, r26961, MPFR_RNDN);
        mpfr_sub(r26963, r26952, r26962, MPFR_RNDN);
        mpfr_mul(r26964, r26960, r26963, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r26967, r26966, r26961, MPFR_RNDN);
        mpfr_sub(r26968, r26952, r26967, MPFR_RNDN);
        mpfr_mul(r26969, r26965, r26968, MPFR_RNDN);
        mpfr_sqrt(r26970, r26969, MPFR_RNDN);
        mpfr_mul(r26971, r26964, r26970, MPFR_RNDN);
        mpfr_div(r26972, r26952, r26971, MPFR_RNDN);
        mpfr_mul(r26973, r26959, r26972, MPFR_RNDN);
        mpfr_add(r26974, r26952, r26961, MPFR_RNDN);
        mpfr_mul(r26975, r26973, r26974, MPFR_RNDN);
        return mpfr_get_d(r26975, MPFR_RNDN);
}

