#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 r26453 = c0;
        float r26454 = 2;
        float r26455 = w;
        float r26456 = r26454 * r26455;
        float r26457 = r26453 / r26456;
        float r26458 = d;
        float r26459 = r26458 * r26458;
        float r26460 = r26453 * r26459;
        float r26461 = h;
        float r26462 = r26455 * r26461;
        float r26463 = D;
        float r26464 = r26463 * r26463;
        float r26465 = r26462 * r26464;
        float r26466 = r26460 / r26465;
        float r26467 = r26466 * r26466;
        float r26468 = M;
        float r26469 = r26468 * r26468;
        float r26470 = r26467 - r26469;
        float r26471 = sqrt(r26470);
        float r26472 = r26466 + r26471;
        float r26473 = r26457 * r26472;
        return r26473;
}

double f_id(double c0, double w, double h, double D, double d, double M) {
        double r26474 = c0;
        double r26475 = 2;
        double r26476 = w;
        double r26477 = r26475 * r26476;
        double r26478 = r26474 / r26477;
        double r26479 = d;
        double r26480 = r26479 * r26479;
        double r26481 = r26474 * r26480;
        double r26482 = h;
        double r26483 = r26476 * r26482;
        double r26484 = D;
        double r26485 = r26484 * r26484;
        double r26486 = r26483 * r26485;
        double r26487 = r26481 / r26486;
        double r26488 = r26487 * r26487;
        double r26489 = M;
        double r26490 = r26489 * r26489;
        double r26491 = r26488 - r26490;
        double r26492 = sqrt(r26491);
        double r26493 = r26487 + r26492;
        double r26494 = r26478 * r26493;
        return r26494;
}


double f_of(float c0, float w, float h, float D, float d, float M) {
        float r26495 = c0;
        float r26496 = w;
        float r26497 = 2;
        float r26498 = r26496 * r26497;
        float r26499 = r26495 / r26498;
        float r26500 = r26495 / r26496;
        float r26501 = h;
        float r26502 = r26500 / r26501;
        float r26503 = d;
        float r26504 = D;
        float r26505 = r26503 / r26504;
        float r26506 = r26505 * r26505;
        float r26507 = r26502 * r26506;
        float r26508 = M;
        float r26509 = -r26508;
        float r26510 = r26509 * r26508;
        float r26511 = fma(r26507, r26507, r26510);
        float r26512 = sqrt(r26511);
        float r26513 = r26512 + r26507;
        float r26514 = 3;
        float r26515 = pow(r26513, r26514);
        float r26516 = cbrt(r26515);
        float r26517 = r26499 * r26516;
        float r26518 = -1.9485528268377068e-296;
        bool r26519 = r26517 <= r26518;
        float r26520 = r26495 / r26501;
        float r26521 = r26520 / r26496;
        float r26522 = r26506 * r26521;
        float r26523 = fma(r26522, r26522, r26510);
        float r26524 = sqrt(r26523);
        float r26525 = r26524 + r26522;
        float r26526 = r26508 * r26508;
        float r26527 = r26526 / r26526;
        float r26528 = r26499 / r26527;
        float r26529 = r26525 * r26528;
        float r26530 = 3.7190238443128017e-175;
        bool r26531 = r26517 <= r26530;
        float r26532 = r26508 / r26497;
        float r26533 = r26508 / r26496;
        float r26534 = r26495 * r26533;
        float r26535 = r26532 * r26534;
        float r26536 = r26522 - r26524;
        float r26537 = r26535 / r26536;
        float r26538 = 2.1713081461851746e+237;
        bool r26539 = r26517 <= r26538;
        float r26540 = 0;
        float r26541 = r26539 ? r26517 : r26540;
        float r26542 = r26531 ? r26537 : r26541;
        float r26543 = r26519 ? r26529 : r26542;
        return r26543;
}

double f_od(double c0, double w, double h, double D, double d, double M) {
        double r26544 = c0;
        double r26545 = w;
        double r26546 = 2;
        double r26547 = r26545 * r26546;
        double r26548 = r26544 / r26547;
        double r26549 = r26544 / r26545;
        double r26550 = h;
        double r26551 = r26549 / r26550;
        double r26552 = d;
        double r26553 = D;
        double r26554 = r26552 / r26553;
        double r26555 = r26554 * r26554;
        double r26556 = r26551 * r26555;
        double r26557 = M;
        double r26558 = -r26557;
        double r26559 = r26558 * r26557;
        double r26560 = fma(r26556, r26556, r26559);
        double r26561 = sqrt(r26560);
        double r26562 = r26561 + r26556;
        double r26563 = 3;
        double r26564 = pow(r26562, r26563);
        double r26565 = cbrt(r26564);
        double r26566 = r26548 * r26565;
        double r26567 = -1.9485528268377068e-296;
        bool r26568 = r26566 <= r26567;
        double r26569 = r26544 / r26550;
        double r26570 = r26569 / r26545;
        double r26571 = r26555 * r26570;
        double r26572 = fma(r26571, r26571, r26559);
        double r26573 = sqrt(r26572);
        double r26574 = r26573 + r26571;
        double r26575 = r26557 * r26557;
        double r26576 = r26575 / r26575;
        double r26577 = r26548 / r26576;
        double r26578 = r26574 * r26577;
        double r26579 = 3.7190238443128017e-175;
        bool r26580 = r26566 <= r26579;
        double r26581 = r26557 / r26546;
        double r26582 = r26557 / r26545;
        double r26583 = r26544 * r26582;
        double r26584 = r26581 * r26583;
        double r26585 = r26571 - r26573;
        double r26586 = r26584 / r26585;
        double r26587 = 2.1713081461851746e+237;
        bool r26588 = r26566 <= r26587;
        double r26589 = 0;
        double r26590 = r26588 ? r26566 : r26589;
        double r26591 = r26580 ? r26586 : r26590;
        double r26592 = r26568 ? r26578 : r26591;
        return r26592;
}

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 r26593, r26594, r26595, r26596, r26597, r26598, r26599, r26600, r26601, r26602, r26603, r26604, r26605, r26606, r26607, r26608, r26609, r26610, r26611, r26612, r26613;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(7504);
        mpfr_init(r26593);
        mpfr_init_set_str(r26594, "2", 10, MPFR_RNDN);
        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);
}

double f_im(double c0, double w, double h, double D, double d, double M) {
        mpfr_set_d(r26593, c0, MPFR_RNDN);
        ;
        mpfr_set_d(r26595, w, MPFR_RNDN);
        mpfr_mul(r26596, r26594, r26595, MPFR_RNDN);
        mpfr_div(r26597, r26593, r26596, MPFR_RNDN);
        mpfr_set_d(r26598, d, MPFR_RNDN);
        mpfr_mul(r26599, r26598, r26598, MPFR_RNDN);
        mpfr_mul(r26600, r26593, r26599, MPFR_RNDN);
        mpfr_set_d(r26601, h, MPFR_RNDN);
        mpfr_mul(r26602, r26595, r26601, MPFR_RNDN);
        mpfr_set_d(r26603, D, MPFR_RNDN);
        mpfr_mul(r26604, r26603, r26603, MPFR_RNDN);
        mpfr_mul(r26605, r26602, r26604, MPFR_RNDN);
        mpfr_div(r26606, r26600, r26605, MPFR_RNDN);
        mpfr_mul(r26607, r26606, r26606, MPFR_RNDN);
        mpfr_set_d(r26608, M, MPFR_RNDN);
        mpfr_mul(r26609, r26608, r26608, MPFR_RNDN);
        mpfr_sub(r26610, r26607, r26609, MPFR_RNDN);
        mpfr_sqrt(r26611, r26610, MPFR_RNDN);
        mpfr_add(r26612, r26606, r26611, MPFR_RNDN);
        mpfr_mul(r26613, r26597, r26612, MPFR_RNDN);
        return mpfr_get_d(r26613, MPFR_RNDN);
}

static mpfr_t 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, r26644, r26645, r26646, r26647, r26648, r26649, r26650, r26651, r26652, r26653, r26654, r26655, r26656, r26657, r26658, r26659, r26660, r26661, r26662;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(7504);
        mpfr_init(r26614);
        mpfr_init(r26615);
        mpfr_init_set_str(r26616, "2", 10, MPFR_RNDN);
        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(r26625);
        mpfr_init(r26626);
        mpfr_init(r26627);
        mpfr_init(r26628);
        mpfr_init(r26629);
        mpfr_init(r26630);
        mpfr_init(r26631);
        mpfr_init(r26632);
        mpfr_init_set_str(r26633, "3", 10, MPFR_RNDN);
        mpfr_init(r26634);
        mpfr_init(r26635);
        mpfr_init(r26636);
        mpfr_init_set_str(r26637, "-1.9485528268377068e-296", 10, MPFR_RNDN);
        mpfr_init(r26638);
        mpfr_init(r26639);
        mpfr_init(r26640);
        mpfr_init(r26641);
        mpfr_init(r26642);
        mpfr_init(r26643);
        mpfr_init(r26644);
        mpfr_init(r26645);
        mpfr_init(r26646);
        mpfr_init(r26647);
        mpfr_init(r26648);
        mpfr_init_set_str(r26649, "3.7190238443128017e-175", 10, MPFR_RNDN);
        mpfr_init(r26650);
        mpfr_init(r26651);
        mpfr_init(r26652);
        mpfr_init(r26653);
        mpfr_init(r26654);
        mpfr_init(r26655);
        mpfr_init(r26656);
        mpfr_init_set_str(r26657, "2.1713081461851746e+237", 10, MPFR_RNDN);
        mpfr_init(r26658);
        mpfr_init_set_str(r26659, "0", 10, MPFR_RNDN);
        mpfr_init(r26660);
        mpfr_init(r26661);
        mpfr_init(r26662);
}

double f_fm(double c0, double w, double h, double D, double d, double M) {
        mpfr_set_d(r26614, c0, MPFR_RNDN);
        mpfr_set_d(r26615, w, MPFR_RNDN);
        ;
        mpfr_mul(r26617, r26615, r26616, MPFR_RNDN);
        mpfr_div(r26618, r26614, r26617, MPFR_RNDN);
        mpfr_div(r26619, r26614, r26615, MPFR_RNDN);
        mpfr_set_d(r26620, h, MPFR_RNDN);
        mpfr_div(r26621, r26619, r26620, MPFR_RNDN);
        mpfr_set_d(r26622, d, MPFR_RNDN);
        mpfr_set_d(r26623, D, MPFR_RNDN);
        mpfr_div(r26624, r26622, r26623, MPFR_RNDN);
        mpfr_mul(r26625, r26624, r26624, MPFR_RNDN);
        mpfr_mul(r26626, r26621, r26625, MPFR_RNDN);
        mpfr_set_d(r26627, M, MPFR_RNDN);
        mpfr_neg(r26628, r26627, MPFR_RNDN);
        mpfr_mul(r26629, r26628, r26627, MPFR_RNDN);
        mpfr_fma(r26630, r26626, r26626, r26629, MPFR_RNDN);
        mpfr_sqrt(r26631, r26630, MPFR_RNDN);
        mpfr_add(r26632, r26631, r26626, MPFR_RNDN);
        ;
        mpfr_pow(r26634, r26632, r26633, MPFR_RNDN);
        mpfr_cbrt(r26635, r26634, MPFR_RNDN);
        mpfr_mul(r26636, r26618, r26635, MPFR_RNDN);
        ;
        mpfr_set_si(r26638, mpfr_cmp(r26636, r26637) <= 0, MPFR_RNDN);
        mpfr_div(r26639, r26614, r26620, MPFR_RNDN);
        mpfr_div(r26640, r26639, r26615, MPFR_RNDN);
        mpfr_mul(r26641, r26625, r26640, MPFR_RNDN);
        mpfr_fma(r26642, r26641, r26641, r26629, MPFR_RNDN);
        mpfr_sqrt(r26643, r26642, MPFR_RNDN);
        mpfr_add(r26644, r26643, r26641, MPFR_RNDN);
        mpfr_mul(r26645, r26627, r26627, MPFR_RNDN);
        mpfr_div(r26646, r26645, r26645, MPFR_RNDN);
        mpfr_div(r26647, r26618, r26646, MPFR_RNDN);
        mpfr_mul(r26648, r26644, r26647, MPFR_RNDN);
        ;
        mpfr_set_si(r26650, mpfr_cmp(r26636, r26649) <= 0, MPFR_RNDN);
        mpfr_div(r26651, r26627, r26616, MPFR_RNDN);
        mpfr_div(r26652, r26627, r26615, MPFR_RNDN);
        mpfr_mul(r26653, r26614, r26652, MPFR_RNDN);
        mpfr_mul(r26654, r26651, r26653, MPFR_RNDN);
        mpfr_sub(r26655, r26641, r26643, MPFR_RNDN);
        mpfr_div(r26656, r26654, r26655, MPFR_RNDN);
        ;
        mpfr_set_si(r26658, mpfr_cmp(r26636, r26657) <= 0, MPFR_RNDN);
        ;
        if (mpfr_get_si(r26658, MPFR_RNDN)) { mpfr_set(r26660, r26636, MPFR_RNDN); } else { mpfr_set(r26660, r26659, MPFR_RNDN); };
        if (mpfr_get_si(r26650, MPFR_RNDN)) { mpfr_set(r26661, r26656, MPFR_RNDN); } else { mpfr_set(r26661, r26660, MPFR_RNDN); };
        if (mpfr_get_si(r26638, MPFR_RNDN)) { mpfr_set(r26662, r26648, MPFR_RNDN); } else { mpfr_set(r26662, r26661, MPFR_RNDN); };
        return mpfr_get_d(r26662, MPFR_RNDN);
}

static mpfr_t 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, r26696, r26697, r26698, r26699, r26700, r26701, r26702, r26703, r26704, r26705, r26706, r26707, r26708, r26709, r26710, r26711;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(7504);
        mpfr_init(r26663);
        mpfr_init(r26664);
        mpfr_init_set_str(r26665, "2", 10, MPFR_RNDN);
        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(r26677);
        mpfr_init(r26678);
        mpfr_init(r26679);
        mpfr_init(r26680);
        mpfr_init(r26681);
        mpfr_init_set_str(r26682, "3", 10, MPFR_RNDN);
        mpfr_init(r26683);
        mpfr_init(r26684);
        mpfr_init(r26685);
        mpfr_init_set_str(r26686, "-1.9485528268377068e-296", 10, MPFR_RNDN);
        mpfr_init(r26687);
        mpfr_init(r26688);
        mpfr_init(r26689);
        mpfr_init(r26690);
        mpfr_init(r26691);
        mpfr_init(r26692);
        mpfr_init(r26693);
        mpfr_init(r26694);
        mpfr_init(r26695);
        mpfr_init(r26696);
        mpfr_init(r26697);
        mpfr_init_set_str(r26698, "3.7190238443128017e-175", 10, MPFR_RNDN);
        mpfr_init(r26699);
        mpfr_init(r26700);
        mpfr_init(r26701);
        mpfr_init(r26702);
        mpfr_init(r26703);
        mpfr_init(r26704);
        mpfr_init(r26705);
        mpfr_init_set_str(r26706, "2.1713081461851746e+237", 10, MPFR_RNDN);
        mpfr_init(r26707);
        mpfr_init_set_str(r26708, "0", 10, MPFR_RNDN);
        mpfr_init(r26709);
        mpfr_init(r26710);
        mpfr_init(r26711);
}

double f_dm(double c0, double w, double h, double D, double d, double M) {
        mpfr_set_d(r26663, c0, MPFR_RNDN);
        mpfr_set_d(r26664, w, MPFR_RNDN);
        ;
        mpfr_mul(r26666, r26664, r26665, MPFR_RNDN);
        mpfr_div(r26667, r26663, r26666, MPFR_RNDN);
        mpfr_div(r26668, r26663, r26664, MPFR_RNDN);
        mpfr_set_d(r26669, h, MPFR_RNDN);
        mpfr_div(r26670, r26668, r26669, MPFR_RNDN);
        mpfr_set_d(r26671, d, MPFR_RNDN);
        mpfr_set_d(r26672, D, MPFR_RNDN);
        mpfr_div(r26673, r26671, r26672, MPFR_RNDN);
        mpfr_mul(r26674, r26673, r26673, MPFR_RNDN);
        mpfr_mul(r26675, r26670, r26674, MPFR_RNDN);
        mpfr_set_d(r26676, M, MPFR_RNDN);
        mpfr_neg(r26677, r26676, MPFR_RNDN);
        mpfr_mul(r26678, r26677, r26676, MPFR_RNDN);
        mpfr_fma(r26679, r26675, r26675, r26678, MPFR_RNDN);
        mpfr_sqrt(r26680, r26679, MPFR_RNDN);
        mpfr_add(r26681, r26680, r26675, MPFR_RNDN);
        ;
        mpfr_pow(r26683, r26681, r26682, MPFR_RNDN);
        mpfr_cbrt(r26684, r26683, MPFR_RNDN);
        mpfr_mul(r26685, r26667, r26684, MPFR_RNDN);
        ;
        mpfr_set_si(r26687, mpfr_cmp(r26685, r26686) <= 0, MPFR_RNDN);
        mpfr_div(r26688, r26663, r26669, MPFR_RNDN);
        mpfr_div(r26689, r26688, r26664, MPFR_RNDN);
        mpfr_mul(r26690, r26674, r26689, MPFR_RNDN);
        mpfr_fma(r26691, r26690, r26690, r26678, MPFR_RNDN);
        mpfr_sqrt(r26692, r26691, MPFR_RNDN);
        mpfr_add(r26693, r26692, r26690, MPFR_RNDN);
        mpfr_mul(r26694, r26676, r26676, MPFR_RNDN);
        mpfr_div(r26695, r26694, r26694, MPFR_RNDN);
        mpfr_div(r26696, r26667, r26695, MPFR_RNDN);
        mpfr_mul(r26697, r26693, r26696, MPFR_RNDN);
        ;
        mpfr_set_si(r26699, mpfr_cmp(r26685, r26698) <= 0, MPFR_RNDN);
        mpfr_div(r26700, r26676, r26665, MPFR_RNDN);
        mpfr_div(r26701, r26676, r26664, MPFR_RNDN);
        mpfr_mul(r26702, r26663, r26701, MPFR_RNDN);
        mpfr_mul(r26703, r26700, r26702, MPFR_RNDN);
        mpfr_sub(r26704, r26690, r26692, MPFR_RNDN);
        mpfr_div(r26705, r26703, r26704, MPFR_RNDN);
        ;
        mpfr_set_si(r26707, mpfr_cmp(r26685, r26706) <= 0, MPFR_RNDN);
        ;
        if (mpfr_get_si(r26707, MPFR_RNDN)) { mpfr_set(r26709, r26685, MPFR_RNDN); } else { mpfr_set(r26709, r26708, MPFR_RNDN); };
        if (mpfr_get_si(r26699, MPFR_RNDN)) { mpfr_set(r26710, r26705, MPFR_RNDN); } else { mpfr_set(r26710, r26709, MPFR_RNDN); };
        if (mpfr_get_si(r26687, MPFR_RNDN)) { mpfr_set(r26711, r26697, MPFR_RNDN); } else { mpfr_set(r26711, r26710, MPFR_RNDN); };
        return mpfr_get_d(r26711, MPFR_RNDN);
}

