#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 r26622 = c0;
        float r26623 = 2;
        float r26624 = w;
        float r26625 = r26623 * r26624;
        float r26626 = r26622 / r26625;
        float r26627 = d;
        float r26628 = r26627 * r26627;
        float r26629 = r26622 * r26628;
        float r26630 = h;
        float r26631 = r26624 * r26630;
        float r26632 = D;
        float r26633 = r26632 * r26632;
        float r26634 = r26631 * r26633;
        float r26635 = r26629 / r26634;
        float r26636 = r26635 * r26635;
        float r26637 = M;
        float r26638 = r26637 * r26637;
        float r26639 = r26636 - r26638;
        float r26640 = sqrt(r26639);
        float r26641 = r26635 + r26640;
        float r26642 = r26626 * r26641;
        return r26642;
}

double f_id(double c0, double w, double h, double D, double d, double M) {
        double r26643 = c0;
        double r26644 = 2;
        double r26645 = w;
        double r26646 = r26644 * r26645;
        double r26647 = r26643 / r26646;
        double r26648 = d;
        double r26649 = r26648 * r26648;
        double r26650 = r26643 * r26649;
        double r26651 = h;
        double r26652 = r26645 * r26651;
        double r26653 = D;
        double r26654 = r26653 * r26653;
        double r26655 = r26652 * r26654;
        double r26656 = r26650 / r26655;
        double r26657 = r26656 * r26656;
        double r26658 = M;
        double r26659 = r26658 * r26658;
        double r26660 = r26657 - r26659;
        double r26661 = sqrt(r26660);
        double r26662 = r26656 + r26661;
        double r26663 = r26647 * r26662;
        return r26663;
}


double f_of(float c0, float w, float h, float D, float d, float M) {
        float r26664 = c0;
        float r26665 = 2;
        float r26666 = w;
        float r26667 = r26665 * r26666;
        float r26668 = r26664 / r26667;
        float r26669 = M;
        float r26670 = fabs(r26669);
        float r26671 = r26668 * r26670;
        float r26672 = h;
        float r26673 = r26672 * r26666;
        float r26674 = r26664 / r26673;
        float r26675 = d;
        float r26676 = D;
        float r26677 = r26675 / r26676;
        float r26678 = r26677 * r26677;
        float r26679 = r26674 * r26678;
        float r26680 = -r26669;
        float r26681 = r26680 * r26669;
        float r26682 = fma(r26679, r26679, r26681);
        float r26683 = sqrt(r26682);
        float r26684 = r26679 - r26683;
        float r26685 = r26670 / r26684;
        float r26686 = r26671 * r26685;
        float r26687 = -5.6679042446182896e+132;
        bool r26688 = r26686 <= r26687;
        float r26689 = r26664 / r26666;
        float r26690 = r26689 / r26672;
        float r26691 = r26690 * r26678;
        float r26692 = r26669 * r26669;
        float r26693 = -r26692;
        float r26694 = fma(r26691, r26691, r26693);
        float r26695 = sqrt(r26694);
        float r26696 = r26695 + r26691;
        float r26697 = 3;
        float r26698 = pow(r26696, r26697);
        float r26699 = cbrt(r26698);
        float r26700 = r26668 * r26699;
        float r26701 = 1.831128926433072e-66;
        bool r26702 = r26686 <= r26701;
        float r26703 = 0;
        float r26704 = r26702 ? r26686 : r26703;
        float r26705 = r26688 ? r26700 : r26704;
        return r26705;
}

double f_od(double c0, double w, double h, double D, double d, double M) {
        double r26706 = c0;
        double r26707 = 2;
        double r26708 = w;
        double r26709 = r26707 * r26708;
        double r26710 = r26706 / r26709;
        double r26711 = M;
        double r26712 = fabs(r26711);
        double r26713 = r26710 * r26712;
        double r26714 = h;
        double r26715 = r26714 * r26708;
        double r26716 = r26706 / r26715;
        double r26717 = d;
        double r26718 = D;
        double r26719 = r26717 / r26718;
        double r26720 = r26719 * r26719;
        double r26721 = r26716 * r26720;
        double r26722 = -r26711;
        double r26723 = r26722 * r26711;
        double r26724 = fma(r26721, r26721, r26723);
        double r26725 = sqrt(r26724);
        double r26726 = r26721 - r26725;
        double r26727 = r26712 / r26726;
        double r26728 = r26713 * r26727;
        double r26729 = -5.6679042446182896e+132;
        bool r26730 = r26728 <= r26729;
        double r26731 = r26706 / r26708;
        double r26732 = r26731 / r26714;
        double r26733 = r26732 * r26720;
        double r26734 = r26711 * r26711;
        double r26735 = -r26734;
        double r26736 = fma(r26733, r26733, r26735);
        double r26737 = sqrt(r26736);
        double r26738 = r26737 + r26733;
        double r26739 = 3;
        double r26740 = pow(r26738, r26739);
        double r26741 = cbrt(r26740);
        double r26742 = r26710 * r26741;
        double r26743 = 1.831128926433072e-66;
        bool r26744 = r26728 <= r26743;
        double r26745 = 0;
        double r26746 = r26744 ? r26728 : r26745;
        double r26747 = r26730 ? r26742 : r26746;
        return r26747;
}

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 r26748, r26749, r26750, r26751, r26752, r26753, r26754, r26755, r26756, r26757, r26758, r26759, r26760, r26761, r26762, r26763, r26764, r26765, r26766, r26767, r26768;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(6736);
        mpfr_init(r26748);
        mpfr_init_set_str(r26749, "2", 10, MPFR_RNDN);
        mpfr_init(r26750);
        mpfr_init(r26751);
        mpfr_init(r26752);
        mpfr_init(r26753);
        mpfr_init(r26754);
        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);
}

double f_im(double c0, double w, double h, double D, double d, double M) {
        mpfr_set_d(r26748, c0, MPFR_RNDN);
        ;
        mpfr_set_d(r26750, w, MPFR_RNDN);
        mpfr_mul(r26751, r26749, r26750, MPFR_RNDN);
        mpfr_div(r26752, r26748, r26751, MPFR_RNDN);
        mpfr_set_d(r26753, d, MPFR_RNDN);
        mpfr_mul(r26754, r26753, r26753, MPFR_RNDN);
        mpfr_mul(r26755, r26748, r26754, MPFR_RNDN);
        mpfr_set_d(r26756, h, MPFR_RNDN);
        mpfr_mul(r26757, r26750, r26756, MPFR_RNDN);
        mpfr_set_d(r26758, D, MPFR_RNDN);
        mpfr_mul(r26759, r26758, r26758, MPFR_RNDN);
        mpfr_mul(r26760, r26757, r26759, MPFR_RNDN);
        mpfr_div(r26761, r26755, r26760, MPFR_RNDN);
        mpfr_mul(r26762, r26761, r26761, MPFR_RNDN);
        mpfr_set_d(r26763, M, MPFR_RNDN);
        mpfr_mul(r26764, r26763, r26763, MPFR_RNDN);
        mpfr_sub(r26765, r26762, r26764, MPFR_RNDN);
        mpfr_sqrt(r26766, r26765, MPFR_RNDN);
        mpfr_add(r26767, r26761, r26766, MPFR_RNDN);
        mpfr_mul(r26768, r26752, r26767, MPFR_RNDN);
        return mpfr_get_d(r26768, MPFR_RNDN);
}

static mpfr_t 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, r26798, r26799, r26800, r26801, r26802, r26803, r26804, r26805, r26806, r26807, r26808, r26809, r26810;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(6736);
        mpfr_init(r26769);
        mpfr_init_set_str(r26770, "2", 10, MPFR_RNDN);
        mpfr_init(r26771);
        mpfr_init(r26772);
        mpfr_init(r26773);
        mpfr_init(r26774);
        mpfr_init(r26775);
        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(r26788);
        mpfr_init(r26789);
        mpfr_init(r26790);
        mpfr_init(r26791);
        mpfr_init_set_str(r26792, "-5.6679042446182896e+132", 10, MPFR_RNDN);
        mpfr_init(r26793);
        mpfr_init(r26794);
        mpfr_init(r26795);
        mpfr_init(r26796);
        mpfr_init(r26797);
        mpfr_init(r26798);
        mpfr_init(r26799);
        mpfr_init(r26800);
        mpfr_init(r26801);
        mpfr_init_set_str(r26802, "3", 10, MPFR_RNDN);
        mpfr_init(r26803);
        mpfr_init(r26804);
        mpfr_init(r26805);
        mpfr_init_set_str(r26806, "1.831128926433072e-66", 10, MPFR_RNDN);
        mpfr_init(r26807);
        mpfr_init_set_str(r26808, "0", 10, MPFR_RNDN);
        mpfr_init(r26809);
        mpfr_init(r26810);
}

double f_fm(double c0, double w, double h, double D, double d, double M) {
        mpfr_set_d(r26769, c0, MPFR_RNDN);
        ;
        mpfr_set_d(r26771, w, MPFR_RNDN);
        mpfr_mul(r26772, r26770, r26771, MPFR_RNDN);
        mpfr_div(r26773, r26769, r26772, MPFR_RNDN);
        mpfr_set_d(r26774, M, MPFR_RNDN);
        mpfr_abs(r26775, r26774, MPFR_RNDN);
        mpfr_mul(r26776, r26773, r26775, MPFR_RNDN);
        mpfr_set_d(r26777, h, MPFR_RNDN);
        mpfr_mul(r26778, r26777, r26771, MPFR_RNDN);
        mpfr_div(r26779, r26769, r26778, MPFR_RNDN);
        mpfr_set_d(r26780, d, MPFR_RNDN);
        mpfr_set_d(r26781, D, MPFR_RNDN);
        mpfr_div(r26782, r26780, r26781, MPFR_RNDN);
        mpfr_mul(r26783, r26782, r26782, MPFR_RNDN);
        mpfr_mul(r26784, r26779, r26783, MPFR_RNDN);
        mpfr_neg(r26785, r26774, MPFR_RNDN);
        mpfr_mul(r26786, r26785, r26774, MPFR_RNDN);
        mpfr_fma(r26787, r26784, r26784, r26786, MPFR_RNDN);
        mpfr_sqrt(r26788, r26787, MPFR_RNDN);
        mpfr_sub(r26789, r26784, r26788, MPFR_RNDN);
        mpfr_div(r26790, r26775, r26789, MPFR_RNDN);
        mpfr_mul(r26791, r26776, r26790, MPFR_RNDN);
        ;
        mpfr_set_si(r26793, mpfr_cmp(r26791, r26792) <= 0, MPFR_RNDN);
        mpfr_div(r26794, r26769, r26771, MPFR_RNDN);
        mpfr_div(r26795, r26794, r26777, MPFR_RNDN);
        mpfr_mul(r26796, r26795, r26783, MPFR_RNDN);
        mpfr_mul(r26797, r26774, r26774, MPFR_RNDN);
        mpfr_neg(r26798, r26797, MPFR_RNDN);
        mpfr_fma(r26799, r26796, r26796, r26798, MPFR_RNDN);
        mpfr_sqrt(r26800, r26799, MPFR_RNDN);
        mpfr_add(r26801, r26800, r26796, MPFR_RNDN);
        ;
        mpfr_pow(r26803, r26801, r26802, MPFR_RNDN);
        mpfr_cbrt(r26804, r26803, MPFR_RNDN);
        mpfr_mul(r26805, r26773, r26804, MPFR_RNDN);
        ;
        mpfr_set_si(r26807, mpfr_cmp(r26791, r26806) <= 0, MPFR_RNDN);
        ;
        if (mpfr_get_si(r26807, MPFR_RNDN)) { mpfr_set(r26809, r26791, MPFR_RNDN); } else { mpfr_set(r26809, r26808, MPFR_RNDN); };
        if (mpfr_get_si(r26793, MPFR_RNDN)) { mpfr_set(r26810, r26805, MPFR_RNDN); } else { mpfr_set(r26810, r26809, MPFR_RNDN); };
        return mpfr_get_d(r26810, MPFR_RNDN);
}

static mpfr_t 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, r26845, r26846, r26847, r26848, r26849, r26850, r26851, r26852;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(6736);
        mpfr_init(r26811);
        mpfr_init_set_str(r26812, "2", 10, MPFR_RNDN);
        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(r26822);
        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_set_str(r26834, "-5.6679042446182896e+132", 10, MPFR_RNDN);
        mpfr_init(r26835);
        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_set_str(r26844, "3", 10, MPFR_RNDN);
        mpfr_init(r26845);
        mpfr_init(r26846);
        mpfr_init(r26847);
        mpfr_init_set_str(r26848, "1.831128926433072e-66", 10, MPFR_RNDN);
        mpfr_init(r26849);
        mpfr_init_set_str(r26850, "0", 10, MPFR_RNDN);
        mpfr_init(r26851);
        mpfr_init(r26852);
}

double f_dm(double c0, double w, double h, double D, double d, double M) {
        mpfr_set_d(r26811, c0, MPFR_RNDN);
        ;
        mpfr_set_d(r26813, w, MPFR_RNDN);
        mpfr_mul(r26814, r26812, r26813, MPFR_RNDN);
        mpfr_div(r26815, r26811, r26814, MPFR_RNDN);
        mpfr_set_d(r26816, M, MPFR_RNDN);
        mpfr_abs(r26817, r26816, MPFR_RNDN);
        mpfr_mul(r26818, r26815, r26817, MPFR_RNDN);
        mpfr_set_d(r26819, h, MPFR_RNDN);
        mpfr_mul(r26820, r26819, r26813, MPFR_RNDN);
        mpfr_div(r26821, r26811, r26820, MPFR_RNDN);
        mpfr_set_d(r26822, d, MPFR_RNDN);
        mpfr_set_d(r26823, D, MPFR_RNDN);
        mpfr_div(r26824, r26822, r26823, MPFR_RNDN);
        mpfr_mul(r26825, r26824, r26824, MPFR_RNDN);
        mpfr_mul(r26826, r26821, r26825, MPFR_RNDN);
        mpfr_neg(r26827, r26816, MPFR_RNDN);
        mpfr_mul(r26828, r26827, r26816, MPFR_RNDN);
        mpfr_fma(r26829, r26826, r26826, r26828, MPFR_RNDN);
        mpfr_sqrt(r26830, r26829, MPFR_RNDN);
        mpfr_sub(r26831, r26826, r26830, MPFR_RNDN);
        mpfr_div(r26832, r26817, r26831, MPFR_RNDN);
        mpfr_mul(r26833, r26818, r26832, MPFR_RNDN);
        ;
        mpfr_set_si(r26835, mpfr_cmp(r26833, r26834) <= 0, MPFR_RNDN);
        mpfr_div(r26836, r26811, r26813, MPFR_RNDN);
        mpfr_div(r26837, r26836, r26819, MPFR_RNDN);
        mpfr_mul(r26838, r26837, r26825, MPFR_RNDN);
        mpfr_mul(r26839, r26816, r26816, MPFR_RNDN);
        mpfr_neg(r26840, r26839, MPFR_RNDN);
        mpfr_fma(r26841, r26838, r26838, r26840, MPFR_RNDN);
        mpfr_sqrt(r26842, r26841, MPFR_RNDN);
        mpfr_add(r26843, r26842, r26838, MPFR_RNDN);
        ;
        mpfr_pow(r26845, r26843, r26844, MPFR_RNDN);
        mpfr_cbrt(r26846, r26845, MPFR_RNDN);
        mpfr_mul(r26847, r26815, r26846, MPFR_RNDN);
        ;
        mpfr_set_si(r26849, mpfr_cmp(r26833, r26848) <= 0, MPFR_RNDN);
        ;
        if (mpfr_get_si(r26849, MPFR_RNDN)) { mpfr_set(r26851, r26833, MPFR_RNDN); } else { mpfr_set(r26851, r26850, MPFR_RNDN); };
        if (mpfr_get_si(r26835, MPFR_RNDN)) { mpfr_set(r26852, r26847, MPFR_RNDN); } else { mpfr_set(r26852, r26851, MPFR_RNDN); };
        return mpfr_get_d(r26852, MPFR_RNDN);
}

