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

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

double f_if(float d, float h, float l, float M, float D) {
        float r26591 = d;
        float r26592 = h;
        float r26593 = r26591 / r26592;
        float r26594 = 1;
        float r26595 = 2;
        float r26596 = r26594 / r26595;
        float r26597 = pow(r26593, r26596);
        float r26598 = l;
        float r26599 = r26591 / r26598;
        float r26600 = pow(r26599, r26596);
        float r26601 = r26597 * r26600;
        float r26602 = M;
        float r26603 = D;
        float r26604 = r26602 * r26603;
        float r26605 = r26595 * r26591;
        float r26606 = r26604 / r26605;
        float r26607 = pow(r26606, r26595);
        float r26608 = r26596 * r26607;
        float r26609 = r26592 / r26598;
        float r26610 = r26608 * r26609;
        float r26611 = r26594 - r26610;
        float r26612 = r26601 * r26611;
        return r26612;
}

double f_id(double d, double h, double l, double M, double D) {
        double r26613 = d;
        double r26614 = h;
        double r26615 = r26613 / r26614;
        double r26616 = 1;
        double r26617 = 2;
        double r26618 = r26616 / r26617;
        double r26619 = pow(r26615, r26618);
        double r26620 = l;
        double r26621 = r26613 / r26620;
        double r26622 = pow(r26621, r26618);
        double r26623 = r26619 * r26622;
        double r26624 = M;
        double r26625 = D;
        double r26626 = r26624 * r26625;
        double r26627 = r26617 * r26613;
        double r26628 = r26626 / r26627;
        double r26629 = pow(r26628, r26617);
        double r26630 = r26618 * r26629;
        double r26631 = r26614 / r26620;
        double r26632 = r26630 * r26631;
        double r26633 = r26616 - r26632;
        double r26634 = r26623 * r26633;
        return r26634;
}


double f_of(float d, float h, float l, float M, float D) {
        float r26635 = 1;
        float r26636 = h;
        float r26637 = r26635 / r26636;
        float r26638 = 2;
        float r26639 = r26635 / r26638;
        float r26640 = pow(r26637, r26639);
        float r26641 = d;
        float r26642 = pow(r26641, r26639);
        float r26643 = r26640 * r26642;
        float r26644 = l;
        float r26645 = r26641 / r26644;
        float r26646 = pow(r26645, r26639);
        float r26647 = r26643 * r26646;
        float r26648 = M;
        float r26649 = D;
        float r26650 = r26648 * r26649;
        float r26651 = r26641 * r26638;
        float r26652 = r26650 / r26651;
        float r26653 = pow(r26652, r26638);
        float r26654 = r26653 * r26639;
        float r26655 = r26636 / r26644;
        float r26656 = r26654 * r26655;
        float r26657 = r26635 - r26656;
        float r26658 = r26647 * r26657;
        float r26659 = 3.805530156414986e-17;
        bool r26660 = r26658 <= r26659;
        float r26661 = r26641 / r26636;
        float r26662 = pow(r26661, r26639);
        float r26663 = r26635 / r26644;
        float r26664 = pow(r26663, r26639);
        float r26665 = r26664 * r26642;
        float r26666 = r26662 * r26665;
        float r26667 = cbrt(r26656);
        float r26668 = r26667 * r26667;
        float r26669 = r26668 * r26667;
        float r26670 = r26635 - r26669;
        float r26671 = r26666 * r26670;
        float r26672 = 1.9666897595934545e+282;
        bool r26673 = r26658 <= r26672;
        float r26674 = r26662 * r26646;
        float r26675 = r26653 * r26636;
        float r26676 = r26644 * r26638;
        float r26677 = r26675 / r26676;
        float r26678 = r26635 - r26677;
        float r26679 = r26674 * r26678;
        float r26680 = r26673 ? r26658 : r26679;
        float r26681 = r26660 ? r26671 : r26680;
        return r26681;
}

double f_od(double d, double h, double l, double M, double D) {
        double r26682 = 1;
        double r26683 = h;
        double r26684 = r26682 / r26683;
        double r26685 = 2;
        double r26686 = r26682 / r26685;
        double r26687 = pow(r26684, r26686);
        double r26688 = d;
        double r26689 = pow(r26688, r26686);
        double r26690 = r26687 * r26689;
        double r26691 = l;
        double r26692 = r26688 / r26691;
        double r26693 = pow(r26692, r26686);
        double r26694 = r26690 * r26693;
        double r26695 = M;
        double r26696 = D;
        double r26697 = r26695 * r26696;
        double r26698 = r26688 * r26685;
        double r26699 = r26697 / r26698;
        double r26700 = pow(r26699, r26685);
        double r26701 = r26700 * r26686;
        double r26702 = r26683 / r26691;
        double r26703 = r26701 * r26702;
        double r26704 = r26682 - r26703;
        double r26705 = r26694 * r26704;
        double r26706 = 3.805530156414986e-17;
        bool r26707 = r26705 <= r26706;
        double r26708 = r26688 / r26683;
        double r26709 = pow(r26708, r26686);
        double r26710 = r26682 / r26691;
        double r26711 = pow(r26710, r26686);
        double r26712 = r26711 * r26689;
        double r26713 = r26709 * r26712;
        double r26714 = cbrt(r26703);
        double r26715 = r26714 * r26714;
        double r26716 = r26715 * r26714;
        double r26717 = r26682 - r26716;
        double r26718 = r26713 * r26717;
        double r26719 = 1.9666897595934545e+282;
        bool r26720 = r26705 <= r26719;
        double r26721 = r26709 * r26693;
        double r26722 = r26700 * r26683;
        double r26723 = r26691 * r26685;
        double r26724 = r26722 / r26723;
        double r26725 = r26682 - r26724;
        double r26726 = r26721 * r26725;
        double r26727 = r26720 ? r26705 : r26726;
        double r26728 = r26707 ? r26718 : r26727;
        return r26728;
}

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 r26729, r26730, r26731, r26732, r26733, r26734, r26735, r26736, r26737, r26738, r26739, r26740, r26741, r26742, r26743, r26744, r26745, r26746, r26747, r26748, r26749, r26750;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r26729);
        mpfr_init(r26730);
        mpfr_init(r26731);
        mpfr_init_set_str(r26732, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r26733, "2", 10, MPFR_RNDN);
        mpfr_init(r26734);
        mpfr_init(r26735);
        mpfr_init(r26736);
        mpfr_init(r26737);
        mpfr_init(r26738);
        mpfr_init(r26739);
        mpfr_init(r26740);
        mpfr_init(r26741);
        mpfr_init(r26742);
        mpfr_init(r26743);
        mpfr_init(r26744);
        mpfr_init(r26745);
        mpfr_init(r26746);
        mpfr_init(r26747);
        mpfr_init(r26748);
        mpfr_init(r26749);
        mpfr_init(r26750);
}

double f_im(double d, double h, double l, double M, double D) {
        mpfr_set_d(r26729, d, MPFR_RNDN);
        mpfr_set_d(r26730, h, MPFR_RNDN);
        mpfr_div(r26731, r26729, r26730, MPFR_RNDN);
        ;
        ;
        mpfr_div(r26734, r26732, r26733, MPFR_RNDN);
        mpfr_pow(r26735, r26731, r26734, MPFR_RNDN);
        mpfr_set_d(r26736, l, MPFR_RNDN);
        mpfr_div(r26737, r26729, r26736, MPFR_RNDN);
        mpfr_pow(r26738, r26737, r26734, MPFR_RNDN);
        mpfr_mul(r26739, r26735, r26738, MPFR_RNDN);
        mpfr_set_d(r26740, M, MPFR_RNDN);
        mpfr_set_d(r26741, D, MPFR_RNDN);
        mpfr_mul(r26742, r26740, r26741, MPFR_RNDN);
        mpfr_mul(r26743, r26733, r26729, MPFR_RNDN);
        mpfr_div(r26744, r26742, r26743, MPFR_RNDN);
        mpfr_pow(r26745, r26744, r26733, MPFR_RNDN);
        mpfr_mul(r26746, r26734, r26745, MPFR_RNDN);
        mpfr_div(r26747, r26730, r26736, MPFR_RNDN);
        mpfr_mul(r26748, r26746, r26747, MPFR_RNDN);
        mpfr_sub(r26749, r26732, r26748, MPFR_RNDN);
        mpfr_mul(r26750, r26739, r26749, MPFR_RNDN);
        return mpfr_get_d(r26750, MPFR_RNDN);
}

static mpfr_t r26751, r26752, r26753, r26754, r26755, r26756, r26757, r26758, r26759, r26760, r26761, r26762, r26763, r26764, r26765, r26766, r26767, r26768, r26769, r26770, r26771, r26772, r26773, r26774, r26775, r26776, r26777, r26778, r26779, r26780, r26781, r26782, r26783, r26784, r26785, r26786, r26787, r26788, r26789, r26790, r26791, r26792, r26793, r26794, r26795, r26796, r26797;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r26751, "1", 10, MPFR_RNDN);
        mpfr_init(r26752);
        mpfr_init(r26753);
        mpfr_init_set_str(r26754, "2", 10, MPFR_RNDN);
        mpfr_init(r26755);
        mpfr_init(r26756);
        mpfr_init(r26757);
        mpfr_init(r26758);
        mpfr_init(r26759);
        mpfr_init(r26760);
        mpfr_init(r26761);
        mpfr_init(r26762);
        mpfr_init(r26763);
        mpfr_init(r26764);
        mpfr_init(r26765);
        mpfr_init(r26766);
        mpfr_init(r26767);
        mpfr_init(r26768);
        mpfr_init(r26769);
        mpfr_init(r26770);
        mpfr_init(r26771);
        mpfr_init(r26772);
        mpfr_init(r26773);
        mpfr_init(r26774);
        mpfr_init_set_str(r26775, "3.805530156414986e-17", 10, MPFR_RNDN);
        mpfr_init(r26776);
        mpfr_init(r26777);
        mpfr_init(r26778);
        mpfr_init(r26779);
        mpfr_init(r26780);
        mpfr_init(r26781);
        mpfr_init(r26782);
        mpfr_init(r26783);
        mpfr_init(r26784);
        mpfr_init(r26785);
        mpfr_init(r26786);
        mpfr_init(r26787);
        mpfr_init_set_str(r26788, "1.9666897595934545e+282", 10, MPFR_RNDN);
        mpfr_init(r26789);
        mpfr_init(r26790);
        mpfr_init(r26791);
        mpfr_init(r26792);
        mpfr_init(r26793);
        mpfr_init(r26794);
        mpfr_init(r26795);
        mpfr_init(r26796);
        mpfr_init(r26797);
}

double f_fm(double d, double h, double l, double M, double D) {
        ;
        mpfr_set_d(r26752, h, MPFR_RNDN);
        mpfr_div(r26753, r26751, r26752, MPFR_RNDN);
        ;
        mpfr_div(r26755, r26751, r26754, MPFR_RNDN);
        mpfr_pow(r26756, r26753, r26755, MPFR_RNDN);
        mpfr_set_d(r26757, d, MPFR_RNDN);
        mpfr_pow(r26758, r26757, r26755, MPFR_RNDN);
        mpfr_mul(r26759, r26756, r26758, MPFR_RNDN);
        mpfr_set_d(r26760, l, MPFR_RNDN);
        mpfr_div(r26761, r26757, r26760, MPFR_RNDN);
        mpfr_pow(r26762, r26761, r26755, MPFR_RNDN);
        mpfr_mul(r26763, r26759, r26762, MPFR_RNDN);
        mpfr_set_d(r26764, M, MPFR_RNDN);
        mpfr_set_d(r26765, D, MPFR_RNDN);
        mpfr_mul(r26766, r26764, r26765, MPFR_RNDN);
        mpfr_mul(r26767, r26757, r26754, MPFR_RNDN);
        mpfr_div(r26768, r26766, r26767, MPFR_RNDN);
        mpfr_pow(r26769, r26768, r26754, MPFR_RNDN);
        mpfr_mul(r26770, r26769, r26755, MPFR_RNDN);
        mpfr_div(r26771, r26752, r26760, MPFR_RNDN);
        mpfr_mul(r26772, r26770, r26771, MPFR_RNDN);
        mpfr_sub(r26773, r26751, r26772, MPFR_RNDN);
        mpfr_mul(r26774, r26763, r26773, MPFR_RNDN);
        ;
        mpfr_set_si(r26776, mpfr_cmp(r26774, r26775) <= 0, MPFR_RNDN);
        mpfr_div(r26777, r26757, r26752, MPFR_RNDN);
        mpfr_pow(r26778, r26777, r26755, MPFR_RNDN);
        mpfr_div(r26779, r26751, r26760, MPFR_RNDN);
        mpfr_pow(r26780, r26779, r26755, MPFR_RNDN);
        mpfr_mul(r26781, r26780, r26758, MPFR_RNDN);
        mpfr_mul(r26782, r26778, r26781, MPFR_RNDN);
        mpfr_cbrt(r26783, r26772, MPFR_RNDN);
        mpfr_mul(r26784, r26783, r26783, MPFR_RNDN);
        mpfr_mul(r26785, r26784, r26783, MPFR_RNDN);
        mpfr_sub(r26786, r26751, r26785, MPFR_RNDN);
        mpfr_mul(r26787, r26782, r26786, MPFR_RNDN);
        ;
        mpfr_set_si(r26789, mpfr_cmp(r26774, r26788) <= 0, MPFR_RNDN);
        mpfr_mul(r26790, r26778, r26762, MPFR_RNDN);
        mpfr_mul(r26791, r26769, r26752, MPFR_RNDN);
        mpfr_mul(r26792, r26760, r26754, MPFR_RNDN);
        mpfr_div(r26793, r26791, r26792, MPFR_RNDN);
        mpfr_sub(r26794, r26751, r26793, MPFR_RNDN);
        mpfr_mul(r26795, r26790, r26794, MPFR_RNDN);
        if (mpfr_get_si(r26789, MPFR_RNDN)) { mpfr_set(r26796, r26774, MPFR_RNDN); } else { mpfr_set(r26796, r26795, MPFR_RNDN); };
        if (mpfr_get_si(r26776, MPFR_RNDN)) { mpfr_set(r26797, r26787, MPFR_RNDN); } else { mpfr_set(r26797, r26796, MPFR_RNDN); };
        return mpfr_get_d(r26797, MPFR_RNDN);
}

static mpfr_t r26798, r26799, r26800, r26801, r26802, r26803, r26804, r26805, r26806, r26807, r26808, r26809, r26810, r26811, r26812, r26813, r26814, r26815, r26816, r26817, r26818, r26819, r26820, r26821, r26822, r26823, r26824, r26825, r26826, r26827, r26828, r26829, r26830, r26831, r26832, r26833, r26834, r26835, r26836, r26837, r26838, r26839, r26840, r26841, r26842, r26843, r26844;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r26798, "1", 10, MPFR_RNDN);
        mpfr_init(r26799);
        mpfr_init(r26800);
        mpfr_init_set_str(r26801, "2", 10, MPFR_RNDN);
        mpfr_init(r26802);
        mpfr_init(r26803);
        mpfr_init(r26804);
        mpfr_init(r26805);
        mpfr_init(r26806);
        mpfr_init(r26807);
        mpfr_init(r26808);
        mpfr_init(r26809);
        mpfr_init(r26810);
        mpfr_init(r26811);
        mpfr_init(r26812);
        mpfr_init(r26813);
        mpfr_init(r26814);
        mpfr_init(r26815);
        mpfr_init(r26816);
        mpfr_init(r26817);
        mpfr_init(r26818);
        mpfr_init(r26819);
        mpfr_init(r26820);
        mpfr_init(r26821);
        mpfr_init_set_str(r26822, "3.805530156414986e-17", 10, MPFR_RNDN);
        mpfr_init(r26823);
        mpfr_init(r26824);
        mpfr_init(r26825);
        mpfr_init(r26826);
        mpfr_init(r26827);
        mpfr_init(r26828);
        mpfr_init(r26829);
        mpfr_init(r26830);
        mpfr_init(r26831);
        mpfr_init(r26832);
        mpfr_init(r26833);
        mpfr_init(r26834);
        mpfr_init_set_str(r26835, "1.9666897595934545e+282", 10, MPFR_RNDN);
        mpfr_init(r26836);
        mpfr_init(r26837);
        mpfr_init(r26838);
        mpfr_init(r26839);
        mpfr_init(r26840);
        mpfr_init(r26841);
        mpfr_init(r26842);
        mpfr_init(r26843);
        mpfr_init(r26844);
}

double f_dm(double d, double h, double l, double M, double D) {
        ;
        mpfr_set_d(r26799, h, MPFR_RNDN);
        mpfr_div(r26800, r26798, r26799, MPFR_RNDN);
        ;
        mpfr_div(r26802, r26798, r26801, MPFR_RNDN);
        mpfr_pow(r26803, r26800, r26802, MPFR_RNDN);
        mpfr_set_d(r26804, d, MPFR_RNDN);
        mpfr_pow(r26805, r26804, r26802, MPFR_RNDN);
        mpfr_mul(r26806, r26803, r26805, MPFR_RNDN);
        mpfr_set_d(r26807, l, MPFR_RNDN);
        mpfr_div(r26808, r26804, r26807, MPFR_RNDN);
        mpfr_pow(r26809, r26808, r26802, MPFR_RNDN);
        mpfr_mul(r26810, r26806, r26809, MPFR_RNDN);
        mpfr_set_d(r26811, M, MPFR_RNDN);
        mpfr_set_d(r26812, D, MPFR_RNDN);
        mpfr_mul(r26813, r26811, r26812, MPFR_RNDN);
        mpfr_mul(r26814, r26804, r26801, MPFR_RNDN);
        mpfr_div(r26815, r26813, r26814, MPFR_RNDN);
        mpfr_pow(r26816, r26815, r26801, MPFR_RNDN);
        mpfr_mul(r26817, r26816, r26802, MPFR_RNDN);
        mpfr_div(r26818, r26799, r26807, MPFR_RNDN);
        mpfr_mul(r26819, r26817, r26818, MPFR_RNDN);
        mpfr_sub(r26820, r26798, r26819, MPFR_RNDN);
        mpfr_mul(r26821, r26810, r26820, MPFR_RNDN);
        ;
        mpfr_set_si(r26823, mpfr_cmp(r26821, r26822) <= 0, MPFR_RNDN);
        mpfr_div(r26824, r26804, r26799, MPFR_RNDN);
        mpfr_pow(r26825, r26824, r26802, MPFR_RNDN);
        mpfr_div(r26826, r26798, r26807, MPFR_RNDN);
        mpfr_pow(r26827, r26826, r26802, MPFR_RNDN);
        mpfr_mul(r26828, r26827, r26805, MPFR_RNDN);
        mpfr_mul(r26829, r26825, r26828, MPFR_RNDN);
        mpfr_cbrt(r26830, r26819, MPFR_RNDN);
        mpfr_mul(r26831, r26830, r26830, MPFR_RNDN);
        mpfr_mul(r26832, r26831, r26830, MPFR_RNDN);
        mpfr_sub(r26833, r26798, r26832, MPFR_RNDN);
        mpfr_mul(r26834, r26829, r26833, MPFR_RNDN);
        ;
        mpfr_set_si(r26836, mpfr_cmp(r26821, r26835) <= 0, MPFR_RNDN);
        mpfr_mul(r26837, r26825, r26809, MPFR_RNDN);
        mpfr_mul(r26838, r26816, r26799, MPFR_RNDN);
        mpfr_mul(r26839, r26807, r26801, MPFR_RNDN);
        mpfr_div(r26840, r26838, r26839, MPFR_RNDN);
        mpfr_sub(r26841, r26798, r26840, MPFR_RNDN);
        mpfr_mul(r26842, r26837, r26841, MPFR_RNDN);
        if (mpfr_get_si(r26836, MPFR_RNDN)) { mpfr_set(r26843, r26821, MPFR_RNDN); } else { mpfr_set(r26843, r26842, MPFR_RNDN); };
        if (mpfr_get_si(r26823, MPFR_RNDN)) { mpfr_set(r26844, r26834, MPFR_RNDN); } else { mpfr_set(r26844, r26843, MPFR_RNDN); };
        return mpfr_get_d(r26844, MPFR_RNDN);
}

