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

char *name = "Toniolo and Linder, Equation (7)";

double f_if(float x, float l, float t) {
        float r21048 = 2;
        float r21049 = sqrt(r21048);
        float r21050 = t;
        float r21051 = r21049 * r21050;
        float r21052 = x;
        float r21053 = 1;
        float r21054 = r21052 + r21053;
        float r21055 = r21052 - r21053;
        float r21056 = r21054 / r21055;
        float r21057 = l;
        float r21058 = r21057 * r21057;
        float r21059 = r21050 * r21050;
        float r21060 = r21048 * r21059;
        float r21061 = r21058 + r21060;
        float r21062 = r21056 * r21061;
        float r21063 = r21062 - r21058;
        float r21064 = sqrt(r21063);
        float r21065 = r21051 / r21064;
        return r21065;
}

double f_id(double x, double l, double t) {
        double r21066 = 2;
        double r21067 = sqrt(r21066);
        double r21068 = t;
        double r21069 = r21067 * r21068;
        double r21070 = x;
        double r21071 = 1;
        double r21072 = r21070 + r21071;
        double r21073 = r21070 - r21071;
        double r21074 = r21072 / r21073;
        double r21075 = l;
        double r21076 = r21075 * r21075;
        double r21077 = r21068 * r21068;
        double r21078 = r21066 * r21077;
        double r21079 = r21076 + r21078;
        double r21080 = r21074 * r21079;
        double r21081 = r21080 - r21076;
        double r21082 = sqrt(r21081);
        double r21083 = r21069 / r21082;
        return r21083;
}


double f_of(float x, float l, float t) {
        float r21084 = t;
        float r21085 = -1.475641717166274e+86;
        bool r21086 = r21084 <= r21085;
        float r21087 = 2;
        float r21088 = sqrt(r21087);
        float r21089 = r21084 * r21088;
        float r21090 = x;
        float r21091 = r21084 / r21090;
        float r21092 = r21091 / r21090;
        float r21093 = r21092 / r21088;
        float r21094 = r21093 - r21089;
        float r21095 = r21084 + r21084;
        float r21096 = r21095 / r21088;
        float r21097 = r21096 / r21090;
        float r21098 = r21090 * r21090;
        float r21099 = r21096 / r21098;
        float r21100 = r21097 + r21099;
        float r21101 = r21094 - r21100;
        float r21102 = r21089 / r21101;
        float r21103 = 3.3413484077652453e-269;
        bool r21104 = r21084 <= r21103;
        float r21105 = r21088 * r21084;
        float r21106 = pow(r21084, r21087);
        float r21107 = r21087 * r21106;
        float r21108 = l;
        float r21109 = r21090 / r21108;
        float r21110 = r21108 / r21109;
        float r21111 = r21087 * r21110;
        float r21112 = 4;
        float r21113 = r21106 / r21090;
        float r21114 = r21112 * r21113;
        float r21115 = r21111 + r21114;
        float r21116 = r21107 + r21115;
        float r21117 = sqrt(r21116);
        float r21118 = r21105 / r21117;
        float r21119 = 8.234052182150638e-227;
        bool r21120 = r21084 <= r21119;
        float r21121 = r21087 / r21090;
        float r21122 = r21121 / r21088;
        float r21123 = r21088 + r21122;
        float r21124 = r21084 * r21123;
        float r21125 = r21087 / r21088;
        float r21126 = 1;
        float r21127 = r21126 / r21088;
        float r21128 = r21125 - r21127;
        float r21129 = r21092 * r21128;
        float r21130 = r21124 + r21129;
        float r21131 = r21089 / r21130;
        float r21132 = 1.598402083248483e+41;
        bool r21133 = r21084 <= r21132;
        float r21134 = r21133 ? r21118 : r21131;
        float r21135 = r21120 ? r21131 : r21134;
        float r21136 = r21104 ? r21118 : r21135;
        float r21137 = r21086 ? r21102 : r21136;
        return r21137;
}

double f_od(double x, double l, double t) {
        double r21138 = t;
        double r21139 = -1.475641717166274e+86;
        bool r21140 = r21138 <= r21139;
        double r21141 = 2;
        double r21142 = sqrt(r21141);
        double r21143 = r21138 * r21142;
        double r21144 = x;
        double r21145 = r21138 / r21144;
        double r21146 = r21145 / r21144;
        double r21147 = r21146 / r21142;
        double r21148 = r21147 - r21143;
        double r21149 = r21138 + r21138;
        double r21150 = r21149 / r21142;
        double r21151 = r21150 / r21144;
        double r21152 = r21144 * r21144;
        double r21153 = r21150 / r21152;
        double r21154 = r21151 + r21153;
        double r21155 = r21148 - r21154;
        double r21156 = r21143 / r21155;
        double r21157 = 3.3413484077652453e-269;
        bool r21158 = r21138 <= r21157;
        double r21159 = r21142 * r21138;
        double r21160 = pow(r21138, r21141);
        double r21161 = r21141 * r21160;
        double r21162 = l;
        double r21163 = r21144 / r21162;
        double r21164 = r21162 / r21163;
        double r21165 = r21141 * r21164;
        double r21166 = 4;
        double r21167 = r21160 / r21144;
        double r21168 = r21166 * r21167;
        double r21169 = r21165 + r21168;
        double r21170 = r21161 + r21169;
        double r21171 = sqrt(r21170);
        double r21172 = r21159 / r21171;
        double r21173 = 8.234052182150638e-227;
        bool r21174 = r21138 <= r21173;
        double r21175 = r21141 / r21144;
        double r21176 = r21175 / r21142;
        double r21177 = r21142 + r21176;
        double r21178 = r21138 * r21177;
        double r21179 = r21141 / r21142;
        double r21180 = 1;
        double r21181 = r21180 / r21142;
        double r21182 = r21179 - r21181;
        double r21183 = r21146 * r21182;
        double r21184 = r21178 + r21183;
        double r21185 = r21143 / r21184;
        double r21186 = 1.598402083248483e+41;
        bool r21187 = r21138 <= r21186;
        double r21188 = r21187 ? r21172 : r21185;
        double r21189 = r21174 ? r21185 : r21188;
        double r21190 = r21158 ? r21172 : r21189;
        double r21191 = r21140 ? r21156 : r21190;
        return r21191;
}

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 r21192, r21193, r21194, r21195, r21196, r21197, r21198, r21199, r21200, r21201, r21202, r21203, r21204, r21205, r21206, r21207, r21208, r21209;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1424);
        mpfr_init_set_str(r21192, "2", 10, MPFR_RNDN);
        mpfr_init(r21193);
        mpfr_init(r21194);
        mpfr_init(r21195);
        mpfr_init(r21196);
        mpfr_init_set_str(r21197, "1", 10, MPFR_RNDN);
        mpfr_init(r21198);
        mpfr_init(r21199);
        mpfr_init(r21200);
        mpfr_init(r21201);
        mpfr_init(r21202);
        mpfr_init(r21203);
        mpfr_init(r21204);
        mpfr_init(r21205);
        mpfr_init(r21206);
        mpfr_init(r21207);
        mpfr_init(r21208);
        mpfr_init(r21209);
}

double f_im(double x, double l, double t) {
        ;
        mpfr_sqrt(r21193, r21192, MPFR_RNDN);
        mpfr_set_d(r21194, t, MPFR_RNDN);
        mpfr_mul(r21195, r21193, r21194, MPFR_RNDN);
        mpfr_set_d(r21196, x, MPFR_RNDN);
        ;
        mpfr_add(r21198, r21196, r21197, MPFR_RNDN);
        mpfr_sub(r21199, r21196, r21197, MPFR_RNDN);
        mpfr_div(r21200, r21198, r21199, MPFR_RNDN);
        mpfr_set_d(r21201, l, MPFR_RNDN);
        mpfr_mul(r21202, r21201, r21201, MPFR_RNDN);
        mpfr_mul(r21203, r21194, r21194, MPFR_RNDN);
        mpfr_mul(r21204, r21192, r21203, MPFR_RNDN);
        mpfr_add(r21205, r21202, r21204, MPFR_RNDN);
        mpfr_mul(r21206, r21200, r21205, MPFR_RNDN);
        mpfr_sub(r21207, r21206, r21202, MPFR_RNDN);
        mpfr_sqrt(r21208, r21207, MPFR_RNDN);
        mpfr_div(r21209, r21195, r21208, MPFR_RNDN);
        return mpfr_get_d(r21209, MPFR_RNDN);
}

static mpfr_t r21210, r21211, r21212, r21213, r21214, r21215, r21216, r21217, r21218, r21219, r21220, r21221, r21222, r21223, r21224, r21225, r21226, r21227, r21228, r21229, r21230, r21231, r21232, r21233, r21234, r21235, r21236, r21237, r21238, r21239, r21240, r21241, r21242, r21243, r21244, r21245, r21246, r21247, r21248, r21249, r21250, r21251, r21252, r21253, r21254, r21255, r21256, r21257, r21258, r21259, r21260, r21261, r21262, r21263;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1424);
        mpfr_init(r21210);
        mpfr_init_set_str(r21211, "-1.475641717166274e+86", 10, MPFR_RNDN);
        mpfr_init(r21212);
        mpfr_init_set_str(r21213, "2", 10, MPFR_RNDN);
        mpfr_init(r21214);
        mpfr_init(r21215);
        mpfr_init(r21216);
        mpfr_init(r21217);
        mpfr_init(r21218);
        mpfr_init(r21219);
        mpfr_init(r21220);
        mpfr_init(r21221);
        mpfr_init(r21222);
        mpfr_init(r21223);
        mpfr_init(r21224);
        mpfr_init(r21225);
        mpfr_init(r21226);
        mpfr_init(r21227);
        mpfr_init(r21228);
        mpfr_init_set_str(r21229, "3.3413484077652453e-269", 10, MPFR_RNDN);
        mpfr_init(r21230);
        mpfr_init(r21231);
        mpfr_init(r21232);
        mpfr_init(r21233);
        mpfr_init(r21234);
        mpfr_init(r21235);
        mpfr_init(r21236);
        mpfr_init(r21237);
        mpfr_init_set_str(r21238, "4", 10, MPFR_RNDN);
        mpfr_init(r21239);
        mpfr_init(r21240);
        mpfr_init(r21241);
        mpfr_init(r21242);
        mpfr_init(r21243);
        mpfr_init(r21244);
        mpfr_init_set_str(r21245, "8.234052182150638e-227", 10, MPFR_RNDN);
        mpfr_init(r21246);
        mpfr_init(r21247);
        mpfr_init(r21248);
        mpfr_init(r21249);
        mpfr_init(r21250);
        mpfr_init(r21251);
        mpfr_init_set_str(r21252, "1", 10, MPFR_RNDN);
        mpfr_init(r21253);
        mpfr_init(r21254);
        mpfr_init(r21255);
        mpfr_init(r21256);
        mpfr_init(r21257);
        mpfr_init_set_str(r21258, "1.598402083248483e+41", 10, MPFR_RNDN);
        mpfr_init(r21259);
        mpfr_init(r21260);
        mpfr_init(r21261);
        mpfr_init(r21262);
        mpfr_init(r21263);
}

double f_fm(double x, double l, double t) {
        mpfr_set_d(r21210, t, MPFR_RNDN);
        ;
        mpfr_set_si(r21212, mpfr_cmp(r21210, r21211) <= 0, MPFR_RNDN);
        ;
        mpfr_sqrt(r21214, r21213, MPFR_RNDN);
        mpfr_mul(r21215, r21210, r21214, MPFR_RNDN);
        mpfr_set_d(r21216, x, MPFR_RNDN);
        mpfr_div(r21217, r21210, r21216, MPFR_RNDN);
        mpfr_div(r21218, r21217, r21216, MPFR_RNDN);
        mpfr_div(r21219, r21218, r21214, MPFR_RNDN);
        mpfr_sub(r21220, r21219, r21215, MPFR_RNDN);
        mpfr_add(r21221, r21210, r21210, MPFR_RNDN);
        mpfr_div(r21222, r21221, r21214, MPFR_RNDN);
        mpfr_div(r21223, r21222, r21216, MPFR_RNDN);
        mpfr_mul(r21224, r21216, r21216, MPFR_RNDN);
        mpfr_div(r21225, r21222, r21224, MPFR_RNDN);
        mpfr_add(r21226, r21223, r21225, MPFR_RNDN);
        mpfr_sub(r21227, r21220, r21226, MPFR_RNDN);
        mpfr_div(r21228, r21215, r21227, MPFR_RNDN);
        ;
        mpfr_set_si(r21230, mpfr_cmp(r21210, r21229) <= 0, MPFR_RNDN);
        mpfr_mul(r21231, r21214, r21210, MPFR_RNDN);
        mpfr_pow(r21232, r21210, r21213, MPFR_RNDN);
        mpfr_mul(r21233, r21213, r21232, MPFR_RNDN);
        mpfr_set_d(r21234, l, MPFR_RNDN);
        mpfr_div(r21235, r21216, r21234, MPFR_RNDN);
        mpfr_div(r21236, r21234, r21235, MPFR_RNDN);
        mpfr_mul(r21237, r21213, r21236, MPFR_RNDN);
        ;
        mpfr_div(r21239, r21232, r21216, MPFR_RNDN);
        mpfr_mul(r21240, r21238, r21239, MPFR_RNDN);
        mpfr_add(r21241, r21237, r21240, MPFR_RNDN);
        mpfr_add(r21242, r21233, r21241, MPFR_RNDN);
        mpfr_sqrt(r21243, r21242, MPFR_RNDN);
        mpfr_div(r21244, r21231, r21243, MPFR_RNDN);
        ;
        mpfr_set_si(r21246, mpfr_cmp(r21210, r21245) <= 0, MPFR_RNDN);
        mpfr_div(r21247, r21213, r21216, MPFR_RNDN);
        mpfr_div(r21248, r21247, r21214, MPFR_RNDN);
        mpfr_add(r21249, r21214, r21248, MPFR_RNDN);
        mpfr_mul(r21250, r21210, r21249, MPFR_RNDN);
        mpfr_div(r21251, r21213, r21214, MPFR_RNDN);
        ;
        mpfr_div(r21253, r21252, r21214, MPFR_RNDN);
        mpfr_sub(r21254, r21251, r21253, MPFR_RNDN);
        mpfr_mul(r21255, r21218, r21254, MPFR_RNDN);
        mpfr_add(r21256, r21250, r21255, MPFR_RNDN);
        mpfr_div(r21257, r21215, r21256, MPFR_RNDN);
        ;
        mpfr_set_si(r21259, mpfr_cmp(r21210, r21258) <= 0, MPFR_RNDN);
        if (mpfr_get_si(r21259, MPFR_RNDN)) { mpfr_set(r21260, r21244, MPFR_RNDN); } else { mpfr_set(r21260, r21257, MPFR_RNDN); };
        if (mpfr_get_si(r21246, MPFR_RNDN)) { mpfr_set(r21261, r21257, MPFR_RNDN); } else { mpfr_set(r21261, r21260, MPFR_RNDN); };
        if (mpfr_get_si(r21230, MPFR_RNDN)) { mpfr_set(r21262, r21244, MPFR_RNDN); } else { mpfr_set(r21262, r21261, MPFR_RNDN); };
        if (mpfr_get_si(r21212, MPFR_RNDN)) { mpfr_set(r21263, r21228, MPFR_RNDN); } else { mpfr_set(r21263, r21262, MPFR_RNDN); };
        return mpfr_get_d(r21263, MPFR_RNDN);
}

static mpfr_t r21264, r21265, r21266, r21267, r21268, r21269, r21270, r21271, r21272, r21273, r21274, r21275, r21276, r21277, r21278, r21279, r21280, r21281, r21282, r21283, r21284, r21285, r21286, r21287, r21288, r21289, r21290, r21291, r21292, r21293, r21294, r21295, r21296, r21297, r21298, r21299, r21300, r21301, r21302, r21303, r21304, r21305, r21306, r21307, r21308, r21309, r21310, r21311, r21312, r21313, r21314, r21315, r21316, r21317;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1424);
        mpfr_init(r21264);
        mpfr_init_set_str(r21265, "-1.475641717166274e+86", 10, MPFR_RNDN);
        mpfr_init(r21266);
        mpfr_init_set_str(r21267, "2", 10, MPFR_RNDN);
        mpfr_init(r21268);
        mpfr_init(r21269);
        mpfr_init(r21270);
        mpfr_init(r21271);
        mpfr_init(r21272);
        mpfr_init(r21273);
        mpfr_init(r21274);
        mpfr_init(r21275);
        mpfr_init(r21276);
        mpfr_init(r21277);
        mpfr_init(r21278);
        mpfr_init(r21279);
        mpfr_init(r21280);
        mpfr_init(r21281);
        mpfr_init(r21282);
        mpfr_init_set_str(r21283, "3.3413484077652453e-269", 10, MPFR_RNDN);
        mpfr_init(r21284);
        mpfr_init(r21285);
        mpfr_init(r21286);
        mpfr_init(r21287);
        mpfr_init(r21288);
        mpfr_init(r21289);
        mpfr_init(r21290);
        mpfr_init(r21291);
        mpfr_init_set_str(r21292, "4", 10, MPFR_RNDN);
        mpfr_init(r21293);
        mpfr_init(r21294);
        mpfr_init(r21295);
        mpfr_init(r21296);
        mpfr_init(r21297);
        mpfr_init(r21298);
        mpfr_init_set_str(r21299, "8.234052182150638e-227", 10, MPFR_RNDN);
        mpfr_init(r21300);
        mpfr_init(r21301);
        mpfr_init(r21302);
        mpfr_init(r21303);
        mpfr_init(r21304);
        mpfr_init(r21305);
        mpfr_init_set_str(r21306, "1", 10, MPFR_RNDN);
        mpfr_init(r21307);
        mpfr_init(r21308);
        mpfr_init(r21309);
        mpfr_init(r21310);
        mpfr_init(r21311);
        mpfr_init_set_str(r21312, "1.598402083248483e+41", 10, MPFR_RNDN);
        mpfr_init(r21313);
        mpfr_init(r21314);
        mpfr_init(r21315);
        mpfr_init(r21316);
        mpfr_init(r21317);
}

double f_dm(double x, double l, double t) {
        mpfr_set_d(r21264, t, MPFR_RNDN);
        ;
        mpfr_set_si(r21266, mpfr_cmp(r21264, r21265) <= 0, MPFR_RNDN);
        ;
        mpfr_sqrt(r21268, r21267, MPFR_RNDN);
        mpfr_mul(r21269, r21264, r21268, MPFR_RNDN);
        mpfr_set_d(r21270, x, MPFR_RNDN);
        mpfr_div(r21271, r21264, r21270, MPFR_RNDN);
        mpfr_div(r21272, r21271, r21270, MPFR_RNDN);
        mpfr_div(r21273, r21272, r21268, MPFR_RNDN);
        mpfr_sub(r21274, r21273, r21269, MPFR_RNDN);
        mpfr_add(r21275, r21264, r21264, MPFR_RNDN);
        mpfr_div(r21276, r21275, r21268, MPFR_RNDN);
        mpfr_div(r21277, r21276, r21270, MPFR_RNDN);
        mpfr_mul(r21278, r21270, r21270, MPFR_RNDN);
        mpfr_div(r21279, r21276, r21278, MPFR_RNDN);
        mpfr_add(r21280, r21277, r21279, MPFR_RNDN);
        mpfr_sub(r21281, r21274, r21280, MPFR_RNDN);
        mpfr_div(r21282, r21269, r21281, MPFR_RNDN);
        ;
        mpfr_set_si(r21284, mpfr_cmp(r21264, r21283) <= 0, MPFR_RNDN);
        mpfr_mul(r21285, r21268, r21264, MPFR_RNDN);
        mpfr_pow(r21286, r21264, r21267, MPFR_RNDN);
        mpfr_mul(r21287, r21267, r21286, MPFR_RNDN);
        mpfr_set_d(r21288, l, MPFR_RNDN);
        mpfr_div(r21289, r21270, r21288, MPFR_RNDN);
        mpfr_div(r21290, r21288, r21289, MPFR_RNDN);
        mpfr_mul(r21291, r21267, r21290, MPFR_RNDN);
        ;
        mpfr_div(r21293, r21286, r21270, MPFR_RNDN);
        mpfr_mul(r21294, r21292, r21293, MPFR_RNDN);
        mpfr_add(r21295, r21291, r21294, MPFR_RNDN);
        mpfr_add(r21296, r21287, r21295, MPFR_RNDN);
        mpfr_sqrt(r21297, r21296, MPFR_RNDN);
        mpfr_div(r21298, r21285, r21297, MPFR_RNDN);
        ;
        mpfr_set_si(r21300, mpfr_cmp(r21264, r21299) <= 0, MPFR_RNDN);
        mpfr_div(r21301, r21267, r21270, MPFR_RNDN);
        mpfr_div(r21302, r21301, r21268, MPFR_RNDN);
        mpfr_add(r21303, r21268, r21302, MPFR_RNDN);
        mpfr_mul(r21304, r21264, r21303, MPFR_RNDN);
        mpfr_div(r21305, r21267, r21268, MPFR_RNDN);
        ;
        mpfr_div(r21307, r21306, r21268, MPFR_RNDN);
        mpfr_sub(r21308, r21305, r21307, MPFR_RNDN);
        mpfr_mul(r21309, r21272, r21308, MPFR_RNDN);
        mpfr_add(r21310, r21304, r21309, MPFR_RNDN);
        mpfr_div(r21311, r21269, r21310, MPFR_RNDN);
        ;
        mpfr_set_si(r21313, mpfr_cmp(r21264, r21312) <= 0, MPFR_RNDN);
        if (mpfr_get_si(r21313, MPFR_RNDN)) { mpfr_set(r21314, r21298, MPFR_RNDN); } else { mpfr_set(r21314, r21311, MPFR_RNDN); };
        if (mpfr_get_si(r21300, MPFR_RNDN)) { mpfr_set(r21315, r21311, MPFR_RNDN); } else { mpfr_set(r21315, r21314, MPFR_RNDN); };
        if (mpfr_get_si(r21284, MPFR_RNDN)) { mpfr_set(r21316, r21298, MPFR_RNDN); } else { mpfr_set(r21316, r21315, MPFR_RNDN); };
        if (mpfr_get_si(r21266, MPFR_RNDN)) { mpfr_set(r21317, r21282, MPFR_RNDN); } else { mpfr_set(r21317, r21316, MPFR_RNDN); };
        return mpfr_get_d(r21317, MPFR_RNDN);
}

