#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 r26336 = c0;
        float r26337 = 2;
        float r26338 = w;
        float r26339 = r26337 * r26338;
        float r26340 = r26336 / r26339;
        float r26341 = d;
        float r26342 = r26341 * r26341;
        float r26343 = r26336 * r26342;
        float r26344 = h;
        float r26345 = r26338 * r26344;
        float r26346 = D;
        float r26347 = r26346 * r26346;
        float r26348 = r26345 * r26347;
        float r26349 = r26343 / r26348;
        float r26350 = r26349 * r26349;
        float r26351 = M;
        float r26352 = r26351 * r26351;
        float r26353 = r26350 - r26352;
        float r26354 = sqrt(r26353);
        float r26355 = r26349 + r26354;
        float r26356 = r26340 * r26355;
        return r26356;
}

double f_id(double c0, double w, double h, double D, double d, double M) {
        double r26357 = c0;
        double r26358 = 2;
        double r26359 = w;
        double r26360 = r26358 * r26359;
        double r26361 = r26357 / r26360;
        double r26362 = d;
        double r26363 = r26362 * r26362;
        double r26364 = r26357 * r26363;
        double r26365 = h;
        double r26366 = r26359 * r26365;
        double r26367 = D;
        double r26368 = r26367 * r26367;
        double r26369 = r26366 * r26368;
        double r26370 = r26364 / r26369;
        double r26371 = r26370 * r26370;
        double r26372 = M;
        double r26373 = r26372 * r26372;
        double r26374 = r26371 - r26373;
        double r26375 = sqrt(r26374);
        double r26376 = r26370 + r26375;
        double r26377 = r26361 * r26376;
        return r26377;
}


double f_of(float c0, float w, float h, float D, float d, float M) {
        float r26378 = c0;
        float r26379 = 2;
        float r26380 = w;
        float r26381 = r26379 * r26380;
        float r26382 = r26378 / r26381;
        float r26383 = r26378 / r26380;
        float r26384 = h;
        float r26385 = r26383 / r26384;
        float r26386 = d;
        float r26387 = D;
        float r26388 = r26386 / r26387;
        float r26389 = r26388 * r26388;
        float r26390 = r26385 * r26389;
        float r26391 = M;
        float r26392 = r26391 * r26391;
        float r26393 = -r26392;
        float r26394 = fma(r26390, r26390, r26393);
        float r26395 = sqrt(r26394);
        float r26396 = r26395 + r26390;
        float r26397 = 3;
        float r26398 = pow(r26396, r26397);
        float r26399 = cbrt(r26398);
        float r26400 = r26382 * r26399;
        float r26401 = -1.1625648605054403e-112;
        bool r26402 = r26400 <= r26401;
        float r26403 = 1.0724107564077013e-224;
        bool r26404 = r26400 <= r26403;
        float r26405 = fabs(r26391);
        float r26406 = r26384 * r26380;
        float r26407 = r26378 / r26406;
        float r26408 = cbrt(r26407);
        float r26409 = r26408 * r26408;
        float r26410 = r26408 * r26389;
        float r26411 = r26409 * r26410;
        float r26412 = r26407 * r26389;
        float r26413 = -r26391;
        float r26414 = r26413 * r26391;
        float r26415 = fma(r26412, r26412, r26414);
        float r26416 = sqrt(r26415);
        float r26417 = r26411 - r26416;
        float r26418 = r26405 / r26417;
        float r26419 = r26405 * r26418;
        float r26420 = r26382 * r26419;
        float r26421 = 6.563227849867519e+248;
        bool r26422 = r26400 <= r26421;
        float r26423 = 0;
        float r26424 = r26422 ? r26400 : r26423;
        float r26425 = r26404 ? r26420 : r26424;
        float r26426 = r26402 ? r26400 : r26425;
        return r26426;
}

double f_od(double c0, double w, double h, double D, double d, double M) {
        double r26427 = c0;
        double r26428 = 2;
        double r26429 = w;
        double r26430 = r26428 * r26429;
        double r26431 = r26427 / r26430;
        double r26432 = r26427 / r26429;
        double r26433 = h;
        double r26434 = r26432 / r26433;
        double r26435 = d;
        double r26436 = D;
        double r26437 = r26435 / r26436;
        double r26438 = r26437 * r26437;
        double r26439 = r26434 * r26438;
        double r26440 = M;
        double r26441 = r26440 * r26440;
        double r26442 = -r26441;
        double r26443 = fma(r26439, r26439, r26442);
        double r26444 = sqrt(r26443);
        double r26445 = r26444 + r26439;
        double r26446 = 3;
        double r26447 = pow(r26445, r26446);
        double r26448 = cbrt(r26447);
        double r26449 = r26431 * r26448;
        double r26450 = -1.1625648605054403e-112;
        bool r26451 = r26449 <= r26450;
        double r26452 = 1.0724107564077013e-224;
        bool r26453 = r26449 <= r26452;
        double r26454 = fabs(r26440);
        double r26455 = r26433 * r26429;
        double r26456 = r26427 / r26455;
        double r26457 = cbrt(r26456);
        double r26458 = r26457 * r26457;
        double r26459 = r26457 * r26438;
        double r26460 = r26458 * r26459;
        double r26461 = r26456 * r26438;
        double r26462 = -r26440;
        double r26463 = r26462 * r26440;
        double r26464 = fma(r26461, r26461, r26463);
        double r26465 = sqrt(r26464);
        double r26466 = r26460 - r26465;
        double r26467 = r26454 / r26466;
        double r26468 = r26454 * r26467;
        double r26469 = r26431 * r26468;
        double r26470 = 6.563227849867519e+248;
        bool r26471 = r26449 <= r26470;
        double r26472 = 0;
        double r26473 = r26471 ? r26449 : r26472;
        double r26474 = r26453 ? r26469 : r26473;
        double r26475 = r26451 ? r26449 : r26474;
        return r26475;
}

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 r26476, r26477, r26478, r26479, r26480, r26481, r26482, r26483, r26484, r26485, r26486, r26487, r26488, r26489, r26490, r26491, r26492, r26493, r26494, r26495, r26496;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(6736);
        mpfr_init(r26476);
        mpfr_init_set_str(r26477, "2", 10, MPFR_RNDN);
        mpfr_init(r26478);
        mpfr_init(r26479);
        mpfr_init(r26480);
        mpfr_init(r26481);
        mpfr_init(r26482);
        mpfr_init(r26483);
        mpfr_init(r26484);
        mpfr_init(r26485);
        mpfr_init(r26486);
        mpfr_init(r26487);
        mpfr_init(r26488);
        mpfr_init(r26489);
        mpfr_init(r26490);
        mpfr_init(r26491);
        mpfr_init(r26492);
        mpfr_init(r26493);
        mpfr_init(r26494);
        mpfr_init(r26495);
        mpfr_init(r26496);
}

double f_im(double c0, double w, double h, double D, double d, double M) {
        mpfr_set_d(r26476, c0, MPFR_RNDN);
        ;
        mpfr_set_d(r26478, w, MPFR_RNDN);
        mpfr_mul(r26479, r26477, r26478, MPFR_RNDN);
        mpfr_div(r26480, r26476, r26479, MPFR_RNDN);
        mpfr_set_d(r26481, d, MPFR_RNDN);
        mpfr_mul(r26482, r26481, r26481, MPFR_RNDN);
        mpfr_mul(r26483, r26476, r26482, MPFR_RNDN);
        mpfr_set_d(r26484, h, MPFR_RNDN);
        mpfr_mul(r26485, r26478, r26484, MPFR_RNDN);
        mpfr_set_d(r26486, D, MPFR_RNDN);
        mpfr_mul(r26487, r26486, r26486, MPFR_RNDN);
        mpfr_mul(r26488, r26485, r26487, MPFR_RNDN);
        mpfr_div(r26489, r26483, r26488, MPFR_RNDN);
        mpfr_mul(r26490, r26489, r26489, MPFR_RNDN);
        mpfr_set_d(r26491, M, MPFR_RNDN);
        mpfr_mul(r26492, r26491, r26491, MPFR_RNDN);
        mpfr_sub(r26493, r26490, r26492, MPFR_RNDN);
        mpfr_sqrt(r26494, r26493, MPFR_RNDN);
        mpfr_add(r26495, r26489, r26494, MPFR_RNDN);
        mpfr_mul(r26496, r26480, r26495, MPFR_RNDN);
        return mpfr_get_d(r26496, MPFR_RNDN);
}

static mpfr_t r26497, r26498, r26499, r26500, r26501, r26502, r26503, r26504, r26505, r26506, r26507, r26508, r26509, r26510, r26511, r26512, r26513, r26514, r26515, r26516, r26517, r26518, r26519, r26520, r26521, r26522, r26523, r26524, r26525, r26526, r26527, r26528, r26529, r26530, r26531, r26532, r26533, r26534, r26535, r26536, r26537, r26538, r26539, r26540, r26541, r26542, r26543, r26544, r26545;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(6736);
        mpfr_init(r26497);
        mpfr_init_set_str(r26498, "2", 10, MPFR_RNDN);
        mpfr_init(r26499);
        mpfr_init(r26500);
        mpfr_init(r26501);
        mpfr_init(r26502);
        mpfr_init(r26503);
        mpfr_init(r26504);
        mpfr_init(r26505);
        mpfr_init(r26506);
        mpfr_init(r26507);
        mpfr_init(r26508);
        mpfr_init(r26509);
        mpfr_init(r26510);
        mpfr_init(r26511);
        mpfr_init(r26512);
        mpfr_init(r26513);
        mpfr_init(r26514);
        mpfr_init(r26515);
        mpfr_init_set_str(r26516, "3", 10, MPFR_RNDN);
        mpfr_init(r26517);
        mpfr_init(r26518);
        mpfr_init(r26519);
        mpfr_init_set_str(r26520, "-1.1625648605054403e-112", 10, MPFR_RNDN);
        mpfr_init(r26521);
        mpfr_init_set_str(r26522, "1.0724107564077013e-224", 10, MPFR_RNDN);
        mpfr_init(r26523);
        mpfr_init(r26524);
        mpfr_init(r26525);
        mpfr_init(r26526);
        mpfr_init(r26527);
        mpfr_init(r26528);
        mpfr_init(r26529);
        mpfr_init(r26530);
        mpfr_init(r26531);
        mpfr_init(r26532);
        mpfr_init(r26533);
        mpfr_init(r26534);
        mpfr_init(r26535);
        mpfr_init(r26536);
        mpfr_init(r26537);
        mpfr_init(r26538);
        mpfr_init(r26539);
        mpfr_init_set_str(r26540, "6.563227849867519e+248", 10, MPFR_RNDN);
        mpfr_init(r26541);
        mpfr_init_set_str(r26542, "0", 10, MPFR_RNDN);
        mpfr_init(r26543);
        mpfr_init(r26544);
        mpfr_init(r26545);
}

double f_fm(double c0, double w, double h, double D, double d, double M) {
        mpfr_set_d(r26497, c0, MPFR_RNDN);
        ;
        mpfr_set_d(r26499, w, MPFR_RNDN);
        mpfr_mul(r26500, r26498, r26499, MPFR_RNDN);
        mpfr_div(r26501, r26497, r26500, MPFR_RNDN);
        mpfr_div(r26502, r26497, r26499, MPFR_RNDN);
        mpfr_set_d(r26503, h, MPFR_RNDN);
        mpfr_div(r26504, r26502, r26503, MPFR_RNDN);
        mpfr_set_d(r26505, d, MPFR_RNDN);
        mpfr_set_d(r26506, D, MPFR_RNDN);
        mpfr_div(r26507, r26505, r26506, MPFR_RNDN);
        mpfr_mul(r26508, r26507, r26507, MPFR_RNDN);
        mpfr_mul(r26509, r26504, r26508, MPFR_RNDN);
        mpfr_set_d(r26510, M, MPFR_RNDN);
        mpfr_mul(r26511, r26510, r26510, MPFR_RNDN);
        mpfr_neg(r26512, r26511, MPFR_RNDN);
        mpfr_fma(r26513, r26509, r26509, r26512, MPFR_RNDN);
        mpfr_sqrt(r26514, r26513, MPFR_RNDN);
        mpfr_add(r26515, r26514, r26509, MPFR_RNDN);
        ;
        mpfr_pow(r26517, r26515, r26516, MPFR_RNDN);
        mpfr_cbrt(r26518, r26517, MPFR_RNDN);
        mpfr_mul(r26519, r26501, r26518, MPFR_RNDN);
        ;
        mpfr_set_si(r26521, mpfr_cmp(r26519, r26520) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r26523, mpfr_cmp(r26519, r26522) <= 0, MPFR_RNDN);
        mpfr_abs(r26524, r26510, MPFR_RNDN);
        mpfr_mul(r26525, r26503, r26499, MPFR_RNDN);
        mpfr_div(r26526, r26497, r26525, MPFR_RNDN);
        mpfr_cbrt(r26527, r26526, MPFR_RNDN);
        mpfr_mul(r26528, r26527, r26527, MPFR_RNDN);
        mpfr_mul(r26529, r26527, r26508, MPFR_RNDN);
        mpfr_mul(r26530, r26528, r26529, MPFR_RNDN);
        mpfr_mul(r26531, r26526, r26508, MPFR_RNDN);
        mpfr_neg(r26532, r26510, MPFR_RNDN);
        mpfr_mul(r26533, r26532, r26510, MPFR_RNDN);
        mpfr_fma(r26534, r26531, r26531, r26533, MPFR_RNDN);
        mpfr_sqrt(r26535, r26534, MPFR_RNDN);
        mpfr_sub(r26536, r26530, r26535, MPFR_RNDN);
        mpfr_div(r26537, r26524, r26536, MPFR_RNDN);
        mpfr_mul(r26538, r26524, r26537, MPFR_RNDN);
        mpfr_mul(r26539, r26501, r26538, MPFR_RNDN);
        ;
        mpfr_set_si(r26541, mpfr_cmp(r26519, r26540) <= 0, MPFR_RNDN);
        ;
        if (mpfr_get_si(r26541, MPFR_RNDN)) { mpfr_set(r26543, r26519, MPFR_RNDN); } else { mpfr_set(r26543, r26542, MPFR_RNDN); };
        if (mpfr_get_si(r26523, MPFR_RNDN)) { mpfr_set(r26544, r26539, MPFR_RNDN); } else { mpfr_set(r26544, r26543, MPFR_RNDN); };
        if (mpfr_get_si(r26521, MPFR_RNDN)) { mpfr_set(r26545, r26519, MPFR_RNDN); } else { mpfr_set(r26545, r26544, MPFR_RNDN); };
        return mpfr_get_d(r26545, MPFR_RNDN);
}

static mpfr_t r26546, r26547, r26548, r26549, r26550, r26551, r26552, r26553, r26554, r26555, r26556, r26557, r26558, r26559, r26560, r26561, r26562, r26563, r26564, r26565, r26566, r26567, r26568, r26569, r26570, r26571, r26572, r26573, r26574, r26575, r26576, r26577, r26578, r26579, r26580, r26581, r26582, r26583, r26584, r26585, r26586, r26587, r26588, r26589, r26590, r26591, r26592, r26593, r26594;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(6736);
        mpfr_init(r26546);
        mpfr_init_set_str(r26547, "2", 10, MPFR_RNDN);
        mpfr_init(r26548);
        mpfr_init(r26549);
        mpfr_init(r26550);
        mpfr_init(r26551);
        mpfr_init(r26552);
        mpfr_init(r26553);
        mpfr_init(r26554);
        mpfr_init(r26555);
        mpfr_init(r26556);
        mpfr_init(r26557);
        mpfr_init(r26558);
        mpfr_init(r26559);
        mpfr_init(r26560);
        mpfr_init(r26561);
        mpfr_init(r26562);
        mpfr_init(r26563);
        mpfr_init(r26564);
        mpfr_init_set_str(r26565, "3", 10, MPFR_RNDN);
        mpfr_init(r26566);
        mpfr_init(r26567);
        mpfr_init(r26568);
        mpfr_init_set_str(r26569, "-1.1625648605054403e-112", 10, MPFR_RNDN);
        mpfr_init(r26570);
        mpfr_init_set_str(r26571, "1.0724107564077013e-224", 10, MPFR_RNDN);
        mpfr_init(r26572);
        mpfr_init(r26573);
        mpfr_init(r26574);
        mpfr_init(r26575);
        mpfr_init(r26576);
        mpfr_init(r26577);
        mpfr_init(r26578);
        mpfr_init(r26579);
        mpfr_init(r26580);
        mpfr_init(r26581);
        mpfr_init(r26582);
        mpfr_init(r26583);
        mpfr_init(r26584);
        mpfr_init(r26585);
        mpfr_init(r26586);
        mpfr_init(r26587);
        mpfr_init(r26588);
        mpfr_init_set_str(r26589, "6.563227849867519e+248", 10, MPFR_RNDN);
        mpfr_init(r26590);
        mpfr_init_set_str(r26591, "0", 10, MPFR_RNDN);
        mpfr_init(r26592);
        mpfr_init(r26593);
        mpfr_init(r26594);
}

double f_dm(double c0, double w, double h, double D, double d, double M) {
        mpfr_set_d(r26546, c0, MPFR_RNDN);
        ;
        mpfr_set_d(r26548, w, MPFR_RNDN);
        mpfr_mul(r26549, r26547, r26548, MPFR_RNDN);
        mpfr_div(r26550, r26546, r26549, MPFR_RNDN);
        mpfr_div(r26551, r26546, r26548, MPFR_RNDN);
        mpfr_set_d(r26552, h, MPFR_RNDN);
        mpfr_div(r26553, r26551, r26552, MPFR_RNDN);
        mpfr_set_d(r26554, d, MPFR_RNDN);
        mpfr_set_d(r26555, D, MPFR_RNDN);
        mpfr_div(r26556, r26554, r26555, MPFR_RNDN);
        mpfr_mul(r26557, r26556, r26556, MPFR_RNDN);
        mpfr_mul(r26558, r26553, r26557, MPFR_RNDN);
        mpfr_set_d(r26559, M, MPFR_RNDN);
        mpfr_mul(r26560, r26559, r26559, MPFR_RNDN);
        mpfr_neg(r26561, r26560, MPFR_RNDN);
        mpfr_fma(r26562, r26558, r26558, r26561, MPFR_RNDN);
        mpfr_sqrt(r26563, r26562, MPFR_RNDN);
        mpfr_add(r26564, r26563, r26558, MPFR_RNDN);
        ;
        mpfr_pow(r26566, r26564, r26565, MPFR_RNDN);
        mpfr_cbrt(r26567, r26566, MPFR_RNDN);
        mpfr_mul(r26568, r26550, r26567, MPFR_RNDN);
        ;
        mpfr_set_si(r26570, mpfr_cmp(r26568, r26569) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r26572, mpfr_cmp(r26568, r26571) <= 0, MPFR_RNDN);
        mpfr_abs(r26573, r26559, MPFR_RNDN);
        mpfr_mul(r26574, r26552, r26548, MPFR_RNDN);
        mpfr_div(r26575, r26546, r26574, MPFR_RNDN);
        mpfr_cbrt(r26576, r26575, MPFR_RNDN);
        mpfr_mul(r26577, r26576, r26576, MPFR_RNDN);
        mpfr_mul(r26578, r26576, r26557, MPFR_RNDN);
        mpfr_mul(r26579, r26577, r26578, MPFR_RNDN);
        mpfr_mul(r26580, r26575, r26557, MPFR_RNDN);
        mpfr_neg(r26581, r26559, MPFR_RNDN);
        mpfr_mul(r26582, r26581, r26559, MPFR_RNDN);
        mpfr_fma(r26583, r26580, r26580, r26582, MPFR_RNDN);
        mpfr_sqrt(r26584, r26583, MPFR_RNDN);
        mpfr_sub(r26585, r26579, r26584, MPFR_RNDN);
        mpfr_div(r26586, r26573, r26585, MPFR_RNDN);
        mpfr_mul(r26587, r26573, r26586, MPFR_RNDN);
        mpfr_mul(r26588, r26550, r26587, MPFR_RNDN);
        ;
        mpfr_set_si(r26590, mpfr_cmp(r26568, r26589) <= 0, MPFR_RNDN);
        ;
        if (mpfr_get_si(r26590, MPFR_RNDN)) { mpfr_set(r26592, r26568, MPFR_RNDN); } else { mpfr_set(r26592, r26591, MPFR_RNDN); };
        if (mpfr_get_si(r26572, MPFR_RNDN)) { mpfr_set(r26593, r26588, MPFR_RNDN); } else { mpfr_set(r26593, r26592, MPFR_RNDN); };
        if (mpfr_get_si(r26570, MPFR_RNDN)) { mpfr_set(r26594, r26568, MPFR_RNDN); } else { mpfr_set(r26594, r26593, MPFR_RNDN); };
        return mpfr_get_d(r26594, MPFR_RNDN);
}

