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

char *name = "Henrywood and Agarwal, Equation (13)";

double f_if(float c0, float w, float h, float D, float d, float M) {
        float r26168 = c0;
        float r26169 = 2;
        float r26170 = w;
        float r26171 = r26169 * r26170;
        float r26172 = r26168 / r26171;
        float r26173 = d;
        float r26174 = r26173 * r26173;
        float r26175 = r26168 * r26174;
        float r26176 = h;
        float r26177 = r26170 * r26176;
        float r26178 = D;
        float r26179 = r26178 * r26178;
        float r26180 = r26177 * r26179;
        float r26181 = r26175 / r26180;
        float r26182 = r26181 * r26181;
        float r26183 = M;
        float r26184 = r26183 * r26183;
        float r26185 = r26182 - r26184;
        float r26186 = sqrt(r26185);
        float r26187 = r26181 + r26186;
        float r26188 = r26172 * r26187;
        return r26188;
}

double f_id(double c0, double w, double h, double D, double d, double M) {
        double r26189 = c0;
        double r26190 = 2;
        double r26191 = w;
        double r26192 = r26190 * r26191;
        double r26193 = r26189 / r26192;
        double r26194 = d;
        double r26195 = r26194 * r26194;
        double r26196 = r26189 * r26195;
        double r26197 = h;
        double r26198 = r26191 * r26197;
        double r26199 = D;
        double r26200 = r26199 * r26199;
        double r26201 = r26198 * r26200;
        double r26202 = r26196 / r26201;
        double r26203 = r26202 * r26202;
        double r26204 = M;
        double r26205 = r26204 * r26204;
        double r26206 = r26203 - r26205;
        double r26207 = sqrt(r26206);
        double r26208 = r26202 + r26207;
        double r26209 = r26193 * r26208;
        return r26209;
}


double f_of(float c0, float w, float h, float D, float d, float M) {
        float r26210 = c0;
        float r26211 = 2;
        float r26212 = w;
        float r26213 = r26211 * r26212;
        float r26214 = r26210 / r26213;
        float r26215 = r26210 / r26212;
        float r26216 = h;
        float r26217 = r26215 / r26216;
        float r26218 = d;
        float r26219 = D;
        float r26220 = r26218 / r26219;
        float r26221 = r26220 * r26220;
        float r26222 = r26217 * r26221;
        float r26223 = M;
        float r26224 = r26223 * r26223;
        float r26225 = -r26224;
        float r26226 = fma(r26222, r26222, r26225);
        float r26227 = sqrt(r26226);
        float r26228 = r26227 + r26222;
        float r26229 = 3;
        float r26230 = pow(r26228, r26229);
        float r26231 = cbrt(r26230);
        float r26232 = r26214 * r26231;
        float r26233 = -7.997073933475495e+104;
        bool r26234 = r26232 <= r26233;
        float r26235 = 1;
        float r26236 = r26212 * r26211;
        float r26237 = r26210 * r26223;
        float r26238 = r26236 / r26237;
        float r26239 = -r26223;
        float r26240 = r26223 * r26239;
        float r26241 = fma(r26222, r26222, r26240);
        float r26242 = sqrt(r26241);
        float r26243 = r26222 - r26242;
        float r26244 = r26238 * r26243;
        float r26245 = r26244 / r26223;
        float r26246 = r26235 / r26245;
        float r26247 = -2.182835902747342e-178;
        bool r26248 = r26232 <= r26247;
        float r26249 = 1.6255746857262004e-85;
        bool r26250 = r26232 <= r26249;
        float r26251 = 2.6152844399714374e+290;
        bool r26252 = r26232 <= r26251;
        float r26253 = 0;
        float r26254 = r26252 ? r26232 : r26253;
        float r26255 = r26250 ? r26246 : r26254;
        float r26256 = r26248 ? r26232 : r26255;
        float r26257 = r26234 ? r26246 : r26256;
        return r26257;
}

double f_od(double c0, double w, double h, double D, double d, double M) {
        double r26258 = c0;
        double r26259 = 2;
        double r26260 = w;
        double r26261 = r26259 * r26260;
        double r26262 = r26258 / r26261;
        double r26263 = r26258 / r26260;
        double r26264 = h;
        double r26265 = r26263 / r26264;
        double r26266 = d;
        double r26267 = D;
        double r26268 = r26266 / r26267;
        double r26269 = r26268 * r26268;
        double r26270 = r26265 * r26269;
        double r26271 = M;
        double r26272 = r26271 * r26271;
        double r26273 = -r26272;
        double r26274 = fma(r26270, r26270, r26273);
        double r26275 = sqrt(r26274);
        double r26276 = r26275 + r26270;
        double r26277 = 3;
        double r26278 = pow(r26276, r26277);
        double r26279 = cbrt(r26278);
        double r26280 = r26262 * r26279;
        double r26281 = -7.997073933475495e+104;
        bool r26282 = r26280 <= r26281;
        double r26283 = 1;
        double r26284 = r26260 * r26259;
        double r26285 = r26258 * r26271;
        double r26286 = r26284 / r26285;
        double r26287 = -r26271;
        double r26288 = r26271 * r26287;
        double r26289 = fma(r26270, r26270, r26288);
        double r26290 = sqrt(r26289);
        double r26291 = r26270 - r26290;
        double r26292 = r26286 * r26291;
        double r26293 = r26292 / r26271;
        double r26294 = r26283 / r26293;
        double r26295 = -2.182835902747342e-178;
        bool r26296 = r26280 <= r26295;
        double r26297 = 1.6255746857262004e-85;
        bool r26298 = r26280 <= r26297;
        double r26299 = 2.6152844399714374e+290;
        bool r26300 = r26280 <= r26299;
        double r26301 = 0;
        double r26302 = r26300 ? r26280 : r26301;
        double r26303 = r26298 ? r26294 : r26302;
        double r26304 = r26296 ? r26280 : r26303;
        double r26305 = r26282 ? r26294 : r26304;
        return r26305;
}

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 r26306, r26307, r26308, r26309, r26310, r26311, r26312, r26313, r26314, r26315, r26316, r26317, r26318, r26319, r26320, r26321, r26322, r26323, r26324, r26325, r26326;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(7504);
        mpfr_init(r26306);
        mpfr_init_set_str(r26307, "2", 10, MPFR_RNDN);
        mpfr_init(r26308);
        mpfr_init(r26309);
        mpfr_init(r26310);
        mpfr_init(r26311);
        mpfr_init(r26312);
        mpfr_init(r26313);
        mpfr_init(r26314);
        mpfr_init(r26315);
        mpfr_init(r26316);
        mpfr_init(r26317);
        mpfr_init(r26318);
        mpfr_init(r26319);
        mpfr_init(r26320);
        mpfr_init(r26321);
        mpfr_init(r26322);
        mpfr_init(r26323);
        mpfr_init(r26324);
        mpfr_init(r26325);
        mpfr_init(r26326);
}

double f_im(double c0, double w, double h, double D, double d, double M) {
        mpfr_set_d(r26306, c0, MPFR_RNDN);
        ;
        mpfr_set_d(r26308, w, MPFR_RNDN);
        mpfr_mul(r26309, r26307, r26308, MPFR_RNDN);
        mpfr_div(r26310, r26306, r26309, MPFR_RNDN);
        mpfr_set_d(r26311, d, MPFR_RNDN);
        mpfr_mul(r26312, r26311, r26311, MPFR_RNDN);
        mpfr_mul(r26313, r26306, r26312, MPFR_RNDN);
        mpfr_set_d(r26314, h, MPFR_RNDN);
        mpfr_mul(r26315, r26308, r26314, MPFR_RNDN);
        mpfr_set_d(r26316, D, MPFR_RNDN);
        mpfr_mul(r26317, r26316, r26316, MPFR_RNDN);
        mpfr_mul(r26318, r26315, r26317, MPFR_RNDN);
        mpfr_div(r26319, r26313, r26318, MPFR_RNDN);
        mpfr_mul(r26320, r26319, r26319, MPFR_RNDN);
        mpfr_set_d(r26321, M, MPFR_RNDN);
        mpfr_mul(r26322, r26321, r26321, MPFR_RNDN);
        mpfr_sub(r26323, r26320, r26322, MPFR_RNDN);
        mpfr_sqrt(r26324, r26323, MPFR_RNDN);
        mpfr_add(r26325, r26319, r26324, MPFR_RNDN);
        mpfr_mul(r26326, r26310, r26325, MPFR_RNDN);
        return mpfr_get_d(r26326, MPFR_RNDN);
}

static mpfr_t r26327, r26328, r26329, r26330, r26331, r26332, r26333, r26334, r26335, r26336, r26337, r26338, r26339, r26340, r26341, r26342, r26343, r26344, r26345, r26346, r26347, r26348, r26349, r26350, r26351, r26352, r26353, r26354, r26355, r26356, r26357, r26358, r26359, r26360, r26361, r26362, r26363, r26364, r26365, r26366, r26367, r26368, r26369, r26370, r26371, r26372, r26373, r26374;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(7504);
        mpfr_init(r26327);
        mpfr_init_set_str(r26328, "2", 10, MPFR_RNDN);
        mpfr_init(r26329);
        mpfr_init(r26330);
        mpfr_init(r26331);
        mpfr_init(r26332);
        mpfr_init(r26333);
        mpfr_init(r26334);
        mpfr_init(r26335);
        mpfr_init(r26336);
        mpfr_init(r26337);
        mpfr_init(r26338);
        mpfr_init(r26339);
        mpfr_init(r26340);
        mpfr_init(r26341);
        mpfr_init(r26342);
        mpfr_init(r26343);
        mpfr_init(r26344);
        mpfr_init(r26345);
        mpfr_init_set_str(r26346, "3", 10, MPFR_RNDN);
        mpfr_init(r26347);
        mpfr_init(r26348);
        mpfr_init(r26349);
        mpfr_init_set_str(r26350, "-7.997073933475495e+104", 10, MPFR_RNDN);
        mpfr_init(r26351);
        mpfr_init_set_str(r26352, "1", 10, MPFR_RNDN);
        mpfr_init(r26353);
        mpfr_init(r26354);
        mpfr_init(r26355);
        mpfr_init(r26356);
        mpfr_init(r26357);
        mpfr_init(r26358);
        mpfr_init(r26359);
        mpfr_init(r26360);
        mpfr_init(r26361);
        mpfr_init(r26362);
        mpfr_init(r26363);
        mpfr_init_set_str(r26364, "-2.182835902747342e-178", 10, MPFR_RNDN);
        mpfr_init(r26365);
        mpfr_init_set_str(r26366, "1.6255746857262004e-85", 10, MPFR_RNDN);
        mpfr_init(r26367);
        mpfr_init_set_str(r26368, "2.6152844399714374e+290", 10, MPFR_RNDN);
        mpfr_init(r26369);
        mpfr_init_set_str(r26370, "0", 10, MPFR_RNDN);
        mpfr_init(r26371);
        mpfr_init(r26372);
        mpfr_init(r26373);
        mpfr_init(r26374);
}

double f_fm(double c0, double w, double h, double D, double d, double M) {
        mpfr_set_d(r26327, c0, MPFR_RNDN);
        ;
        mpfr_set_d(r26329, w, MPFR_RNDN);
        mpfr_mul(r26330, r26328, r26329, MPFR_RNDN);
        mpfr_div(r26331, r26327, r26330, MPFR_RNDN);
        mpfr_div(r26332, r26327, r26329, MPFR_RNDN);
        mpfr_set_d(r26333, h, MPFR_RNDN);
        mpfr_div(r26334, r26332, r26333, MPFR_RNDN);
        mpfr_set_d(r26335, d, MPFR_RNDN);
        mpfr_set_d(r26336, D, MPFR_RNDN);
        mpfr_div(r26337, r26335, r26336, MPFR_RNDN);
        mpfr_mul(r26338, r26337, r26337, MPFR_RNDN);
        mpfr_mul(r26339, r26334, r26338, MPFR_RNDN);
        mpfr_set_d(r26340, M, MPFR_RNDN);
        mpfr_mul(r26341, r26340, r26340, MPFR_RNDN);
        mpfr_neg(r26342, r26341, MPFR_RNDN);
        mpfr_fma(r26343, r26339, r26339, r26342, MPFR_RNDN);
        mpfr_sqrt(r26344, r26343, MPFR_RNDN);
        mpfr_add(r26345, r26344, r26339, MPFR_RNDN);
        ;
        mpfr_pow(r26347, r26345, r26346, MPFR_RNDN);
        mpfr_cbrt(r26348, r26347, MPFR_RNDN);
        mpfr_mul(r26349, r26331, r26348, MPFR_RNDN);
        ;
        mpfr_set_si(r26351, mpfr_cmp(r26349, r26350) <= 0, MPFR_RNDN);
        ;
        mpfr_mul(r26353, r26329, r26328, MPFR_RNDN);
        mpfr_mul(r26354, r26327, r26340, MPFR_RNDN);
        mpfr_div(r26355, r26353, r26354, MPFR_RNDN);
        mpfr_neg(r26356, r26340, MPFR_RNDN);
        mpfr_mul(r26357, r26340, r26356, MPFR_RNDN);
        mpfr_fma(r26358, r26339, r26339, r26357, MPFR_RNDN);
        mpfr_sqrt(r26359, r26358, MPFR_RNDN);
        mpfr_sub(r26360, r26339, r26359, MPFR_RNDN);
        mpfr_mul(r26361, r26355, r26360, MPFR_RNDN);
        mpfr_div(r26362, r26361, r26340, MPFR_RNDN);
        mpfr_div(r26363, r26352, r26362, MPFR_RNDN);
        ;
        mpfr_set_si(r26365, mpfr_cmp(r26349, r26364) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r26367, mpfr_cmp(r26349, r26366) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r26369, mpfr_cmp(r26349, r26368) <= 0, MPFR_RNDN);
        ;
        if (mpfr_get_si(r26369, MPFR_RNDN)) { mpfr_set(r26371, r26349, MPFR_RNDN); } else { mpfr_set(r26371, r26370, MPFR_RNDN); };
        if (mpfr_get_si(r26367, MPFR_RNDN)) { mpfr_set(r26372, r26363, MPFR_RNDN); } else { mpfr_set(r26372, r26371, MPFR_RNDN); };
        if (mpfr_get_si(r26365, MPFR_RNDN)) { mpfr_set(r26373, r26349, MPFR_RNDN); } else { mpfr_set(r26373, r26372, MPFR_RNDN); };
        if (mpfr_get_si(r26351, MPFR_RNDN)) { mpfr_set(r26374, r26363, MPFR_RNDN); } else { mpfr_set(r26374, r26373, MPFR_RNDN); };
        return mpfr_get_d(r26374, MPFR_RNDN);
}

static mpfr_t r26375, r26376, r26377, r26378, r26379, r26380, r26381, r26382, r26383, r26384, r26385, r26386, r26387, r26388, r26389, r26390, r26391, r26392, r26393, r26394, r26395, r26396, r26397, r26398, r26399, r26400, r26401, r26402, r26403, r26404, r26405, r26406, r26407, r26408, r26409, r26410, r26411, r26412, r26413, r26414, r26415, r26416, r26417, r26418, r26419, r26420, r26421, r26422;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(7504);
        mpfr_init(r26375);
        mpfr_init_set_str(r26376, "2", 10, MPFR_RNDN);
        mpfr_init(r26377);
        mpfr_init(r26378);
        mpfr_init(r26379);
        mpfr_init(r26380);
        mpfr_init(r26381);
        mpfr_init(r26382);
        mpfr_init(r26383);
        mpfr_init(r26384);
        mpfr_init(r26385);
        mpfr_init(r26386);
        mpfr_init(r26387);
        mpfr_init(r26388);
        mpfr_init(r26389);
        mpfr_init(r26390);
        mpfr_init(r26391);
        mpfr_init(r26392);
        mpfr_init(r26393);
        mpfr_init_set_str(r26394, "3", 10, MPFR_RNDN);
        mpfr_init(r26395);
        mpfr_init(r26396);
        mpfr_init(r26397);
        mpfr_init_set_str(r26398, "-7.997073933475495e+104", 10, MPFR_RNDN);
        mpfr_init(r26399);
        mpfr_init_set_str(r26400, "1", 10, MPFR_RNDN);
        mpfr_init(r26401);
        mpfr_init(r26402);
        mpfr_init(r26403);
        mpfr_init(r26404);
        mpfr_init(r26405);
        mpfr_init(r26406);
        mpfr_init(r26407);
        mpfr_init(r26408);
        mpfr_init(r26409);
        mpfr_init(r26410);
        mpfr_init(r26411);
        mpfr_init_set_str(r26412, "-2.182835902747342e-178", 10, MPFR_RNDN);
        mpfr_init(r26413);
        mpfr_init_set_str(r26414, "1.6255746857262004e-85", 10, MPFR_RNDN);
        mpfr_init(r26415);
        mpfr_init_set_str(r26416, "2.6152844399714374e+290", 10, MPFR_RNDN);
        mpfr_init(r26417);
        mpfr_init_set_str(r26418, "0", 10, MPFR_RNDN);
        mpfr_init(r26419);
        mpfr_init(r26420);
        mpfr_init(r26421);
        mpfr_init(r26422);
}

double f_dm(double c0, double w, double h, double D, double d, double M) {
        mpfr_set_d(r26375, c0, MPFR_RNDN);
        ;
        mpfr_set_d(r26377, w, MPFR_RNDN);
        mpfr_mul(r26378, r26376, r26377, MPFR_RNDN);
        mpfr_div(r26379, r26375, r26378, MPFR_RNDN);
        mpfr_div(r26380, r26375, r26377, MPFR_RNDN);
        mpfr_set_d(r26381, h, MPFR_RNDN);
        mpfr_div(r26382, r26380, r26381, MPFR_RNDN);
        mpfr_set_d(r26383, d, MPFR_RNDN);
        mpfr_set_d(r26384, D, MPFR_RNDN);
        mpfr_div(r26385, r26383, r26384, MPFR_RNDN);
        mpfr_mul(r26386, r26385, r26385, MPFR_RNDN);
        mpfr_mul(r26387, r26382, r26386, MPFR_RNDN);
        mpfr_set_d(r26388, M, MPFR_RNDN);
        mpfr_mul(r26389, r26388, r26388, MPFR_RNDN);
        mpfr_neg(r26390, r26389, MPFR_RNDN);
        mpfr_fma(r26391, r26387, r26387, r26390, MPFR_RNDN);
        mpfr_sqrt(r26392, r26391, MPFR_RNDN);
        mpfr_add(r26393, r26392, r26387, MPFR_RNDN);
        ;
        mpfr_pow(r26395, r26393, r26394, MPFR_RNDN);
        mpfr_cbrt(r26396, r26395, MPFR_RNDN);
        mpfr_mul(r26397, r26379, r26396, MPFR_RNDN);
        ;
        mpfr_set_si(r26399, mpfr_cmp(r26397, r26398) <= 0, MPFR_RNDN);
        ;
        mpfr_mul(r26401, r26377, r26376, MPFR_RNDN);
        mpfr_mul(r26402, r26375, r26388, MPFR_RNDN);
        mpfr_div(r26403, r26401, r26402, MPFR_RNDN);
        mpfr_neg(r26404, r26388, MPFR_RNDN);
        mpfr_mul(r26405, r26388, r26404, MPFR_RNDN);
        mpfr_fma(r26406, r26387, r26387, r26405, MPFR_RNDN);
        mpfr_sqrt(r26407, r26406, MPFR_RNDN);
        mpfr_sub(r26408, r26387, r26407, MPFR_RNDN);
        mpfr_mul(r26409, r26403, r26408, MPFR_RNDN);
        mpfr_div(r26410, r26409, r26388, MPFR_RNDN);
        mpfr_div(r26411, r26400, r26410, MPFR_RNDN);
        ;
        mpfr_set_si(r26413, mpfr_cmp(r26397, r26412) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r26415, mpfr_cmp(r26397, r26414) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r26417, mpfr_cmp(r26397, r26416) <= 0, MPFR_RNDN);
        ;
        if (mpfr_get_si(r26417, MPFR_RNDN)) { mpfr_set(r26419, r26397, MPFR_RNDN); } else { mpfr_set(r26419, r26418, MPFR_RNDN); };
        if (mpfr_get_si(r26415, MPFR_RNDN)) { mpfr_set(r26420, r26411, MPFR_RNDN); } else { mpfr_set(r26420, r26419, MPFR_RNDN); };
        if (mpfr_get_si(r26413, MPFR_RNDN)) { mpfr_set(r26421, r26397, MPFR_RNDN); } else { mpfr_set(r26421, r26420, MPFR_RNDN); };
        if (mpfr_get_si(r26399, MPFR_RNDN)) { mpfr_set(r26422, r26411, MPFR_RNDN); } else { mpfr_set(r26422, r26421, MPFR_RNDN); };
        return mpfr_get_d(r26422, MPFR_RNDN);
}

