#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 r26965 = 1;
        float r26966 = 5;
        float r26967 = v;
        float r26968 = r26967 * r26967;
        float r26969 = r26966 * r26968;
        float r26970 = r26965 - r26969;
        float r26971 = atan2(1.0, 0.0);
        float r26972 = t;
        float r26973 = r26971 * r26972;
        float r26974 = 2;
        float r26975 = 3;
        float r26976 = r26975 * r26968;
        float r26977 = r26965 - r26976;
        float r26978 = r26974 * r26977;
        float r26979 = sqrt(r26978);
        float r26980 = r26973 * r26979;
        float r26981 = r26965 - r26968;
        float r26982 = r26980 * r26981;
        float r26983 = r26970 / r26982;
        return r26983;
}

double f_id(double v, double t) {
        double r26984 = 1;
        double r26985 = 5;
        double r26986 = v;
        double r26987 = r26986 * r26986;
        double r26988 = r26985 * r26987;
        double r26989 = r26984 - r26988;
        double r26990 = atan2(1.0, 0.0);
        double r26991 = t;
        double r26992 = r26990 * r26991;
        double r26993 = 2;
        double r26994 = 3;
        double r26995 = r26994 * r26987;
        double r26996 = r26984 - r26995;
        double r26997 = r26993 * r26996;
        double r26998 = sqrt(r26997);
        double r26999 = r26992 * r26998;
        double r27000 = r26984 - r26987;
        double r27001 = r26999 * r27000;
        double r27002 = r26989 / r27001;
        return r27002;
}


double f_of(float v, float t) {
        float r27003 = 5;
        float r27004 = -r27003;
        float r27005 = v;
        float r27006 = r27005 * r27005;
        float r27007 = 1;
        float r27008 = fma(r27004, r27006, r27007);
        float r27009 = 3;
        float r27010 = -r27009;
        float r27011 = r27006 * r27010;
        float r27012 = r27006 * r27009;
        float r27013 = fma(r27011, r27012, r27007);
        float r27014 = 2;
        float r27015 = r27013 * r27014;
        float r27016 = sqrt(r27015);
        float r27017 = r27008 / r27016;
        float r27018 = pow(r27005, r27009);
        float r27019 = -r27005;
        float r27020 = fma(r27018, r27019, r27007);
        float r27021 = t;
        float r27022 = atan2(1.0, 0.0);
        float r27023 = r27021 * r27022;
        float r27024 = r27020 * r27023;
        float r27025 = r27017 / r27024;
        float r27026 = r27009 * r27006;
        float r27027 = r27007 + r27026;
        float r27028 = sqrt(r27027);
        float r27029 = r27007 + r27006;
        float r27030 = r27028 * r27029;
        float r27031 = r27025 * r27030;
        return r27031;
}

double f_od(double v, double t) {
        double r27032 = 5;
        double r27033 = -r27032;
        double r27034 = v;
        double r27035 = r27034 * r27034;
        double r27036 = 1;
        double r27037 = fma(r27033, r27035, r27036);
        double r27038 = 3;
        double r27039 = -r27038;
        double r27040 = r27035 * r27039;
        double r27041 = r27035 * r27038;
        double r27042 = fma(r27040, r27041, r27036);
        double r27043 = 2;
        double r27044 = r27042 * r27043;
        double r27045 = sqrt(r27044);
        double r27046 = r27037 / r27045;
        double r27047 = pow(r27034, r27038);
        double r27048 = -r27034;
        double r27049 = fma(r27047, r27048, r27036);
        double r27050 = t;
        double r27051 = atan2(1.0, 0.0);
        double r27052 = r27050 * r27051;
        double r27053 = r27049 * r27052;
        double r27054 = r27046 / r27053;
        double r27055 = r27038 * r27035;
        double r27056 = r27036 + r27055;
        double r27057 = sqrt(r27056);
        double r27058 = r27036 + r27035;
        double r27059 = r27057 * r27058;
        double r27060 = r27054 * r27059;
        return r27060;
}

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 r27061, r27062, r27063, r27064, r27065, r27066, r27067, r27068, r27069, r27070, r27071, r27072, r27073, r27074, r27075, r27076, r27077, r27078, r27079;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r27061, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r27062, "5", 10, MPFR_RNDN);
        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, "2", 10, MPFR_RNDN);
        mpfr_init_set_str(r27071, "3", 10, MPFR_RNDN);
        mpfr_init(r27072);
        mpfr_init(r27073);
        mpfr_init(r27074);
        mpfr_init(r27075);
        mpfr_init(r27076);
        mpfr_init(r27077);
        mpfr_init(r27078);
        mpfr_init(r27079);
}

double f_im(double v, double t) {
        ;
        ;
        mpfr_set_d(r27063, v, MPFR_RNDN);
        mpfr_mul(r27064, r27063, r27063, MPFR_RNDN);
        mpfr_mul(r27065, r27062, r27064, MPFR_RNDN);
        mpfr_sub(r27066, r27061, r27065, MPFR_RNDN);
        mpfr_const_pi(r27067, MPFR_RNDN);
        mpfr_set_d(r27068, t, MPFR_RNDN);
        mpfr_mul(r27069, r27067, r27068, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r27072, r27071, r27064, MPFR_RNDN);
        mpfr_sub(r27073, r27061, r27072, MPFR_RNDN);
        mpfr_mul(r27074, r27070, r27073, MPFR_RNDN);
        mpfr_sqrt(r27075, r27074, MPFR_RNDN);
        mpfr_mul(r27076, r27069, r27075, MPFR_RNDN);
        mpfr_sub(r27077, r27061, r27064, MPFR_RNDN);
        mpfr_mul(r27078, r27076, r27077, MPFR_RNDN);
        mpfr_div(r27079, r27066, r27078, MPFR_RNDN);
        return mpfr_get_d(r27079, MPFR_RNDN);
}

static mpfr_t r27080, r27081, r27082, r27083, r27084, r27085, r27086, r27087, r27088, r27089, r27090, r27091, r27092, r27093, r27094, r27095, r27096, r27097, r27098, r27099, r27100, r27101, r27102, r27103, r27104, r27105, r27106, r27107, r27108;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r27080, "5", 10, MPFR_RNDN);
        mpfr_init(r27081);
        mpfr_init(r27082);
        mpfr_init(r27083);
        mpfr_init_set_str(r27084, "1", 10, MPFR_RNDN);
        mpfr_init(r27085);
        mpfr_init_set_str(r27086, "3", 10, MPFR_RNDN);
        mpfr_init(r27087);
        mpfr_init(r27088);
        mpfr_init(r27089);
        mpfr_init(r27090);
        mpfr_init_set_str(r27091, "2", 10, MPFR_RNDN);
        mpfr_init(r27092);
        mpfr_init(r27093);
        mpfr_init(r27094);
        mpfr_init(r27095);
        mpfr_init(r27096);
        mpfr_init(r27097);
        mpfr_init(r27098);
        mpfr_init(r27099);
        mpfr_init(r27100);
        mpfr_init(r27101);
        mpfr_init(r27102);
        mpfr_init(r27103);
        mpfr_init(r27104);
        mpfr_init(r27105);
        mpfr_init(r27106);
        mpfr_init(r27107);
        mpfr_init(r27108);
}

double f_fm(double v, double t) {
        ;
        mpfr_neg(r27081, r27080, MPFR_RNDN);
        mpfr_set_d(r27082, v, MPFR_RNDN);
        mpfr_mul(r27083, r27082, r27082, MPFR_RNDN);
        ;
        mpfr_fma(r27085, r27081, r27083, r27084, MPFR_RNDN);
        ;
        mpfr_neg(r27087, r27086, MPFR_RNDN);
        mpfr_mul(r27088, r27083, r27087, MPFR_RNDN);
        mpfr_mul(r27089, r27083, r27086, MPFR_RNDN);
        mpfr_fma(r27090, r27088, r27089, r27084, MPFR_RNDN);
        ;
        mpfr_mul(r27092, r27090, r27091, MPFR_RNDN);
        mpfr_sqrt(r27093, r27092, MPFR_RNDN);
        mpfr_div(r27094, r27085, r27093, MPFR_RNDN);
        mpfr_pow(r27095, r27082, r27086, MPFR_RNDN);
        mpfr_neg(r27096, r27082, MPFR_RNDN);
        mpfr_fma(r27097, r27095, r27096, r27084, MPFR_RNDN);
        mpfr_set_d(r27098, t, MPFR_RNDN);
        mpfr_const_pi(r27099, MPFR_RNDN);
        mpfr_mul(r27100, r27098, r27099, MPFR_RNDN);
        mpfr_mul(r27101, r27097, r27100, MPFR_RNDN);
        mpfr_div(r27102, r27094, r27101, MPFR_RNDN);
        mpfr_mul(r27103, r27086, r27083, MPFR_RNDN);
        mpfr_add(r27104, r27084, r27103, MPFR_RNDN);
        mpfr_sqrt(r27105, r27104, MPFR_RNDN);
        mpfr_add(r27106, r27084, r27083, MPFR_RNDN);
        mpfr_mul(r27107, r27105, r27106, MPFR_RNDN);
        mpfr_mul(r27108, r27102, r27107, MPFR_RNDN);
        return mpfr_get_d(r27108, MPFR_RNDN);
}

static mpfr_t r27109, r27110, r27111, r27112, r27113, r27114, r27115, r27116, r27117, r27118, r27119, r27120, r27121, r27122, r27123, r27124, r27125, r27126, r27127, r27128, r27129, r27130, r27131, r27132, r27133, r27134, r27135, r27136, r27137;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r27109, "5", 10, MPFR_RNDN);
        mpfr_init(r27110);
        mpfr_init(r27111);
        mpfr_init(r27112);
        mpfr_init_set_str(r27113, "1", 10, MPFR_RNDN);
        mpfr_init(r27114);
        mpfr_init_set_str(r27115, "3", 10, MPFR_RNDN);
        mpfr_init(r27116);
        mpfr_init(r27117);
        mpfr_init(r27118);
        mpfr_init(r27119);
        mpfr_init_set_str(r27120, "2", 10, MPFR_RNDN);
        mpfr_init(r27121);
        mpfr_init(r27122);
        mpfr_init(r27123);
        mpfr_init(r27124);
        mpfr_init(r27125);
        mpfr_init(r27126);
        mpfr_init(r27127);
        mpfr_init(r27128);
        mpfr_init(r27129);
        mpfr_init(r27130);
        mpfr_init(r27131);
        mpfr_init(r27132);
        mpfr_init(r27133);
        mpfr_init(r27134);
        mpfr_init(r27135);
        mpfr_init(r27136);
        mpfr_init(r27137);
}

double f_dm(double v, double t) {
        ;
        mpfr_neg(r27110, r27109, MPFR_RNDN);
        mpfr_set_d(r27111, v, MPFR_RNDN);
        mpfr_mul(r27112, r27111, r27111, MPFR_RNDN);
        ;
        mpfr_fma(r27114, r27110, r27112, r27113, MPFR_RNDN);
        ;
        mpfr_neg(r27116, r27115, MPFR_RNDN);
        mpfr_mul(r27117, r27112, r27116, MPFR_RNDN);
        mpfr_mul(r27118, r27112, r27115, MPFR_RNDN);
        mpfr_fma(r27119, r27117, r27118, r27113, MPFR_RNDN);
        ;
        mpfr_mul(r27121, r27119, r27120, MPFR_RNDN);
        mpfr_sqrt(r27122, r27121, MPFR_RNDN);
        mpfr_div(r27123, r27114, r27122, MPFR_RNDN);
        mpfr_pow(r27124, r27111, r27115, MPFR_RNDN);
        mpfr_neg(r27125, r27111, MPFR_RNDN);
        mpfr_fma(r27126, r27124, r27125, r27113, MPFR_RNDN);
        mpfr_set_d(r27127, t, MPFR_RNDN);
        mpfr_const_pi(r27128, MPFR_RNDN);
        mpfr_mul(r27129, r27127, r27128, MPFR_RNDN);
        mpfr_mul(r27130, r27126, r27129, MPFR_RNDN);
        mpfr_div(r27131, r27123, r27130, MPFR_RNDN);
        mpfr_mul(r27132, r27115, r27112, MPFR_RNDN);
        mpfr_add(r27133, r27113, r27132, MPFR_RNDN);
        mpfr_sqrt(r27134, r27133, MPFR_RNDN);
        mpfr_add(r27135, r27113, r27112, MPFR_RNDN);
        mpfr_mul(r27136, r27134, r27135, MPFR_RNDN);
        mpfr_mul(r27137, r27131, r27136, MPFR_RNDN);
        return mpfr_get_d(r27137, MPFR_RNDN);
}

