#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 r25126 = 1;
        float r25127 = 5;
        float r25128 = v;
        float r25129 = r25128 * r25128;
        float r25130 = r25127 * r25129;
        float r25131 = r25126 - r25130;
        float r25132 = atan2(1.0, 0.0);
        float r25133 = t;
        float r25134 = r25132 * r25133;
        float r25135 = 2;
        float r25136 = 3;
        float r25137 = r25136 * r25129;
        float r25138 = r25126 - r25137;
        float r25139 = r25135 * r25138;
        float r25140 = sqrt(r25139);
        float r25141 = r25134 * r25140;
        float r25142 = r25126 - r25129;
        float r25143 = r25141 * r25142;
        float r25144 = r25131 / r25143;
        return r25144;
}

double f_id(double v, double t) {
        double r25145 = 1;
        double r25146 = 5;
        double r25147 = v;
        double r25148 = r25147 * r25147;
        double r25149 = r25146 * r25148;
        double r25150 = r25145 - r25149;
        double r25151 = atan2(1.0, 0.0);
        double r25152 = t;
        double r25153 = r25151 * r25152;
        double r25154 = 2;
        double r25155 = 3;
        double r25156 = r25155 * r25148;
        double r25157 = r25145 - r25156;
        double r25158 = r25154 * r25157;
        double r25159 = sqrt(r25158);
        double r25160 = r25153 * r25159;
        double r25161 = r25145 - r25148;
        double r25162 = r25160 * r25161;
        double r25163 = r25150 / r25162;
        return r25163;
}


double f_of(float v, float t) {
        float r25164 = 5;
        float r25165 = -r25164;
        float r25166 = v;
        float r25167 = r25166 * r25166;
        float r25168 = 1;
        float r25169 = fma(r25165, r25167, r25168);
        float r25170 = 3;
        float r25171 = -r25170;
        float r25172 = r25167 * r25171;
        float r25173 = r25167 * r25170;
        float r25174 = fma(r25172, r25173, r25168);
        float r25175 = 2;
        float r25176 = r25174 * r25175;
        float r25177 = sqrt(r25176);
        float r25178 = r25169 / r25177;
        float r25179 = pow(r25166, r25170);
        float r25180 = -r25166;
        float r25181 = fma(r25179, r25180, r25168);
        float r25182 = t;
        float r25183 = atan2(1.0, 0.0);
        float r25184 = r25182 * r25183;
        float r25185 = r25181 * r25184;
        float r25186 = r25178 / r25185;
        float r25187 = r25170 * r25167;
        float r25188 = r25168 + r25187;
        float r25189 = sqrt(r25188);
        float r25190 = r25168 + r25167;
        float r25191 = r25189 * r25190;
        float r25192 = r25186 * r25191;
        return r25192;
}

double f_od(double v, double t) {
        double r25193 = 5;
        double r25194 = -r25193;
        double r25195 = v;
        double r25196 = r25195 * r25195;
        double r25197 = 1;
        double r25198 = fma(r25194, r25196, r25197);
        double r25199 = 3;
        double r25200 = -r25199;
        double r25201 = r25196 * r25200;
        double r25202 = r25196 * r25199;
        double r25203 = fma(r25201, r25202, r25197);
        double r25204 = 2;
        double r25205 = r25203 * r25204;
        double r25206 = sqrt(r25205);
        double r25207 = r25198 / r25206;
        double r25208 = pow(r25195, r25199);
        double r25209 = -r25195;
        double r25210 = fma(r25208, r25209, r25197);
        double r25211 = t;
        double r25212 = atan2(1.0, 0.0);
        double r25213 = r25211 * r25212;
        double r25214 = r25210 * r25213;
        double r25215 = r25207 / r25214;
        double r25216 = r25199 * r25196;
        double r25217 = r25197 + r25216;
        double r25218 = sqrt(r25217);
        double r25219 = r25197 + r25196;
        double r25220 = r25218 * r25219;
        double r25221 = r25215 * r25220;
        return r25221;
}

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 r25222, r25223, r25224, r25225, r25226, r25227, r25228, r25229, r25230, r25231, r25232, r25233, r25234, r25235, r25236, r25237, r25238, r25239, r25240;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(336);
        mpfr_init_set_str(r25222, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r25223, "5", 10, MPFR_RNDN);
        mpfr_init(r25224);
        mpfr_init(r25225);
        mpfr_init(r25226);
        mpfr_init(r25227);
        mpfr_init(r25228);
        mpfr_init(r25229);
        mpfr_init(r25230);
        mpfr_init_set_str(r25231, "2", 10, MPFR_RNDN);
        mpfr_init_set_str(r25232, "3", 10, MPFR_RNDN);
        mpfr_init(r25233);
        mpfr_init(r25234);
        mpfr_init(r25235);
        mpfr_init(r25236);
        mpfr_init(r25237);
        mpfr_init(r25238);
        mpfr_init(r25239);
        mpfr_init(r25240);
}

double f_im(double v, double t) {
        ;
        ;
        mpfr_set_d(r25224, v, MPFR_RNDN);
        mpfr_mul(r25225, r25224, r25224, MPFR_RNDN);
        mpfr_mul(r25226, r25223, r25225, MPFR_RNDN);
        mpfr_sub(r25227, r25222, r25226, MPFR_RNDN);
        mpfr_const_pi(r25228, MPFR_RNDN);
        mpfr_set_d(r25229, t, MPFR_RNDN);
        mpfr_mul(r25230, r25228, r25229, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r25233, r25232, r25225, MPFR_RNDN);
        mpfr_sub(r25234, r25222, r25233, MPFR_RNDN);
        mpfr_mul(r25235, r25231, r25234, MPFR_RNDN);
        mpfr_sqrt(r25236, r25235, MPFR_RNDN);
        mpfr_mul(r25237, r25230, r25236, MPFR_RNDN);
        mpfr_sub(r25238, r25222, r25225, MPFR_RNDN);
        mpfr_mul(r25239, r25237, r25238, MPFR_RNDN);
        mpfr_div(r25240, r25227, r25239, MPFR_RNDN);
        return mpfr_get_d(r25240, MPFR_RNDN);
}

static mpfr_t r25241, r25242, r25243, r25244, r25245, r25246, r25247, r25248, r25249, r25250, r25251, r25252, r25253, r25254, r25255, r25256, r25257, r25258, r25259, r25260, r25261, r25262, r25263, r25264, r25265, r25266, r25267, r25268, r25269;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(336);
        mpfr_init_set_str(r25241, "5", 10, MPFR_RNDN);
        mpfr_init(r25242);
        mpfr_init(r25243);
        mpfr_init(r25244);
        mpfr_init_set_str(r25245, "1", 10, MPFR_RNDN);
        mpfr_init(r25246);
        mpfr_init_set_str(r25247, "3", 10, MPFR_RNDN);
        mpfr_init(r25248);
        mpfr_init(r25249);
        mpfr_init(r25250);
        mpfr_init(r25251);
        mpfr_init_set_str(r25252, "2", 10, MPFR_RNDN);
        mpfr_init(r25253);
        mpfr_init(r25254);
        mpfr_init(r25255);
        mpfr_init(r25256);
        mpfr_init(r25257);
        mpfr_init(r25258);
        mpfr_init(r25259);
        mpfr_init(r25260);
        mpfr_init(r25261);
        mpfr_init(r25262);
        mpfr_init(r25263);
        mpfr_init(r25264);
        mpfr_init(r25265);
        mpfr_init(r25266);
        mpfr_init(r25267);
        mpfr_init(r25268);
        mpfr_init(r25269);
}

double f_fm(double v, double t) {
        ;
        mpfr_neg(r25242, r25241, MPFR_RNDN);
        mpfr_set_d(r25243, v, MPFR_RNDN);
        mpfr_mul(r25244, r25243, r25243, MPFR_RNDN);
        ;
        mpfr_fma(r25246, r25242, r25244, r25245, MPFR_RNDN);
        ;
        mpfr_neg(r25248, r25247, MPFR_RNDN);
        mpfr_mul(r25249, r25244, r25248, MPFR_RNDN);
        mpfr_mul(r25250, r25244, r25247, MPFR_RNDN);
        mpfr_fma(r25251, r25249, r25250, r25245, MPFR_RNDN);
        ;
        mpfr_mul(r25253, r25251, r25252, MPFR_RNDN);
        mpfr_sqrt(r25254, r25253, MPFR_RNDN);
        mpfr_div(r25255, r25246, r25254, MPFR_RNDN);
        mpfr_pow(r25256, r25243, r25247, MPFR_RNDN);
        mpfr_neg(r25257, r25243, MPFR_RNDN);
        mpfr_fma(r25258, r25256, r25257, r25245, MPFR_RNDN);
        mpfr_set_d(r25259, t, MPFR_RNDN);
        mpfr_const_pi(r25260, MPFR_RNDN);
        mpfr_mul(r25261, r25259, r25260, MPFR_RNDN);
        mpfr_mul(r25262, r25258, r25261, MPFR_RNDN);
        mpfr_div(r25263, r25255, r25262, MPFR_RNDN);
        mpfr_mul(r25264, r25247, r25244, MPFR_RNDN);
        mpfr_add(r25265, r25245, r25264, MPFR_RNDN);
        mpfr_sqrt(r25266, r25265, MPFR_RNDN);
        mpfr_add(r25267, r25245, r25244, MPFR_RNDN);
        mpfr_mul(r25268, r25266, r25267, MPFR_RNDN);
        mpfr_mul(r25269, r25263, r25268, MPFR_RNDN);
        return mpfr_get_d(r25269, MPFR_RNDN);
}

static mpfr_t r25270, r25271, r25272, r25273, r25274, r25275, r25276, r25277, r25278, r25279, r25280, r25281, r25282, r25283, r25284, r25285, r25286, r25287, r25288, r25289, r25290, r25291, r25292, r25293, r25294, r25295, r25296, r25297, r25298;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(336);
        mpfr_init_set_str(r25270, "5", 10, MPFR_RNDN);
        mpfr_init(r25271);
        mpfr_init(r25272);
        mpfr_init(r25273);
        mpfr_init_set_str(r25274, "1", 10, MPFR_RNDN);
        mpfr_init(r25275);
        mpfr_init_set_str(r25276, "3", 10, MPFR_RNDN);
        mpfr_init(r25277);
        mpfr_init(r25278);
        mpfr_init(r25279);
        mpfr_init(r25280);
        mpfr_init_set_str(r25281, "2", 10, MPFR_RNDN);
        mpfr_init(r25282);
        mpfr_init(r25283);
        mpfr_init(r25284);
        mpfr_init(r25285);
        mpfr_init(r25286);
        mpfr_init(r25287);
        mpfr_init(r25288);
        mpfr_init(r25289);
        mpfr_init(r25290);
        mpfr_init(r25291);
        mpfr_init(r25292);
        mpfr_init(r25293);
        mpfr_init(r25294);
        mpfr_init(r25295);
        mpfr_init(r25296);
        mpfr_init(r25297);
        mpfr_init(r25298);
}

double f_dm(double v, double t) {
        ;
        mpfr_neg(r25271, r25270, MPFR_RNDN);
        mpfr_set_d(r25272, v, MPFR_RNDN);
        mpfr_mul(r25273, r25272, r25272, MPFR_RNDN);
        ;
        mpfr_fma(r25275, r25271, r25273, r25274, MPFR_RNDN);
        ;
        mpfr_neg(r25277, r25276, MPFR_RNDN);
        mpfr_mul(r25278, r25273, r25277, MPFR_RNDN);
        mpfr_mul(r25279, r25273, r25276, MPFR_RNDN);
        mpfr_fma(r25280, r25278, r25279, r25274, MPFR_RNDN);
        ;
        mpfr_mul(r25282, r25280, r25281, MPFR_RNDN);
        mpfr_sqrt(r25283, r25282, MPFR_RNDN);
        mpfr_div(r25284, r25275, r25283, MPFR_RNDN);
        mpfr_pow(r25285, r25272, r25276, MPFR_RNDN);
        mpfr_neg(r25286, r25272, MPFR_RNDN);
        mpfr_fma(r25287, r25285, r25286, r25274, MPFR_RNDN);
        mpfr_set_d(r25288, t, MPFR_RNDN);
        mpfr_const_pi(r25289, MPFR_RNDN);
        mpfr_mul(r25290, r25288, r25289, MPFR_RNDN);
        mpfr_mul(r25291, r25287, r25290, MPFR_RNDN);
        mpfr_div(r25292, r25284, r25291, MPFR_RNDN);
        mpfr_mul(r25293, r25276, r25273, MPFR_RNDN);
        mpfr_add(r25294, r25274, r25293, MPFR_RNDN);
        mpfr_sqrt(r25295, r25294, MPFR_RNDN);
        mpfr_add(r25296, r25274, r25273, MPFR_RNDN);
        mpfr_mul(r25297, r25295, r25296, MPFR_RNDN);
        mpfr_mul(r25298, r25292, r25297, MPFR_RNDN);
        return mpfr_get_d(r25298, MPFR_RNDN);
}

