#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 r26937 = 1;
        float r26938 = 5;
        float r26939 = v;
        float r26940 = r26939 * r26939;
        float r26941 = r26938 * r26940;
        float r26942 = r26937 - r26941;
        float r26943 = atan2(1.0, 0.0);
        float r26944 = t;
        float r26945 = r26943 * r26944;
        float r26946 = 2;
        float r26947 = 3;
        float r26948 = r26947 * r26940;
        float r26949 = r26937 - r26948;
        float r26950 = r26946 * r26949;
        float r26951 = sqrt(r26950);
        float r26952 = r26945 * r26951;
        float r26953 = r26937 - r26940;
        float r26954 = r26952 * r26953;
        float r26955 = r26942 / r26954;
        return r26955;
}

double f_id(double v, double t) {
        double r26956 = 1;
        double r26957 = 5;
        double r26958 = v;
        double r26959 = r26958 * r26958;
        double r26960 = r26957 * r26959;
        double r26961 = r26956 - r26960;
        double r26962 = atan2(1.0, 0.0);
        double r26963 = t;
        double r26964 = r26962 * r26963;
        double r26965 = 2;
        double r26966 = 3;
        double r26967 = r26966 * r26959;
        double r26968 = r26956 - r26967;
        double r26969 = r26965 * r26968;
        double r26970 = sqrt(r26969);
        double r26971 = r26964 * r26970;
        double r26972 = r26956 - r26959;
        double r26973 = r26971 * r26972;
        double r26974 = r26961 / r26973;
        return r26974;
}


double f_of(float v, float t) {
        float r26975 = 1;
        float r26976 = atan2(1.0, 0.0);
        float r26977 = t;
        float r26978 = r26976 * r26977;
        float r26979 = 2;
        float r26980 = 3;
        float r26981 = v;
        float r26982 = r26981 * r26981;
        float r26983 = r26980 * r26982;
        float r26984 = r26975 - r26983;
        float r26985 = r26979 * r26984;
        float r26986 = sqrt(r26985);
        float r26987 = r26978 * r26986;
        float r26988 = r26975 - r26982;
        float r26989 = r26987 * r26988;
        float r26990 = r26975 / r26989;
        float r26991 = 5;
        float r26992 = r26991 * r26982;
        float r26993 = r26992 / r26989;
        float r26994 = r26990 - r26993;
        return r26994;
}

double f_od(double v, double t) {
        double r26995 = 1;
        double r26996 = atan2(1.0, 0.0);
        double r26997 = t;
        double r26998 = r26996 * r26997;
        double r26999 = 2;
        double r27000 = 3;
        double r27001 = v;
        double r27002 = r27001 * r27001;
        double r27003 = r27000 * r27002;
        double r27004 = r26995 - r27003;
        double r27005 = r26999 * r27004;
        double r27006 = sqrt(r27005);
        double r27007 = r26998 * r27006;
        double r27008 = r26995 - r27002;
        double r27009 = r27007 * r27008;
        double r27010 = r26995 / r27009;
        double r27011 = 5;
        double r27012 = r27011 * r27002;
        double r27013 = r27012 / r27009;
        double r27014 = r27010 - r27013;
        return r27014;
}

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 r27015, r27016, r27017, r27018, r27019, r27020, r27021, r27022, r27023, r27024, r27025, r27026, r27027, r27028, r27029, r27030, r27031, r27032, r27033;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r27015, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r27016, "5", 10, MPFR_RNDN);
        mpfr_init(r27017);
        mpfr_init(r27018);
        mpfr_init(r27019);
        mpfr_init(r27020);
        mpfr_init(r27021);
        mpfr_init(r27022);
        mpfr_init(r27023);
        mpfr_init_set_str(r27024, "2", 10, MPFR_RNDN);
        mpfr_init_set_str(r27025, "3", 10, MPFR_RNDN);
        mpfr_init(r27026);
        mpfr_init(r27027);
        mpfr_init(r27028);
        mpfr_init(r27029);
        mpfr_init(r27030);
        mpfr_init(r27031);
        mpfr_init(r27032);
        mpfr_init(r27033);
}

double f_im(double v, double t) {
        ;
        ;
        mpfr_set_d(r27017, v, MPFR_RNDN);
        mpfr_mul(r27018, r27017, r27017, MPFR_RNDN);
        mpfr_mul(r27019, r27016, r27018, MPFR_RNDN);
        mpfr_sub(r27020, r27015, r27019, MPFR_RNDN);
        mpfr_const_pi(r27021, MPFR_RNDN);
        mpfr_set_d(r27022, t, MPFR_RNDN);
        mpfr_mul(r27023, r27021, r27022, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r27026, r27025, r27018, MPFR_RNDN);
        mpfr_sub(r27027, r27015, r27026, MPFR_RNDN);
        mpfr_mul(r27028, r27024, r27027, MPFR_RNDN);
        mpfr_sqrt(r27029, r27028, MPFR_RNDN);
        mpfr_mul(r27030, r27023, r27029, MPFR_RNDN);
        mpfr_sub(r27031, r27015, r27018, MPFR_RNDN);
        mpfr_mul(r27032, r27030, r27031, MPFR_RNDN);
        mpfr_div(r27033, r27020, r27032, MPFR_RNDN);
        return mpfr_get_d(r27033, MPFR_RNDN);
}

static mpfr_t r27034, r27035, r27036, r27037, r27038, r27039, r27040, r27041, r27042, r27043, r27044, r27045, r27046, r27047, r27048, r27049, r27050, r27051, r27052, r27053;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r27034, "1", 10, MPFR_RNDN);
        mpfr_init(r27035);
        mpfr_init(r27036);
        mpfr_init(r27037);
        mpfr_init_set_str(r27038, "2", 10, MPFR_RNDN);
        mpfr_init_set_str(r27039, "3", 10, MPFR_RNDN);
        mpfr_init(r27040);
        mpfr_init(r27041);
        mpfr_init(r27042);
        mpfr_init(r27043);
        mpfr_init(r27044);
        mpfr_init(r27045);
        mpfr_init(r27046);
        mpfr_init(r27047);
        mpfr_init(r27048);
        mpfr_init(r27049);
        mpfr_init_set_str(r27050, "5", 10, MPFR_RNDN);
        mpfr_init(r27051);
        mpfr_init(r27052);
        mpfr_init(r27053);
}

double f_fm(double v, double t) {
        ;
        mpfr_const_pi(r27035, MPFR_RNDN);
        mpfr_set_d(r27036, t, MPFR_RNDN);
        mpfr_mul(r27037, r27035, r27036, MPFR_RNDN);
        ;
        ;
        mpfr_set_d(r27040, v, MPFR_RNDN);
        mpfr_mul(r27041, r27040, r27040, MPFR_RNDN);
        mpfr_mul(r27042, r27039, r27041, MPFR_RNDN);
        mpfr_sub(r27043, r27034, r27042, MPFR_RNDN);
        mpfr_mul(r27044, r27038, r27043, MPFR_RNDN);
        mpfr_sqrt(r27045, r27044, MPFR_RNDN);
        mpfr_mul(r27046, r27037, r27045, MPFR_RNDN);
        mpfr_sub(r27047, r27034, r27041, MPFR_RNDN);
        mpfr_mul(r27048, r27046, r27047, MPFR_RNDN);
        mpfr_div(r27049, r27034, r27048, MPFR_RNDN);
        ;
        mpfr_mul(r27051, r27050, r27041, MPFR_RNDN);
        mpfr_div(r27052, r27051, r27048, MPFR_RNDN);
        mpfr_sub(r27053, r27049, r27052, MPFR_RNDN);
        return mpfr_get_d(r27053, MPFR_RNDN);
}

static mpfr_t r27054, r27055, r27056, r27057, r27058, r27059, r27060, r27061, r27062, r27063, r27064, r27065, r27066, r27067, r27068, r27069, r27070, r27071, r27072, r27073;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r27054, "1", 10, MPFR_RNDN);
        mpfr_init(r27055);
        mpfr_init(r27056);
        mpfr_init(r27057);
        mpfr_init_set_str(r27058, "2", 10, MPFR_RNDN);
        mpfr_init_set_str(r27059, "3", 10, MPFR_RNDN);
        mpfr_init(r27060);
        mpfr_init(r27061);
        mpfr_init(r27062);
        mpfr_init(r27063);
        mpfr_init(r27064);
        mpfr_init(r27065);
        mpfr_init(r27066);
        mpfr_init(r27067);
        mpfr_init(r27068);
        mpfr_init(r27069);
        mpfr_init_set_str(r27070, "5", 10, MPFR_RNDN);
        mpfr_init(r27071);
        mpfr_init(r27072);
        mpfr_init(r27073);
}

double f_dm(double v, double t) {
        ;
        mpfr_const_pi(r27055, MPFR_RNDN);
        mpfr_set_d(r27056, t, MPFR_RNDN);
        mpfr_mul(r27057, r27055, r27056, MPFR_RNDN);
        ;
        ;
        mpfr_set_d(r27060, v, MPFR_RNDN);
        mpfr_mul(r27061, r27060, r27060, MPFR_RNDN);
        mpfr_mul(r27062, r27059, r27061, MPFR_RNDN);
        mpfr_sub(r27063, r27054, r27062, MPFR_RNDN);
        mpfr_mul(r27064, r27058, r27063, MPFR_RNDN);
        mpfr_sqrt(r27065, r27064, MPFR_RNDN);
        mpfr_mul(r27066, r27057, r27065, MPFR_RNDN);
        mpfr_sub(r27067, r27054, r27061, MPFR_RNDN);
        mpfr_mul(r27068, r27066, r27067, MPFR_RNDN);
        mpfr_div(r27069, r27054, r27068, MPFR_RNDN);
        ;
        mpfr_mul(r27071, r27070, r27061, MPFR_RNDN);
        mpfr_div(r27072, r27071, r27068, MPFR_RNDN);
        mpfr_sub(r27073, r27069, r27072, MPFR_RNDN);
        return mpfr_get_d(r27073, MPFR_RNDN);
}

