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

char *name = "Harley's example";

double f_if(float c_p, float c_n, float t, float s) {
        float r11149 = 1.0f;
        float r11150 = s;
        float r11151 = -r11150;
        float r11152 = exp(r11151);
        float r11153 = r11149 + r11152;
        float r11154 = r11149 / r11153;
        float r11155 = c_p;
        float r11156 = pow(r11154, r11155);
        float r11157 = r11149 - r11154;
        float r11158 = c_n;
        float r11159 = pow(r11157, r11158);
        float r11160 = r11156 * r11159;
        float r11161 = t;
        float r11162 = -r11161;
        float r11163 = exp(r11162);
        float r11164 = r11149 + r11163;
        float r11165 = r11149 / r11164;
        float r11166 = pow(r11165, r11155);
        float r11167 = r11149 - r11165;
        float r11168 = pow(r11167, r11158);
        float r11169 = r11166 * r11168;
        float r11170 = r11160 / r11169;
        return r11170;
}

double f_id(double c_p, double c_n, double t, double s) {
        double r11171 = 1.0;
        double r11172 = s;
        double r11173 = -r11172;
        double r11174 = exp(r11173);
        double r11175 = r11171 + r11174;
        double r11176 = r11171 / r11175;
        double r11177 = c_p;
        double r11178 = pow(r11176, r11177);
        double r11179 = r11171 - r11176;
        double r11180 = c_n;
        double r11181 = pow(r11179, r11180);
        double r11182 = r11178 * r11181;
        double r11183 = t;
        double r11184 = -r11183;
        double r11185 = exp(r11184);
        double r11186 = r11171 + r11185;
        double r11187 = r11171 / r11186;
        double r11188 = pow(r11187, r11177);
        double r11189 = r11171 - r11187;
        double r11190 = pow(r11189, r11180);
        double r11191 = r11188 * r11190;
        double r11192 = r11182 / r11191;
        return r11192;
}


double f_of(float c_p, float c_n, float t, float s) {
        float r11193 = 1.0f;
        float r11194 = -r11193;
        float r11195 = s;
        float r11196 = -r11195;
        float r11197 = exp(r11196);
        float r11198 = r11193 + r11197;
        float r11199 = r11194 / r11198;
        float r11200 = log1p(r11199);
        float r11201 = t;
        float r11202 = -r11201;
        float r11203 = exp(r11202);
        float r11204 = r11193 + r11203;
        float r11205 = r11194 / r11204;
        float r11206 = log1p(r11205);
        float r11207 = r11200 - r11206;
        float r11208 = c_n;
        float r11209 = 0.125f;
        float r11210 = r11201 * r11209;
        float r11211 = 0.5f;
        float r11212 = r11210 - r11211;
        float r11213 = 2.0f;
        float r11214 = log(r11213);
        float r11215 = fma(r11201, r11212, r11214);
        float r11216 = log1p(r11197);
        float r11217 = r11215 - r11216;
        float r11218 = c_p;
        float r11219 = r11217 * r11218;
        float r11220 = fma(r11207, r11208, r11219);
        float r11221 = exp(r11220);
        return r11221;
}

double f_od(double c_p, double c_n, double t, double s) {
        double r11222 = 1.0;
        double r11223 = -r11222;
        double r11224 = s;
        double r11225 = -r11224;
        double r11226 = exp(r11225);
        double r11227 = r11222 + r11226;
        double r11228 = r11223 / r11227;
        double r11229 = log1p(r11228);
        double r11230 = t;
        double r11231 = -r11230;
        double r11232 = exp(r11231);
        double r11233 = r11222 + r11232;
        double r11234 = r11223 / r11233;
        double r11235 = log1p(r11234);
        double r11236 = r11229 - r11235;
        double r11237 = c_n;
        double r11238 = 0.125;
        double r11239 = r11230 * r11238;
        double r11240 = 0.5;
        double r11241 = r11239 - r11240;
        double r11242 = 2.0;
        double r11243 = log(r11242);
        double r11244 = fma(r11230, r11241, r11243);
        double r11245 = log1p(r11226);
        double r11246 = r11244 - r11245;
        double r11247 = c_p;
        double r11248 = r11246 * r11247;
        double r11249 = fma(r11236, r11237, r11248);
        double r11250 = exp(r11249);
        return r11250;
}

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 r11251, r11252, r11253, r11254, r11255, r11256, r11257, r11258, r11259, r11260, r11261, r11262, r11263, r11264, r11265, r11266, r11267, r11268, r11269, r11270, r11271, r11272;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(1872);
        mpfr_init_set_str(r11251, "1", 10, MPFR_RNDN);
        mpfr_init(r11252);
        mpfr_init(r11253);
        mpfr_init(r11254);
        mpfr_init(r11255);
        mpfr_init(r11256);
        mpfr_init(r11257);
        mpfr_init(r11258);
        mpfr_init(r11259);
        mpfr_init(r11260);
        mpfr_init(r11261);
        mpfr_init(r11262);
        mpfr_init(r11263);
        mpfr_init(r11264);
        mpfr_init(r11265);
        mpfr_init(r11266);
        mpfr_init(r11267);
        mpfr_init(r11268);
        mpfr_init(r11269);
        mpfr_init(r11270);
        mpfr_init(r11271);
        mpfr_init(r11272);
}

double f_im(double c_p, double c_n, double t, double s) {
        ;
        mpfr_set_d(r11252, s, MPFR_RNDN);
        mpfr_neg(r11253, r11252, MPFR_RNDN);
        mpfr_exp(r11254, r11253, MPFR_RNDN);
        mpfr_add(r11255, r11251, r11254, MPFR_RNDN);
        mpfr_div(r11256, r11251, r11255, MPFR_RNDN);
        mpfr_set_d(r11257, c_p, MPFR_RNDN);
        mpfr_pow(r11258, r11256, r11257, MPFR_RNDN);
        mpfr_sub(r11259, r11251, r11256, MPFR_RNDN);
        mpfr_set_d(r11260, c_n, MPFR_RNDN);
        mpfr_pow(r11261, r11259, r11260, MPFR_RNDN);
        mpfr_mul(r11262, r11258, r11261, MPFR_RNDN);
        mpfr_set_d(r11263, t, MPFR_RNDN);
        mpfr_neg(r11264, r11263, MPFR_RNDN);
        mpfr_exp(r11265, r11264, MPFR_RNDN);
        mpfr_add(r11266, r11251, r11265, MPFR_RNDN);
        mpfr_div(r11267, r11251, r11266, MPFR_RNDN);
        mpfr_pow(r11268, r11267, r11257, MPFR_RNDN);
        mpfr_sub(r11269, r11251, r11267, MPFR_RNDN);
        mpfr_pow(r11270, r11269, r11260, MPFR_RNDN);
        mpfr_mul(r11271, r11268, r11270, MPFR_RNDN);
        mpfr_div(r11272, r11262, r11271, MPFR_RNDN);
        return mpfr_get_d(r11272, MPFR_RNDN);
}

static mpfr_t r11273, r11274, r11275, r11276, r11277, r11278, r11279, r11280, r11281, r11282, r11283, r11284, r11285, r11286, r11287, r11288, r11289, r11290, r11291, r11292, r11293, r11294, r11295, r11296, r11297, r11298, r11299, r11300, r11301;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(1872);
        mpfr_init_set_str(r11273, "1", 10, MPFR_RNDN);
        mpfr_init(r11274);
        mpfr_init(r11275);
        mpfr_init(r11276);
        mpfr_init(r11277);
        mpfr_init(r11278);
        mpfr_init(r11279);
        mpfr_init(r11280);
        mpfr_init(r11281);
        mpfr_init(r11282);
        mpfr_init(r11283);
        mpfr_init(r11284);
        mpfr_init(r11285);
        mpfr_init(r11286);
        mpfr_init(r11287);
        mpfr_init(r11288);
        mpfr_init_set_str(r11289, "1/8", 10, MPFR_RNDN);
        mpfr_init(r11290);
        mpfr_init_set_str(r11291, "1/2", 10, MPFR_RNDN);
        mpfr_init(r11292);
        mpfr_init_set_str(r11293, "2", 10, MPFR_RNDN);
        mpfr_init(r11294);
        mpfr_init(r11295);
        mpfr_init(r11296);
        mpfr_init(r11297);
        mpfr_init(r11298);
        mpfr_init(r11299);
        mpfr_init(r11300);
        mpfr_init(r11301);
}

double f_fm(double c_p, double c_n, double t, double s) {
        ;
        mpfr_neg(r11274, r11273, MPFR_RNDN);
        mpfr_set_d(r11275, s, MPFR_RNDN);
        mpfr_neg(r11276, r11275, MPFR_RNDN);
        mpfr_exp(r11277, r11276, MPFR_RNDN);
        mpfr_add(r11278, r11273, r11277, MPFR_RNDN);
        mpfr_div(r11279, r11274, r11278, MPFR_RNDN);
        mpfr_log1p(r11280, r11279, MPFR_RNDN);
        mpfr_set_d(r11281, t, MPFR_RNDN);
        mpfr_neg(r11282, r11281, MPFR_RNDN);
        mpfr_exp(r11283, r11282, MPFR_RNDN);
        mpfr_add(r11284, r11273, r11283, MPFR_RNDN);
        mpfr_div(r11285, r11274, r11284, MPFR_RNDN);
        mpfr_log1p(r11286, r11285, MPFR_RNDN);
        mpfr_sub(r11287, r11280, r11286, MPFR_RNDN);
        mpfr_set_d(r11288, c_n, MPFR_RNDN);
        ;
        mpfr_mul(r11290, r11281, r11289, MPFR_RNDN);
        ;
        mpfr_sub(r11292, r11290, r11291, MPFR_RNDN);
        ;
        mpfr_log(r11294, r11293, MPFR_RNDN);
        mpfr_fma(r11295, r11281, r11292, r11294, MPFR_RNDN);
        mpfr_log1p(r11296, r11277, MPFR_RNDN);
        mpfr_sub(r11297, r11295, r11296, MPFR_RNDN);
        mpfr_set_d(r11298, c_p, MPFR_RNDN);
        mpfr_mul(r11299, r11297, r11298, MPFR_RNDN);
        mpfr_fma(r11300, r11287, r11288, r11299, MPFR_RNDN);
        mpfr_exp(r11301, r11300, MPFR_RNDN);
        return mpfr_get_d(r11301, MPFR_RNDN);
}

static mpfr_t r11302, r11303, r11304, r11305, r11306, r11307, r11308, r11309, r11310, r11311, r11312, r11313, r11314, r11315, r11316, r11317, r11318, r11319, r11320, r11321, r11322, r11323, r11324, r11325, r11326, r11327, r11328, r11329, r11330;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(1872);
        mpfr_init_set_str(r11302, "1", 10, MPFR_RNDN);
        mpfr_init(r11303);
        mpfr_init(r11304);
        mpfr_init(r11305);
        mpfr_init(r11306);
        mpfr_init(r11307);
        mpfr_init(r11308);
        mpfr_init(r11309);
        mpfr_init(r11310);
        mpfr_init(r11311);
        mpfr_init(r11312);
        mpfr_init(r11313);
        mpfr_init(r11314);
        mpfr_init(r11315);
        mpfr_init(r11316);
        mpfr_init(r11317);
        mpfr_init_set_str(r11318, "1/8", 10, MPFR_RNDN);
        mpfr_init(r11319);
        mpfr_init_set_str(r11320, "1/2", 10, MPFR_RNDN);
        mpfr_init(r11321);
        mpfr_init_set_str(r11322, "2", 10, MPFR_RNDN);
        mpfr_init(r11323);
        mpfr_init(r11324);
        mpfr_init(r11325);
        mpfr_init(r11326);
        mpfr_init(r11327);
        mpfr_init(r11328);
        mpfr_init(r11329);
        mpfr_init(r11330);
}

double f_dm(double c_p, double c_n, double t, double s) {
        ;
        mpfr_neg(r11303, r11302, MPFR_RNDN);
        mpfr_set_d(r11304, s, MPFR_RNDN);
        mpfr_neg(r11305, r11304, MPFR_RNDN);
        mpfr_exp(r11306, r11305, MPFR_RNDN);
        mpfr_add(r11307, r11302, r11306, MPFR_RNDN);
        mpfr_div(r11308, r11303, r11307, MPFR_RNDN);
        mpfr_log1p(r11309, r11308, MPFR_RNDN);
        mpfr_set_d(r11310, t, MPFR_RNDN);
        mpfr_neg(r11311, r11310, MPFR_RNDN);
        mpfr_exp(r11312, r11311, MPFR_RNDN);
        mpfr_add(r11313, r11302, r11312, MPFR_RNDN);
        mpfr_div(r11314, r11303, r11313, MPFR_RNDN);
        mpfr_log1p(r11315, r11314, MPFR_RNDN);
        mpfr_sub(r11316, r11309, r11315, MPFR_RNDN);
        mpfr_set_d(r11317, c_n, MPFR_RNDN);
        ;
        mpfr_mul(r11319, r11310, r11318, MPFR_RNDN);
        ;
        mpfr_sub(r11321, r11319, r11320, MPFR_RNDN);
        ;
        mpfr_log(r11323, r11322, MPFR_RNDN);
        mpfr_fma(r11324, r11310, r11321, r11323, MPFR_RNDN);
        mpfr_log1p(r11325, r11306, MPFR_RNDN);
        mpfr_sub(r11326, r11324, r11325, MPFR_RNDN);
        mpfr_set_d(r11327, c_p, MPFR_RNDN);
        mpfr_mul(r11328, r11326, r11327, MPFR_RNDN);
        mpfr_fma(r11329, r11316, r11317, r11328, MPFR_RNDN);
        mpfr_exp(r11330, r11329, MPFR_RNDN);
        return mpfr_get_d(r11330, MPFR_RNDN);
}

