#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 r26425 = c0;
        float r26426 = 2;
        float r26427 = w;
        float r26428 = r26426 * r26427;
        float r26429 = r26425 / r26428;
        float r26430 = d;
        float r26431 = r26430 * r26430;
        float r26432 = r26425 * r26431;
        float r26433 = h;
        float r26434 = r26427 * r26433;
        float r26435 = D;
        float r26436 = r26435 * r26435;
        float r26437 = r26434 * r26436;
        float r26438 = r26432 / r26437;
        float r26439 = r26438 * r26438;
        float r26440 = M;
        float r26441 = r26440 * r26440;
        float r26442 = r26439 - r26441;
        float r26443 = sqrt(r26442);
        float r26444 = r26438 + r26443;
        float r26445 = r26429 * r26444;
        return r26445;
}

double f_id(double c0, double w, double h, double D, double d, double M) {
        double r26446 = c0;
        double r26447 = 2;
        double r26448 = w;
        double r26449 = r26447 * r26448;
        double r26450 = r26446 / r26449;
        double r26451 = d;
        double r26452 = r26451 * r26451;
        double r26453 = r26446 * r26452;
        double r26454 = h;
        double r26455 = r26448 * r26454;
        double r26456 = D;
        double r26457 = r26456 * r26456;
        double r26458 = r26455 * r26457;
        double r26459 = r26453 / r26458;
        double r26460 = r26459 * r26459;
        double r26461 = M;
        double r26462 = r26461 * r26461;
        double r26463 = r26460 - r26462;
        double r26464 = sqrt(r26463);
        double r26465 = r26459 + r26464;
        double r26466 = r26450 * r26465;
        return r26466;
}


double f_of(float c0, float w, float h, float D, float d, float M) {
        float r26467 = c0;
        float r26468 = 2;
        float r26469 = w;
        float r26470 = r26468 * r26469;
        float r26471 = r26467 / r26470;
        float r26472 = M;
        float r26473 = fabs(r26472);
        float r26474 = r26467 / r26469;
        float r26475 = h;
        float r26476 = r26474 / r26475;
        float r26477 = d;
        float r26478 = D;
        float r26479 = r26477 / r26478;
        float r26480 = r26479 * r26479;
        float r26481 = r26476 * r26480;
        float r26482 = r26481 + r26472;
        float r26483 = r26481 - r26472;
        float r26484 = r26482 * r26483;
        float r26485 = sqrt(r26484);
        float r26486 = r26481 - r26485;
        float r26487 = cbrt(r26486);
        float r26488 = r26473 / r26487;
        float r26489 = r26488 / r26487;
        float r26490 = r26480 * r26476;
        float r26491 = r26490 * r26490;
        float r26492 = r26472 * r26472;
        float r26493 = r26491 - r26492;
        float r26494 = sqrt(r26493);
        float r26495 = r26490 - r26494;
        float r26496 = cbrt(r26495);
        float r26497 = r26473 / r26496;
        float r26498 = r26489 * r26497;
        float r26499 = r26471 * r26498;
        float r26500 = -1.6861670325317465e+55;
        bool r26501 = r26499 <= r26500;
        float r26502 = r26467 / r26475;
        float r26503 = r26502 / r26469;
        float r26504 = r26503 * r26480;
        float r26505 = r26504 - r26472;
        float r26506 = r26472 + r26504;
        float r26507 = r26505 * r26506;
        float r26508 = sqrt(r26507);
        float r26509 = r26508 + r26504;
        float r26510 = 3;
        float r26511 = pow(r26509, r26510);
        float r26512 = cbrt(r26511);
        float r26513 = r26471 * r26512;
        float r26514 = 1.577362573364769e+100;
        bool r26515 = r26499 <= r26514;
        float r26516 = 0;
        float r26517 = r26515 ? r26499 : r26516;
        float r26518 = r26501 ? r26513 : r26517;
        return r26518;
}

double f_od(double c0, double w, double h, double D, double d, double M) {
        double r26519 = c0;
        double r26520 = 2;
        double r26521 = w;
        double r26522 = r26520 * r26521;
        double r26523 = r26519 / r26522;
        double r26524 = M;
        double r26525 = fabs(r26524);
        double r26526 = r26519 / r26521;
        double r26527 = h;
        double r26528 = r26526 / r26527;
        double r26529 = d;
        double r26530 = D;
        double r26531 = r26529 / r26530;
        double r26532 = r26531 * r26531;
        double r26533 = r26528 * r26532;
        double r26534 = r26533 + r26524;
        double r26535 = r26533 - r26524;
        double r26536 = r26534 * r26535;
        double r26537 = sqrt(r26536);
        double r26538 = r26533 - r26537;
        double r26539 = cbrt(r26538);
        double r26540 = r26525 / r26539;
        double r26541 = r26540 / r26539;
        double r26542 = r26532 * r26528;
        double r26543 = r26542 * r26542;
        double r26544 = r26524 * r26524;
        double r26545 = r26543 - r26544;
        double r26546 = sqrt(r26545);
        double r26547 = r26542 - r26546;
        double r26548 = cbrt(r26547);
        double r26549 = r26525 / r26548;
        double r26550 = r26541 * r26549;
        double r26551 = r26523 * r26550;
        double r26552 = -1.6861670325317465e+55;
        bool r26553 = r26551 <= r26552;
        double r26554 = r26519 / r26527;
        double r26555 = r26554 / r26521;
        double r26556 = r26555 * r26532;
        double r26557 = r26556 - r26524;
        double r26558 = r26524 + r26556;
        double r26559 = r26557 * r26558;
        double r26560 = sqrt(r26559);
        double r26561 = r26560 + r26556;
        double r26562 = 3;
        double r26563 = pow(r26561, r26562);
        double r26564 = cbrt(r26563);
        double r26565 = r26523 * r26564;
        double r26566 = 1.577362573364769e+100;
        bool r26567 = r26551 <= r26566;
        double r26568 = 0;
        double r26569 = r26567 ? r26551 : r26568;
        double r26570 = r26553 ? r26565 : r26569;
        return r26570;
}

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 r26571, r26572, r26573, r26574, r26575, r26576, r26577, r26578, r26579, r26580, r26581, r26582, r26583, r26584, r26585, r26586, r26587, r26588, r26589, r26590, r26591;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(7504);
        mpfr_init(r26571);
        mpfr_init_set_str(r26572, "2", 10, MPFR_RNDN);
        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(r26589);
        mpfr_init(r26590);
        mpfr_init(r26591);
}

double f_im(double c0, double w, double h, double D, double d, double M) {
        mpfr_set_d(r26571, c0, MPFR_RNDN);
        ;
        mpfr_set_d(r26573, w, MPFR_RNDN);
        mpfr_mul(r26574, r26572, r26573, MPFR_RNDN);
        mpfr_div(r26575, r26571, r26574, MPFR_RNDN);
        mpfr_set_d(r26576, d, MPFR_RNDN);
        mpfr_mul(r26577, r26576, r26576, MPFR_RNDN);
        mpfr_mul(r26578, r26571, r26577, MPFR_RNDN);
        mpfr_set_d(r26579, h, MPFR_RNDN);
        mpfr_mul(r26580, r26573, r26579, MPFR_RNDN);
        mpfr_set_d(r26581, D, MPFR_RNDN);
        mpfr_mul(r26582, r26581, r26581, MPFR_RNDN);
        mpfr_mul(r26583, r26580, r26582, MPFR_RNDN);
        mpfr_div(r26584, r26578, r26583, MPFR_RNDN);
        mpfr_mul(r26585, r26584, r26584, MPFR_RNDN);
        mpfr_set_d(r26586, M, MPFR_RNDN);
        mpfr_mul(r26587, r26586, r26586, MPFR_RNDN);
        mpfr_sub(r26588, r26585, r26587, MPFR_RNDN);
        mpfr_sqrt(r26589, r26588, MPFR_RNDN);
        mpfr_add(r26590, r26584, r26589, MPFR_RNDN);
        mpfr_mul(r26591, r26575, r26590, MPFR_RNDN);
        return mpfr_get_d(r26591, MPFR_RNDN);
}

static mpfr_t r26592, r26593, r26594, r26595, r26596, r26597, r26598, r26599, r26600, r26601, r26602, r26603, r26604, r26605, r26606, r26607, r26608, r26609, r26610, r26611, r26612, r26613, r26614, r26615, r26616, r26617, r26618, r26619, r26620, r26621, r26622, r26623, r26624, r26625, r26626, r26627, r26628, r26629, r26630, r26631, r26632, r26633, r26634, r26635, r26636, r26637, r26638, r26639, r26640, r26641, r26642, r26643;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(7504);
        mpfr_init(r26592);
        mpfr_init_set_str(r26593, "2", 10, MPFR_RNDN);
        mpfr_init(r26594);
        mpfr_init(r26595);
        mpfr_init(r26596);
        mpfr_init(r26597);
        mpfr_init(r26598);
        mpfr_init(r26599);
        mpfr_init(r26600);
        mpfr_init(r26601);
        mpfr_init(r26602);
        mpfr_init(r26603);
        mpfr_init(r26604);
        mpfr_init(r26605);
        mpfr_init(r26606);
        mpfr_init(r26607);
        mpfr_init(r26608);
        mpfr_init(r26609);
        mpfr_init(r26610);
        mpfr_init(r26611);
        mpfr_init(r26612);
        mpfr_init(r26613);
        mpfr_init(r26614);
        mpfr_init(r26615);
        mpfr_init(r26616);
        mpfr_init(r26617);
        mpfr_init(r26618);
        mpfr_init(r26619);
        mpfr_init(r26620);
        mpfr_init(r26621);
        mpfr_init(r26622);
        mpfr_init(r26623);
        mpfr_init(r26624);
        mpfr_init_set_str(r26625, "-1.6861670325317465e+55", 10, MPFR_RNDN);
        mpfr_init(r26626);
        mpfr_init(r26627);
        mpfr_init(r26628);
        mpfr_init(r26629);
        mpfr_init(r26630);
        mpfr_init(r26631);
        mpfr_init(r26632);
        mpfr_init(r26633);
        mpfr_init(r26634);
        mpfr_init_set_str(r26635, "3", 10, MPFR_RNDN);
        mpfr_init(r26636);
        mpfr_init(r26637);
        mpfr_init(r26638);
        mpfr_init_set_str(r26639, "1.577362573364769e+100", 10, MPFR_RNDN);
        mpfr_init(r26640);
        mpfr_init_set_str(r26641, "0", 10, MPFR_RNDN);
        mpfr_init(r26642);
        mpfr_init(r26643);
}

double f_fm(double c0, double w, double h, double D, double d, double M) {
        mpfr_set_d(r26592, c0, MPFR_RNDN);
        ;
        mpfr_set_d(r26594, w, MPFR_RNDN);
        mpfr_mul(r26595, r26593, r26594, MPFR_RNDN);
        mpfr_div(r26596, r26592, r26595, MPFR_RNDN);
        mpfr_set_d(r26597, M, MPFR_RNDN);
        mpfr_abs(r26598, r26597, MPFR_RNDN);
        mpfr_div(r26599, r26592, r26594, MPFR_RNDN);
        mpfr_set_d(r26600, h, MPFR_RNDN);
        mpfr_div(r26601, r26599, r26600, MPFR_RNDN);
        mpfr_set_d(r26602, d, MPFR_RNDN);
        mpfr_set_d(r26603, D, MPFR_RNDN);
        mpfr_div(r26604, r26602, r26603, MPFR_RNDN);
        mpfr_mul(r26605, r26604, r26604, MPFR_RNDN);
        mpfr_mul(r26606, r26601, r26605, MPFR_RNDN);
        mpfr_add(r26607, r26606, r26597, MPFR_RNDN);
        mpfr_sub(r26608, r26606, r26597, MPFR_RNDN);
        mpfr_mul(r26609, r26607, r26608, MPFR_RNDN);
        mpfr_sqrt(r26610, r26609, MPFR_RNDN);
        mpfr_sub(r26611, r26606, r26610, MPFR_RNDN);
        mpfr_cbrt(r26612, r26611, MPFR_RNDN);
        mpfr_div(r26613, r26598, r26612, MPFR_RNDN);
        mpfr_div(r26614, r26613, r26612, MPFR_RNDN);
        mpfr_mul(r26615, r26605, r26601, MPFR_RNDN);
        mpfr_mul(r26616, r26615, r26615, MPFR_RNDN);
        mpfr_mul(r26617, r26597, r26597, MPFR_RNDN);
        mpfr_sub(r26618, r26616, r26617, MPFR_RNDN);
        mpfr_sqrt(r26619, r26618, MPFR_RNDN);
        mpfr_sub(r26620, r26615, r26619, MPFR_RNDN);
        mpfr_cbrt(r26621, r26620, MPFR_RNDN);
        mpfr_div(r26622, r26598, r26621, MPFR_RNDN);
        mpfr_mul(r26623, r26614, r26622, MPFR_RNDN);
        mpfr_mul(r26624, r26596, r26623, MPFR_RNDN);
        ;
        mpfr_set_si(r26626, mpfr_cmp(r26624, r26625) <= 0, MPFR_RNDN);
        mpfr_div(r26627, r26592, r26600, MPFR_RNDN);
        mpfr_div(r26628, r26627, r26594, MPFR_RNDN);
        mpfr_mul(r26629, r26628, r26605, MPFR_RNDN);
        mpfr_sub(r26630, r26629, r26597, MPFR_RNDN);
        mpfr_add(r26631, r26597, r26629, MPFR_RNDN);
        mpfr_mul(r26632, r26630, r26631, MPFR_RNDN);
        mpfr_sqrt(r26633, r26632, MPFR_RNDN);
        mpfr_add(r26634, r26633, r26629, MPFR_RNDN);
        ;
        mpfr_pow(r26636, r26634, r26635, MPFR_RNDN);
        mpfr_cbrt(r26637, r26636, MPFR_RNDN);
        mpfr_mul(r26638, r26596, r26637, MPFR_RNDN);
        ;
        mpfr_set_si(r26640, mpfr_cmp(r26624, r26639) <= 0, MPFR_RNDN);
        ;
        if (mpfr_get_si(r26640, MPFR_RNDN)) { mpfr_set(r26642, r26624, MPFR_RNDN); } else { mpfr_set(r26642, r26641, MPFR_RNDN); };
        if (mpfr_get_si(r26626, MPFR_RNDN)) { mpfr_set(r26643, r26638, MPFR_RNDN); } else { mpfr_set(r26643, r26642, MPFR_RNDN); };
        return mpfr_get_d(r26643, MPFR_RNDN);
}

static mpfr_t r26644, r26645, r26646, r26647, r26648, r26649, r26650, r26651, r26652, r26653, r26654, r26655, r26656, r26657, r26658, r26659, r26660, r26661, r26662, r26663, r26664, r26665, r26666, r26667, r26668, r26669, r26670, r26671, r26672, r26673, r26674, r26675, r26676, r26677, r26678, r26679, r26680, r26681, r26682, r26683, r26684, r26685, r26686, r26687, r26688, r26689, r26690, r26691, r26692, r26693, r26694, r26695;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(7504);
        mpfr_init(r26644);
        mpfr_init_set_str(r26645, "2", 10, MPFR_RNDN);
        mpfr_init(r26646);
        mpfr_init(r26647);
        mpfr_init(r26648);
        mpfr_init(r26649);
        mpfr_init(r26650);
        mpfr_init(r26651);
        mpfr_init(r26652);
        mpfr_init(r26653);
        mpfr_init(r26654);
        mpfr_init(r26655);
        mpfr_init(r26656);
        mpfr_init(r26657);
        mpfr_init(r26658);
        mpfr_init(r26659);
        mpfr_init(r26660);
        mpfr_init(r26661);
        mpfr_init(r26662);
        mpfr_init(r26663);
        mpfr_init(r26664);
        mpfr_init(r26665);
        mpfr_init(r26666);
        mpfr_init(r26667);
        mpfr_init(r26668);
        mpfr_init(r26669);
        mpfr_init(r26670);
        mpfr_init(r26671);
        mpfr_init(r26672);
        mpfr_init(r26673);
        mpfr_init(r26674);
        mpfr_init(r26675);
        mpfr_init(r26676);
        mpfr_init_set_str(r26677, "-1.6861670325317465e+55", 10, MPFR_RNDN);
        mpfr_init(r26678);
        mpfr_init(r26679);
        mpfr_init(r26680);
        mpfr_init(r26681);
        mpfr_init(r26682);
        mpfr_init(r26683);
        mpfr_init(r26684);
        mpfr_init(r26685);
        mpfr_init(r26686);
        mpfr_init_set_str(r26687, "3", 10, MPFR_RNDN);
        mpfr_init(r26688);
        mpfr_init(r26689);
        mpfr_init(r26690);
        mpfr_init_set_str(r26691, "1.577362573364769e+100", 10, MPFR_RNDN);
        mpfr_init(r26692);
        mpfr_init_set_str(r26693, "0", 10, MPFR_RNDN);
        mpfr_init(r26694);
        mpfr_init(r26695);
}

double f_dm(double c0, double w, double h, double D, double d, double M) {
        mpfr_set_d(r26644, c0, MPFR_RNDN);
        ;
        mpfr_set_d(r26646, w, MPFR_RNDN);
        mpfr_mul(r26647, r26645, r26646, MPFR_RNDN);
        mpfr_div(r26648, r26644, r26647, MPFR_RNDN);
        mpfr_set_d(r26649, M, MPFR_RNDN);
        mpfr_abs(r26650, r26649, MPFR_RNDN);
        mpfr_div(r26651, r26644, r26646, MPFR_RNDN);
        mpfr_set_d(r26652, h, MPFR_RNDN);
        mpfr_div(r26653, r26651, r26652, MPFR_RNDN);
        mpfr_set_d(r26654, d, MPFR_RNDN);
        mpfr_set_d(r26655, D, MPFR_RNDN);
        mpfr_div(r26656, r26654, r26655, MPFR_RNDN);
        mpfr_mul(r26657, r26656, r26656, MPFR_RNDN);
        mpfr_mul(r26658, r26653, r26657, MPFR_RNDN);
        mpfr_add(r26659, r26658, r26649, MPFR_RNDN);
        mpfr_sub(r26660, r26658, r26649, MPFR_RNDN);
        mpfr_mul(r26661, r26659, r26660, MPFR_RNDN);
        mpfr_sqrt(r26662, r26661, MPFR_RNDN);
        mpfr_sub(r26663, r26658, r26662, MPFR_RNDN);
        mpfr_cbrt(r26664, r26663, MPFR_RNDN);
        mpfr_div(r26665, r26650, r26664, MPFR_RNDN);
        mpfr_div(r26666, r26665, r26664, MPFR_RNDN);
        mpfr_mul(r26667, r26657, r26653, MPFR_RNDN);
        mpfr_mul(r26668, r26667, r26667, MPFR_RNDN);
        mpfr_mul(r26669, r26649, r26649, MPFR_RNDN);
        mpfr_sub(r26670, r26668, r26669, MPFR_RNDN);
        mpfr_sqrt(r26671, r26670, MPFR_RNDN);
        mpfr_sub(r26672, r26667, r26671, MPFR_RNDN);
        mpfr_cbrt(r26673, r26672, MPFR_RNDN);
        mpfr_div(r26674, r26650, r26673, MPFR_RNDN);
        mpfr_mul(r26675, r26666, r26674, MPFR_RNDN);
        mpfr_mul(r26676, r26648, r26675, MPFR_RNDN);
        ;
        mpfr_set_si(r26678, mpfr_cmp(r26676, r26677) <= 0, MPFR_RNDN);
        mpfr_div(r26679, r26644, r26652, MPFR_RNDN);
        mpfr_div(r26680, r26679, r26646, MPFR_RNDN);
        mpfr_mul(r26681, r26680, r26657, MPFR_RNDN);
        mpfr_sub(r26682, r26681, r26649, MPFR_RNDN);
        mpfr_add(r26683, r26649, r26681, MPFR_RNDN);
        mpfr_mul(r26684, r26682, r26683, MPFR_RNDN);
        mpfr_sqrt(r26685, r26684, MPFR_RNDN);
        mpfr_add(r26686, r26685, r26681, MPFR_RNDN);
        ;
        mpfr_pow(r26688, r26686, r26687, MPFR_RNDN);
        mpfr_cbrt(r26689, r26688, MPFR_RNDN);
        mpfr_mul(r26690, r26648, r26689, MPFR_RNDN);
        ;
        mpfr_set_si(r26692, mpfr_cmp(r26676, r26691) <= 0, MPFR_RNDN);
        ;
        if (mpfr_get_si(r26692, MPFR_RNDN)) { mpfr_set(r26694, r26676, MPFR_RNDN); } else { mpfr_set(r26694, r26693, MPFR_RNDN); };
        if (mpfr_get_si(r26678, MPFR_RNDN)) { mpfr_set(r26695, r26690, MPFR_RNDN); } else { mpfr_set(r26695, r26694, MPFR_RNDN); };
        return mpfr_get_d(r26695, MPFR_RNDN);
}

