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

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

double f_if(float w0, float M, float D, float h, float l, float d) {
        float r26133 = w0;
        float r26134 = 1;
        float r26135 = M;
        float r26136 = D;
        float r26137 = r26135 * r26136;
        float r26138 = 2;
        float r26139 = d;
        float r26140 = r26138 * r26139;
        float r26141 = r26137 / r26140;
        float r26142 = pow(r26141, r26138);
        float r26143 = h;
        float r26144 = l;
        float r26145 = r26143 / r26144;
        float r26146 = r26142 * r26145;
        float r26147 = r26134 - r26146;
        float r26148 = sqrt(r26147);
        float r26149 = r26133 * r26148;
        return r26149;
}

double f_id(double w0, double M, double D, double h, double l, double d) {
        double r26150 = w0;
        double r26151 = 1;
        double r26152 = M;
        double r26153 = D;
        double r26154 = r26152 * r26153;
        double r26155 = 2;
        double r26156 = d;
        double r26157 = r26155 * r26156;
        double r26158 = r26154 / r26157;
        double r26159 = pow(r26158, r26155);
        double r26160 = h;
        double r26161 = l;
        double r26162 = r26160 / r26161;
        double r26163 = r26159 * r26162;
        double r26164 = r26151 - r26163;
        double r26165 = sqrt(r26164);
        double r26166 = r26150 * r26165;
        return r26166;
}


double f_of(float w0, float M, float D, float h, float l, float d) {
        float r26167 = 1;
        float r26168 = M;
        float r26169 = d;
        float r26170 = r26168 / r26169;
        float r26171 = h;
        float r26172 = D;
        float r26173 = r26171 * r26172;
        float r26174 = 1/2;
        float r26175 = r26173 * r26174;
        float r26176 = r26170 * r26175;
        float r26177 = cbrt(r26176);
        float r26178 = r26177 * r26177;
        float r26179 = r26178 * r26177;
        float r26180 = 2;
        float r26181 = r26172 / r26180;
        float r26182 = r26181 * r26170;
        float r26183 = l;
        float r26184 = r26182 / r26183;
        float r26185 = r26179 * r26184;
        float r26186 = r26167 - r26185;
        float r26187 = sqrt(r26186);
        float r26188 = w0;
        float r26189 = r26187 * r26188;
        float r26190 = -inf.0;
        bool r26191 = r26189 <= r26190;
        float r26192 = r26168 * r26172;
        float r26193 = r26180 * r26169;
        float r26194 = r26192 / r26193;
        float r26195 = pow(r26194, r26180);
        float r26196 = r26171 / r26183;
        float r26197 = r26195 * r26196;
        float r26198 = r26167 - r26197;
        float r26199 = sqrt(r26198);
        float r26200 = r26188 * r26199;
        float r26201 = cbrt(r26200);
        float r26202 = r26201 * r26201;
        float r26203 = r26202 * r26201;
        float r26204 = 2.404442561858821e+303;
        bool r26205 = r26189 <= r26204;
        float r26206 = r26176 * r26184;
        float r26207 = r26167 - r26206;
        float r26208 = sqrt(r26207);
        float r26209 = r26208 * r26188;
        float r26210 = r26172 * r26168;
        float r26211 = r26210 * r26210;
        float r26212 = r26171 / r26180;
        float r26213 = r26169 / r26212;
        float r26214 = r26211 / r26213;
        float r26215 = r26193 * r26183;
        float r26216 = r26214 / r26215;
        float r26217 = r26167 - r26216;
        float r26218 = sqrt(r26217);
        float r26219 = r26188 * r26218;
        float r26220 = r26205 ? r26209 : r26219;
        float r26221 = r26191 ? r26203 : r26220;
        return r26221;
}

double f_od(double w0, double M, double D, double h, double l, double d) {
        double r26222 = 1;
        double r26223 = M;
        double r26224 = d;
        double r26225 = r26223 / r26224;
        double r26226 = h;
        double r26227 = D;
        double r26228 = r26226 * r26227;
        double r26229 = 1/2;
        double r26230 = r26228 * r26229;
        double r26231 = r26225 * r26230;
        double r26232 = cbrt(r26231);
        double r26233 = r26232 * r26232;
        double r26234 = r26233 * r26232;
        double r26235 = 2;
        double r26236 = r26227 / r26235;
        double r26237 = r26236 * r26225;
        double r26238 = l;
        double r26239 = r26237 / r26238;
        double r26240 = r26234 * r26239;
        double r26241 = r26222 - r26240;
        double r26242 = sqrt(r26241);
        double r26243 = w0;
        double r26244 = r26242 * r26243;
        double r26245 = -inf.0;
        bool r26246 = r26244 <= r26245;
        double r26247 = r26223 * r26227;
        double r26248 = r26235 * r26224;
        double r26249 = r26247 / r26248;
        double r26250 = pow(r26249, r26235);
        double r26251 = r26226 / r26238;
        double r26252 = r26250 * r26251;
        double r26253 = r26222 - r26252;
        double r26254 = sqrt(r26253);
        double r26255 = r26243 * r26254;
        double r26256 = cbrt(r26255);
        double r26257 = r26256 * r26256;
        double r26258 = r26257 * r26256;
        double r26259 = 2.404442561858821e+303;
        bool r26260 = r26244 <= r26259;
        double r26261 = r26231 * r26239;
        double r26262 = r26222 - r26261;
        double r26263 = sqrt(r26262);
        double r26264 = r26263 * r26243;
        double r26265 = r26227 * r26223;
        double r26266 = r26265 * r26265;
        double r26267 = r26226 / r26235;
        double r26268 = r26224 / r26267;
        double r26269 = r26266 / r26268;
        double r26270 = r26248 * r26238;
        double r26271 = r26269 / r26270;
        double r26272 = r26222 - r26271;
        double r26273 = sqrt(r26272);
        double r26274 = r26243 * r26273;
        double r26275 = r26260 ? r26264 : r26274;
        double r26276 = r26246 ? r26258 : r26275;
        return r26276;
}

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 r26277, r26278, r26279, r26280, r26281, r26282, r26283, r26284, r26285, r26286, r26287, r26288, r26289, r26290, r26291, r26292, r26293;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r26277);
        mpfr_init_set_str(r26278, "1", 10, MPFR_RNDN);
        mpfr_init(r26279);
        mpfr_init(r26280);
        mpfr_init(r26281);
        mpfr_init_set_str(r26282, "2", 10, MPFR_RNDN);
        mpfr_init(r26283);
        mpfr_init(r26284);
        mpfr_init(r26285);
        mpfr_init(r26286);
        mpfr_init(r26287);
        mpfr_init(r26288);
        mpfr_init(r26289);
        mpfr_init(r26290);
        mpfr_init(r26291);
        mpfr_init(r26292);
        mpfr_init(r26293);
}

double f_im(double w0, double M, double D, double h, double l, double d) {
        mpfr_set_d(r26277, w0, MPFR_RNDN);
        ;
        mpfr_set_d(r26279, M, MPFR_RNDN);
        mpfr_set_d(r26280, D, MPFR_RNDN);
        mpfr_mul(r26281, r26279, r26280, MPFR_RNDN);
        ;
        mpfr_set_d(r26283, d, MPFR_RNDN);
        mpfr_mul(r26284, r26282, r26283, MPFR_RNDN);
        mpfr_div(r26285, r26281, r26284, MPFR_RNDN);
        mpfr_pow(r26286, r26285, r26282, MPFR_RNDN);
        mpfr_set_d(r26287, h, MPFR_RNDN);
        mpfr_set_d(r26288, l, MPFR_RNDN);
        mpfr_div(r26289, r26287, r26288, MPFR_RNDN);
        mpfr_mul(r26290, r26286, r26289, MPFR_RNDN);
        mpfr_sub(r26291, r26278, r26290, MPFR_RNDN);
        mpfr_sqrt(r26292, r26291, MPFR_RNDN);
        mpfr_mul(r26293, r26277, r26292, MPFR_RNDN);
        return mpfr_get_d(r26293, MPFR_RNDN);
}

static mpfr_t r26294, r26295, r26296, r26297, r26298, r26299, r26300, r26301, r26302, r26303, r26304, r26305, r26306, r26307, r26308, r26309, r26310, r26311, r26312, r26313, r26314, r26315, r26316, r26317, r26318, r26319, r26320, r26321, r26322, r26323, r26324, r26325, r26326, r26327, r26328, r26329, r26330, r26331, r26332, r26333, r26334, r26335, r26336, r26337, r26338, r26339, r26340, r26341, r26342, r26343, r26344, r26345, r26346, r26347, r26348;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r26294, "1", 10, MPFR_RNDN);
        mpfr_init(r26295);
        mpfr_init(r26296);
        mpfr_init(r26297);
        mpfr_init(r26298);
        mpfr_init(r26299);
        mpfr_init(r26300);
        mpfr_init_set_str(r26301, "1/2", 10, MPFR_RNDN);
        mpfr_init(r26302);
        mpfr_init(r26303);
        mpfr_init(r26304);
        mpfr_init(r26305);
        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_set_str(r26317, "-inf.0", 10, MPFR_RNDN);
        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);
        mpfr_init(r26327);
        mpfr_init(r26328);
        mpfr_init(r26329);
        mpfr_init(r26330);
        mpfr_init_set_str(r26331, "2.404442561858821e+303", 10, MPFR_RNDN);
        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(r26346);
        mpfr_init(r26347);
        mpfr_init(r26348);
}

double f_fm(double w0, double M, double D, double h, double l, double d) {
        ;
        mpfr_set_d(r26295, M, MPFR_RNDN);
        mpfr_set_d(r26296, d, MPFR_RNDN);
        mpfr_div(r26297, r26295, r26296, MPFR_RNDN);
        mpfr_set_d(r26298, h, MPFR_RNDN);
        mpfr_set_d(r26299, D, MPFR_RNDN);
        mpfr_mul(r26300, r26298, r26299, MPFR_RNDN);
        ;
        mpfr_mul(r26302, r26300, r26301, MPFR_RNDN);
        mpfr_mul(r26303, r26297, r26302, MPFR_RNDN);
        mpfr_cbrt(r26304, r26303, MPFR_RNDN);
        mpfr_mul(r26305, r26304, r26304, MPFR_RNDN);
        mpfr_mul(r26306, r26305, r26304, MPFR_RNDN);
        ;
        mpfr_div(r26308, r26299, r26307, MPFR_RNDN);
        mpfr_mul(r26309, r26308, r26297, MPFR_RNDN);
        mpfr_set_d(r26310, l, MPFR_RNDN);
        mpfr_div(r26311, r26309, r26310, MPFR_RNDN);
        mpfr_mul(r26312, r26306, r26311, MPFR_RNDN);
        mpfr_sub(r26313, r26294, r26312, MPFR_RNDN);
        mpfr_sqrt(r26314, r26313, MPFR_RNDN);
        mpfr_set_d(r26315, w0, MPFR_RNDN);
        mpfr_mul(r26316, r26314, r26315, MPFR_RNDN);
        ;
        mpfr_set_si(r26318, mpfr_cmp(r26316, r26317) <= 0, MPFR_RNDN);
        mpfr_mul(r26319, r26295, r26299, MPFR_RNDN);
        mpfr_mul(r26320, r26307, r26296, MPFR_RNDN);
        mpfr_div(r26321, r26319, r26320, MPFR_RNDN);
        mpfr_pow(r26322, r26321, r26307, MPFR_RNDN);
        mpfr_div(r26323, r26298, r26310, MPFR_RNDN);
        mpfr_mul(r26324, r26322, r26323, MPFR_RNDN);
        mpfr_sub(r26325, r26294, r26324, MPFR_RNDN);
        mpfr_sqrt(r26326, r26325, MPFR_RNDN);
        mpfr_mul(r26327, r26315, r26326, MPFR_RNDN);
        mpfr_cbrt(r26328, r26327, MPFR_RNDN);
        mpfr_mul(r26329, r26328, r26328, MPFR_RNDN);
        mpfr_mul(r26330, r26329, r26328, MPFR_RNDN);
        ;
        mpfr_set_si(r26332, mpfr_cmp(r26316, r26331) <= 0, MPFR_RNDN);
        mpfr_mul(r26333, r26303, r26311, MPFR_RNDN);
        mpfr_sub(r26334, r26294, r26333, MPFR_RNDN);
        mpfr_sqrt(r26335, r26334, MPFR_RNDN);
        mpfr_mul(r26336, r26335, r26315, MPFR_RNDN);
        mpfr_mul(r26337, r26299, r26295, MPFR_RNDN);
        mpfr_mul(r26338, r26337, r26337, MPFR_RNDN);
        mpfr_div(r26339, r26298, r26307, MPFR_RNDN);
        mpfr_div(r26340, r26296, r26339, MPFR_RNDN);
        mpfr_div(r26341, r26338, r26340, MPFR_RNDN);
        mpfr_mul(r26342, r26320, r26310, MPFR_RNDN);
        mpfr_div(r26343, r26341, r26342, MPFR_RNDN);
        mpfr_sub(r26344, r26294, r26343, MPFR_RNDN);
        mpfr_sqrt(r26345, r26344, MPFR_RNDN);
        mpfr_mul(r26346, r26315, r26345, MPFR_RNDN);
        if (mpfr_get_si(r26332, MPFR_RNDN)) { mpfr_set(r26347, r26336, MPFR_RNDN); } else { mpfr_set(r26347, r26346, MPFR_RNDN); };
        if (mpfr_get_si(r26318, MPFR_RNDN)) { mpfr_set(r26348, r26330, MPFR_RNDN); } else { mpfr_set(r26348, r26347, MPFR_RNDN); };
        return mpfr_get_d(r26348, MPFR_RNDN);
}

static mpfr_t 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, 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;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r26349, "1", 10, MPFR_RNDN);
        mpfr_init(r26350);
        mpfr_init(r26351);
        mpfr_init(r26352);
        mpfr_init(r26353);
        mpfr_init(r26354);
        mpfr_init(r26355);
        mpfr_init_set_str(r26356, "1/2", 10, MPFR_RNDN);
        mpfr_init(r26357);
        mpfr_init(r26358);
        mpfr_init(r26359);
        mpfr_init(r26360);
        mpfr_init(r26361);
        mpfr_init_set_str(r26362, "2", 10, MPFR_RNDN);
        mpfr_init(r26363);
        mpfr_init(r26364);
        mpfr_init(r26365);
        mpfr_init(r26366);
        mpfr_init(r26367);
        mpfr_init(r26368);
        mpfr_init(r26369);
        mpfr_init(r26370);
        mpfr_init(r26371);
        mpfr_init_set_str(r26372, "-inf.0", 10, MPFR_RNDN);
        mpfr_init(r26373);
        mpfr_init(r26374);
        mpfr_init(r26375);
        mpfr_init(r26376);
        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_set_str(r26386, "2.404442561858821e+303", 10, MPFR_RNDN);
        mpfr_init(r26387);
        mpfr_init(r26388);
        mpfr_init(r26389);
        mpfr_init(r26390);
        mpfr_init(r26391);
        mpfr_init(r26392);
        mpfr_init(r26393);
        mpfr_init(r26394);
        mpfr_init(r26395);
        mpfr_init(r26396);
        mpfr_init(r26397);
        mpfr_init(r26398);
        mpfr_init(r26399);
        mpfr_init(r26400);
        mpfr_init(r26401);
        mpfr_init(r26402);
        mpfr_init(r26403);
}

double f_dm(double w0, double M, double D, double h, double l, double d) {
        ;
        mpfr_set_d(r26350, M, MPFR_RNDN);
        mpfr_set_d(r26351, d, MPFR_RNDN);
        mpfr_div(r26352, r26350, r26351, MPFR_RNDN);
        mpfr_set_d(r26353, h, MPFR_RNDN);
        mpfr_set_d(r26354, D, MPFR_RNDN);
        mpfr_mul(r26355, r26353, r26354, MPFR_RNDN);
        ;
        mpfr_mul(r26357, r26355, r26356, MPFR_RNDN);
        mpfr_mul(r26358, r26352, r26357, MPFR_RNDN);
        mpfr_cbrt(r26359, r26358, MPFR_RNDN);
        mpfr_mul(r26360, r26359, r26359, MPFR_RNDN);
        mpfr_mul(r26361, r26360, r26359, MPFR_RNDN);
        ;
        mpfr_div(r26363, r26354, r26362, MPFR_RNDN);
        mpfr_mul(r26364, r26363, r26352, MPFR_RNDN);
        mpfr_set_d(r26365, l, MPFR_RNDN);
        mpfr_div(r26366, r26364, r26365, MPFR_RNDN);
        mpfr_mul(r26367, r26361, r26366, MPFR_RNDN);
        mpfr_sub(r26368, r26349, r26367, MPFR_RNDN);
        mpfr_sqrt(r26369, r26368, MPFR_RNDN);
        mpfr_set_d(r26370, w0, MPFR_RNDN);
        mpfr_mul(r26371, r26369, r26370, MPFR_RNDN);
        ;
        mpfr_set_si(r26373, mpfr_cmp(r26371, r26372) <= 0, MPFR_RNDN);
        mpfr_mul(r26374, r26350, r26354, MPFR_RNDN);
        mpfr_mul(r26375, r26362, r26351, MPFR_RNDN);
        mpfr_div(r26376, r26374, r26375, MPFR_RNDN);
        mpfr_pow(r26377, r26376, r26362, MPFR_RNDN);
        mpfr_div(r26378, r26353, r26365, MPFR_RNDN);
        mpfr_mul(r26379, r26377, r26378, MPFR_RNDN);
        mpfr_sub(r26380, r26349, r26379, MPFR_RNDN);
        mpfr_sqrt(r26381, r26380, MPFR_RNDN);
        mpfr_mul(r26382, r26370, r26381, MPFR_RNDN);
        mpfr_cbrt(r26383, r26382, MPFR_RNDN);
        mpfr_mul(r26384, r26383, r26383, MPFR_RNDN);
        mpfr_mul(r26385, r26384, r26383, MPFR_RNDN);
        ;
        mpfr_set_si(r26387, mpfr_cmp(r26371, r26386) <= 0, MPFR_RNDN);
        mpfr_mul(r26388, r26358, r26366, MPFR_RNDN);
        mpfr_sub(r26389, r26349, r26388, MPFR_RNDN);
        mpfr_sqrt(r26390, r26389, MPFR_RNDN);
        mpfr_mul(r26391, r26390, r26370, MPFR_RNDN);
        mpfr_mul(r26392, r26354, r26350, MPFR_RNDN);
        mpfr_mul(r26393, r26392, r26392, MPFR_RNDN);
        mpfr_div(r26394, r26353, r26362, MPFR_RNDN);
        mpfr_div(r26395, r26351, r26394, MPFR_RNDN);
        mpfr_div(r26396, r26393, r26395, MPFR_RNDN);
        mpfr_mul(r26397, r26375, r26365, MPFR_RNDN);
        mpfr_div(r26398, r26396, r26397, MPFR_RNDN);
        mpfr_sub(r26399, r26349, r26398, MPFR_RNDN);
        mpfr_sqrt(r26400, r26399, MPFR_RNDN);
        mpfr_mul(r26401, r26370, r26400, MPFR_RNDN);
        if (mpfr_get_si(r26387, MPFR_RNDN)) { mpfr_set(r26402, r26391, MPFR_RNDN); } else { mpfr_set(r26402, r26401, MPFR_RNDN); };
        if (mpfr_get_si(r26373, MPFR_RNDN)) { mpfr_set(r26403, r26385, MPFR_RNDN); } else { mpfr_set(r26403, r26402, MPFR_RNDN); };
        return mpfr_get_d(r26403, MPFR_RNDN);
}

