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

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

double f_if(float c0, float A, float V, float l) {
        float r30463628 = c0;
        float r30463629 = A;
        float r30463630 = V;
        float r30463631 = l;
        float r30463632 = r30463630 * r30463631;
        float r30463633 = r30463629 / r30463632;
        float r30463634 = sqrt(r30463633);
        float r30463635 = r30463628 * r30463634;
        return r30463635;
}

double f_id(double c0, double A, double V, double l) {
        double r30463636 = c0;
        double r30463637 = A;
        double r30463638 = V;
        double r30463639 = l;
        double r30463640 = r30463638 * r30463639;
        double r30463641 = r30463637 / r30463640;
        double r30463642 = sqrt(r30463641);
        double r30463643 = r30463636 * r30463642;
        return r30463643;
}


double f_of(float c0, float A, float V, float l) {
        float r30463644 = 1;
        float r30463645 = V;
        float r30463646 = l;
        float r30463647 = r30463645 * r30463646;
        float r30463648 = r30463644 / r30463647;
        float r30463649 = -3.4242211174656277e+274;
        bool r30463650 = r30463648 <= r30463649;
        float r30463651 = c0;
        float r30463652 = A;
        float r30463653 = r30463652 / r30463645;
        float r30463654 = sqrt(r30463653);
        float r30463655 = sqrt(r30463646);
        float r30463656 = r30463654 / r30463655;
        float r30463657 = r30463651 * r30463656;
        float r30463658 = -1.463765466628822e-144;
        bool r30463659 = r30463648 <= r30463658;
        float r30463660 = r30463647 / r30463652;
        float r30463661 = r30463644 / r30463660;
        float r30463662 = sqrt(r30463661);
        float r30463663 = r30463651 * r30463662;
        float r30463664 = 0.0;
        bool r30463665 = r30463648 <= r30463664;
        float r30463666 = r30463653 / r30463646;
        float r30463667 = sqrt(r30463666);
        float r30463668 = r30463651 * r30463667;
        float r30463669 = 9.889523785479379e+236;
        bool r30463670 = r30463648 <= r30463669;
        float r30463671 = sqrt(r30463652);
        float r30463672 = sqrt(r30463648);
        float r30463673 = r30463671 * r30463672;
        float r30463674 = r30463651 * r30463673;
        float r30463675 = r30463670 ? r30463674 : r30463668;
        float r30463676 = r30463665 ? r30463668 : r30463675;
        float r30463677 = r30463659 ? r30463663 : r30463676;
        float r30463678 = r30463650 ? r30463657 : r30463677;
        return r30463678;
}

double f_od(double c0, double A, double V, double l) {
        double r30463679 = 1;
        double r30463680 = V;
        double r30463681 = l;
        double r30463682 = r30463680 * r30463681;
        double r30463683 = r30463679 / r30463682;
        double r30463684 = -3.4242211174656277e+274;
        bool r30463685 = r30463683 <= r30463684;
        double r30463686 = c0;
        double r30463687 = A;
        double r30463688 = r30463687 / r30463680;
        double r30463689 = sqrt(r30463688);
        double r30463690 = sqrt(r30463681);
        double r30463691 = r30463689 / r30463690;
        double r30463692 = r30463686 * r30463691;
        double r30463693 = -1.463765466628822e-144;
        bool r30463694 = r30463683 <= r30463693;
        double r30463695 = r30463682 / r30463687;
        double r30463696 = r30463679 / r30463695;
        double r30463697 = sqrt(r30463696);
        double r30463698 = r30463686 * r30463697;
        double r30463699 = 0.0;
        bool r30463700 = r30463683 <= r30463699;
        double r30463701 = r30463688 / r30463681;
        double r30463702 = sqrt(r30463701);
        double r30463703 = r30463686 * r30463702;
        double r30463704 = 9.889523785479379e+236;
        bool r30463705 = r30463683 <= r30463704;
        double r30463706 = sqrt(r30463687);
        double r30463707 = sqrt(r30463683);
        double r30463708 = r30463706 * r30463707;
        double r30463709 = r30463686 * r30463708;
        double r30463710 = r30463705 ? r30463709 : r30463703;
        double r30463711 = r30463700 ? r30463703 : r30463710;
        double r30463712 = r30463694 ? r30463698 : r30463711;
        double r30463713 = r30463685 ? r30463692 : r30463712;
        return r30463713;
}

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 r30463714, r30463715, r30463716, r30463717, r30463718, r30463719, r30463720, r30463721;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init(r30463714);
        mpfr_init(r30463715);
        mpfr_init(r30463716);
        mpfr_init(r30463717);
        mpfr_init(r30463718);
        mpfr_init(r30463719);
        mpfr_init(r30463720);
        mpfr_init(r30463721);
}

double f_im(double c0, double A, double V, double l) {
        mpfr_set_d(r30463714, c0, MPFR_RNDN);
        mpfr_set_d(r30463715, A, MPFR_RNDN);
        mpfr_set_d(r30463716, V, MPFR_RNDN);
        mpfr_set_d(r30463717, l, MPFR_RNDN);
        mpfr_mul(r30463718, r30463716, r30463717, MPFR_RNDN);
        mpfr_div(r30463719, r30463715, r30463718, MPFR_RNDN);
        mpfr_sqrt(r30463720, r30463719, MPFR_RNDN);
        mpfr_mul(r30463721, r30463714, r30463720, MPFR_RNDN);
        return mpfr_get_d(r30463721, MPFR_RNDN);
}

static mpfr_t r30463722, r30463723, r30463724, r30463725, r30463726, r30463727, r30463728, r30463729, r30463730, r30463731, r30463732, r30463733, r30463734, r30463735, r30463736, r30463737, r30463738, r30463739, r30463740, r30463741, r30463742, r30463743, r30463744, r30463745, r30463746, r30463747, r30463748, r30463749, r30463750, r30463751, r30463752, r30463753, r30463754, r30463755, r30463756;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r30463722, "1", 10, MPFR_RNDN);
        mpfr_init(r30463723);
        mpfr_init(r30463724);
        mpfr_init(r30463725);
        mpfr_init(r30463726);
        mpfr_init_set_str(r30463727, "-3.4242211174656277e+274", 10, MPFR_RNDN);
        mpfr_init(r30463728);
        mpfr_init(r30463729);
        mpfr_init(r30463730);
        mpfr_init(r30463731);
        mpfr_init(r30463732);
        mpfr_init(r30463733);
        mpfr_init(r30463734);
        mpfr_init(r30463735);
        mpfr_init_set_str(r30463736, "-1.463765466628822e-144", 10, MPFR_RNDN);
        mpfr_init(r30463737);
        mpfr_init(r30463738);
        mpfr_init(r30463739);
        mpfr_init(r30463740);
        mpfr_init(r30463741);
        mpfr_init_set_str(r30463742, "0.0", 10, MPFR_RNDN);
        mpfr_init(r30463743);
        mpfr_init(r30463744);
        mpfr_init(r30463745);
        mpfr_init(r30463746);
        mpfr_init_set_str(r30463747, "9.889523785479379e+236", 10, MPFR_RNDN);
        mpfr_init(r30463748);
        mpfr_init(r30463749);
        mpfr_init(r30463750);
        mpfr_init(r30463751);
        mpfr_init(r30463752);
        mpfr_init(r30463753);
        mpfr_init(r30463754);
        mpfr_init(r30463755);
        mpfr_init(r30463756);
}

double f_fm(double c0, double A, double V, double l) {
        ;
        mpfr_set_d(r30463723, V, MPFR_RNDN);
        mpfr_set_d(r30463724, l, MPFR_RNDN);
        mpfr_mul(r30463725, r30463723, r30463724, MPFR_RNDN);
        mpfr_div(r30463726, r30463722, r30463725, MPFR_RNDN);
        ;
        mpfr_set_si(r30463728, mpfr_cmp(r30463726, r30463727) <= 0, MPFR_RNDN);
        mpfr_set_d(r30463729, c0, MPFR_RNDN);
        mpfr_set_d(r30463730, A, MPFR_RNDN);
        mpfr_div(r30463731, r30463730, r30463723, MPFR_RNDN);
        mpfr_sqrt(r30463732, r30463731, MPFR_RNDN);
        mpfr_sqrt(r30463733, r30463724, MPFR_RNDN);
        mpfr_div(r30463734, r30463732, r30463733, MPFR_RNDN);
        mpfr_mul(r30463735, r30463729, r30463734, MPFR_RNDN);
        ;
        mpfr_set_si(r30463737, mpfr_cmp(r30463726, r30463736) <= 0, MPFR_RNDN);
        mpfr_div(r30463738, r30463725, r30463730, MPFR_RNDN);
        mpfr_div(r30463739, r30463722, r30463738, MPFR_RNDN);
        mpfr_sqrt(r30463740, r30463739, MPFR_RNDN);
        mpfr_mul(r30463741, r30463729, r30463740, MPFR_RNDN);
        ;
        mpfr_set_si(r30463743, mpfr_cmp(r30463726, r30463742) <= 0, MPFR_RNDN);
        mpfr_div(r30463744, r30463731, r30463724, MPFR_RNDN);
        mpfr_sqrt(r30463745, r30463744, MPFR_RNDN);
        mpfr_mul(r30463746, r30463729, r30463745, MPFR_RNDN);
        ;
        mpfr_set_si(r30463748, mpfr_cmp(r30463726, r30463747) <= 0, MPFR_RNDN);
        mpfr_sqrt(r30463749, r30463730, MPFR_RNDN);
        mpfr_sqrt(r30463750, r30463726, MPFR_RNDN);
        mpfr_mul(r30463751, r30463749, r30463750, MPFR_RNDN);
        mpfr_mul(r30463752, r30463729, r30463751, MPFR_RNDN);
        if (mpfr_get_si(r30463748, MPFR_RNDN)) { mpfr_set(r30463753, r30463752, MPFR_RNDN); } else { mpfr_set(r30463753, r30463746, MPFR_RNDN); };
        if (mpfr_get_si(r30463743, MPFR_RNDN)) { mpfr_set(r30463754, r30463746, MPFR_RNDN); } else { mpfr_set(r30463754, r30463753, MPFR_RNDN); };
        if (mpfr_get_si(r30463737, MPFR_RNDN)) { mpfr_set(r30463755, r30463741, MPFR_RNDN); } else { mpfr_set(r30463755, r30463754, MPFR_RNDN); };
        if (mpfr_get_si(r30463728, MPFR_RNDN)) { mpfr_set(r30463756, r30463735, MPFR_RNDN); } else { mpfr_set(r30463756, r30463755, MPFR_RNDN); };
        return mpfr_get_d(r30463756, MPFR_RNDN);
}

static mpfr_t r30463757, r30463758, r30463759, r30463760, r30463761, r30463762, r30463763, r30463764, r30463765, r30463766, r30463767, r30463768, r30463769, r30463770, r30463771, r30463772, r30463773, r30463774, r30463775, r30463776, r30463777, r30463778, r30463779, r30463780, r30463781, r30463782, r30463783, r30463784, r30463785, r30463786, r30463787, r30463788, r30463789, r30463790, r30463791;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r30463757, "1", 10, MPFR_RNDN);
        mpfr_init(r30463758);
        mpfr_init(r30463759);
        mpfr_init(r30463760);
        mpfr_init(r30463761);
        mpfr_init_set_str(r30463762, "-3.4242211174656277e+274", 10, MPFR_RNDN);
        mpfr_init(r30463763);
        mpfr_init(r30463764);
        mpfr_init(r30463765);
        mpfr_init(r30463766);
        mpfr_init(r30463767);
        mpfr_init(r30463768);
        mpfr_init(r30463769);
        mpfr_init(r30463770);
        mpfr_init_set_str(r30463771, "-1.463765466628822e-144", 10, MPFR_RNDN);
        mpfr_init(r30463772);
        mpfr_init(r30463773);
        mpfr_init(r30463774);
        mpfr_init(r30463775);
        mpfr_init(r30463776);
        mpfr_init_set_str(r30463777, "0.0", 10, MPFR_RNDN);
        mpfr_init(r30463778);
        mpfr_init(r30463779);
        mpfr_init(r30463780);
        mpfr_init(r30463781);
        mpfr_init_set_str(r30463782, "9.889523785479379e+236", 10, MPFR_RNDN);
        mpfr_init(r30463783);
        mpfr_init(r30463784);
        mpfr_init(r30463785);
        mpfr_init(r30463786);
        mpfr_init(r30463787);
        mpfr_init(r30463788);
        mpfr_init(r30463789);
        mpfr_init(r30463790);
        mpfr_init(r30463791);
}

double f_dm(double c0, double A, double V, double l) {
        ;
        mpfr_set_d(r30463758, V, MPFR_RNDN);
        mpfr_set_d(r30463759, l, MPFR_RNDN);
        mpfr_mul(r30463760, r30463758, r30463759, MPFR_RNDN);
        mpfr_div(r30463761, r30463757, r30463760, MPFR_RNDN);
        ;
        mpfr_set_si(r30463763, mpfr_cmp(r30463761, r30463762) <= 0, MPFR_RNDN);
        mpfr_set_d(r30463764, c0, MPFR_RNDN);
        mpfr_set_d(r30463765, A, MPFR_RNDN);
        mpfr_div(r30463766, r30463765, r30463758, MPFR_RNDN);
        mpfr_sqrt(r30463767, r30463766, MPFR_RNDN);
        mpfr_sqrt(r30463768, r30463759, MPFR_RNDN);
        mpfr_div(r30463769, r30463767, r30463768, MPFR_RNDN);
        mpfr_mul(r30463770, r30463764, r30463769, MPFR_RNDN);
        ;
        mpfr_set_si(r30463772, mpfr_cmp(r30463761, r30463771) <= 0, MPFR_RNDN);
        mpfr_div(r30463773, r30463760, r30463765, MPFR_RNDN);
        mpfr_div(r30463774, r30463757, r30463773, MPFR_RNDN);
        mpfr_sqrt(r30463775, r30463774, MPFR_RNDN);
        mpfr_mul(r30463776, r30463764, r30463775, MPFR_RNDN);
        ;
        mpfr_set_si(r30463778, mpfr_cmp(r30463761, r30463777) <= 0, MPFR_RNDN);
        mpfr_div(r30463779, r30463766, r30463759, MPFR_RNDN);
        mpfr_sqrt(r30463780, r30463779, MPFR_RNDN);
        mpfr_mul(r30463781, r30463764, r30463780, MPFR_RNDN);
        ;
        mpfr_set_si(r30463783, mpfr_cmp(r30463761, r30463782) <= 0, MPFR_RNDN);
        mpfr_sqrt(r30463784, r30463765, MPFR_RNDN);
        mpfr_sqrt(r30463785, r30463761, MPFR_RNDN);
        mpfr_mul(r30463786, r30463784, r30463785, MPFR_RNDN);
        mpfr_mul(r30463787, r30463764, r30463786, MPFR_RNDN);
        if (mpfr_get_si(r30463783, MPFR_RNDN)) { mpfr_set(r30463788, r30463787, MPFR_RNDN); } else { mpfr_set(r30463788, r30463781, MPFR_RNDN); };
        if (mpfr_get_si(r30463778, MPFR_RNDN)) { mpfr_set(r30463789, r30463781, MPFR_RNDN); } else { mpfr_set(r30463789, r30463788, MPFR_RNDN); };
        if (mpfr_get_si(r30463772, MPFR_RNDN)) { mpfr_set(r30463790, r30463776, MPFR_RNDN); } else { mpfr_set(r30463790, r30463789, MPFR_RNDN); };
        if (mpfr_get_si(r30463763, MPFR_RNDN)) { mpfr_set(r30463791, r30463770, MPFR_RNDN); } else { mpfr_set(r30463791, r30463790, MPFR_RNDN); };
        return mpfr_get_d(r30463791, MPFR_RNDN);
}

