#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 r9717 = c0;
        float r9718 = A;
        float r9719 = V;
        float r9720 = l;
        float r9721 = r9719 * r9720;
        float r9722 = r9718 / r9721;
        float r9723 = sqrt(r9722);
        float r9724 = r9717 * r9723;
        return r9724;
}

double f_id(double c0, double A, double V, double l) {
        double r9725 = c0;
        double r9726 = A;
        double r9727 = V;
        double r9728 = l;
        double r9729 = r9727 * r9728;
        double r9730 = r9726 / r9729;
        double r9731 = sqrt(r9730);
        double r9732 = r9725 * r9731;
        return r9732;
}


double f_of(float c0, float A, float V, float l) {
        float r9733 = A;
        float r9734 = V;
        float r9735 = r9733 / r9734;
        float r9736 = -1.114378691831571e+295f;
        bool r9737 = r9735 <= r9736;
        float r9738 = c0;
        float r9739 = l;
        float r9740 = r9733 / r9739;
        float r9741 = sqrt(r9740);
        float r9742 = sqrt(r9734);
        float r9743 = r9741 / r9742;
        float r9744 = r9738 * r9743;
        float r9745 = -2.9812881782882438e-288f;
        bool r9746 = r9735 <= r9745;
        float r9747 = 1.0f;
        float r9748 = r9747 / r9739;
        float r9749 = r9748 * r9735;
        float r9750 = sqrt(r9749);
        float r9751 = r9738 * r9750;
        float r9752 = 3.5883047723267483e-298f;
        bool r9753 = r9735 <= r9752;
        float r9754 = r9739 * r9734;
        float r9755 = r9733 / r9754;
        float r9756 = sqrt(r9755);
        float r9757 = r9756 * r9738;
        float r9758 = 3.511639093455415e+256f;
        bool r9759 = r9735 <= r9758;
        float r9760 = sqrt(r9735);
        float r9761 = sqrt(r9739);
        float r9762 = r9760 / r9761;
        float r9763 = r9738 * r9762;
        float r9764 = sqrt(r9733);
        float r9765 = r9738 * r9764;
        float r9766 = sqrt(r9754);
        float r9767 = r9765 / r9766;
        float r9768 = r9759 ? r9763 : r9767;
        float r9769 = r9753 ? r9757 : r9768;
        float r9770 = r9746 ? r9751 : r9769;
        float r9771 = r9737 ? r9744 : r9770;
        return r9771;
}

double f_od(double c0, double A, double V, double l) {
        double r9772 = A;
        double r9773 = V;
        double r9774 = r9772 / r9773;
        double r9775 = -1.114378691831571e+295;
        bool r9776 = r9774 <= r9775;
        double r9777 = c0;
        double r9778 = l;
        double r9779 = r9772 / r9778;
        double r9780 = sqrt(r9779);
        double r9781 = sqrt(r9773);
        double r9782 = r9780 / r9781;
        double r9783 = r9777 * r9782;
        double r9784 = -2.9812881782882438e-288;
        bool r9785 = r9774 <= r9784;
        double r9786 = 1.0;
        double r9787 = r9786 / r9778;
        double r9788 = r9787 * r9774;
        double r9789 = sqrt(r9788);
        double r9790 = r9777 * r9789;
        double r9791 = 3.5883047723267483e-298;
        bool r9792 = r9774 <= r9791;
        double r9793 = r9778 * r9773;
        double r9794 = r9772 / r9793;
        double r9795 = sqrt(r9794);
        double r9796 = r9795 * r9777;
        double r9797 = 3.511639093455415e+256;
        bool r9798 = r9774 <= r9797;
        double r9799 = sqrt(r9774);
        double r9800 = sqrt(r9778);
        double r9801 = r9799 / r9800;
        double r9802 = r9777 * r9801;
        double r9803 = sqrt(r9772);
        double r9804 = r9777 * r9803;
        double r9805 = sqrt(r9793);
        double r9806 = r9804 / r9805;
        double r9807 = r9798 ? r9802 : r9806;
        double r9808 = r9792 ? r9796 : r9807;
        double r9809 = r9785 ? r9790 : r9808;
        double r9810 = r9776 ? r9783 : r9809;
        return r9810;
}

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 r9811, r9812, r9813, r9814, r9815, r9816, r9817, r9818;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(336);
        mpfr_init(r9811);
        mpfr_init(r9812);
        mpfr_init(r9813);
        mpfr_init(r9814);
        mpfr_init(r9815);
        mpfr_init(r9816);
        mpfr_init(r9817);
        mpfr_init(r9818);
}

double f_im(double c0, double A, double V, double l) {
        mpfr_set_d(r9811, c0, MPFR_RNDN);
        mpfr_set_d(r9812, A, MPFR_RNDN);
        mpfr_set_d(r9813, V, MPFR_RNDN);
        mpfr_set_d(r9814, l, MPFR_RNDN);
        mpfr_mul(r9815, r9813, r9814, MPFR_RNDN);
        mpfr_div(r9816, r9812, r9815, MPFR_RNDN);
        mpfr_sqrt(r9817, r9816, MPFR_RNDN);
        mpfr_mul(r9818, r9811, r9817, MPFR_RNDN);
        return mpfr_get_d(r9818, MPFR_RNDN);
}

static mpfr_t r9819, r9820, r9821, r9822, r9823, r9824, r9825, r9826, r9827, r9828, r9829, r9830, r9831, r9832, r9833, r9834, r9835, r9836, r9837, r9838, r9839, r9840, r9841, r9842, r9843, r9844, r9845, r9846, r9847, r9848, r9849, r9850, r9851, r9852, r9853, r9854, r9855, r9856, r9857;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(336);
        mpfr_init(r9819);
        mpfr_init(r9820);
        mpfr_init(r9821);
        mpfr_init_set_str(r9822, "-1.114378691831571e+295", 10, MPFR_RNDN);
        mpfr_init(r9823);
        mpfr_init(r9824);
        mpfr_init(r9825);
        mpfr_init(r9826);
        mpfr_init(r9827);
        mpfr_init(r9828);
        mpfr_init(r9829);
        mpfr_init(r9830);
        mpfr_init_set_str(r9831, "-2.9812881782882438e-288", 10, MPFR_RNDN);
        mpfr_init(r9832);
        mpfr_init_set_str(r9833, "1", 10, MPFR_RNDN);
        mpfr_init(r9834);
        mpfr_init(r9835);
        mpfr_init(r9836);
        mpfr_init(r9837);
        mpfr_init_set_str(r9838, "3.5883047723267483e-298", 10, MPFR_RNDN);
        mpfr_init(r9839);
        mpfr_init(r9840);
        mpfr_init(r9841);
        mpfr_init(r9842);
        mpfr_init(r9843);
        mpfr_init_set_str(r9844, "3.511639093455415e+256", 10, MPFR_RNDN);
        mpfr_init(r9845);
        mpfr_init(r9846);
        mpfr_init(r9847);
        mpfr_init(r9848);
        mpfr_init(r9849);
        mpfr_init(r9850);
        mpfr_init(r9851);
        mpfr_init(r9852);
        mpfr_init(r9853);
        mpfr_init(r9854);
        mpfr_init(r9855);
        mpfr_init(r9856);
        mpfr_init(r9857);
}

double f_fm(double c0, double A, double V, double l) {
        mpfr_set_d(r9819, A, MPFR_RNDN);
        mpfr_set_d(r9820, V, MPFR_RNDN);
        mpfr_div(r9821, r9819, r9820, MPFR_RNDN);
        ;
        mpfr_set_si(r9823, mpfr_cmp(r9821, r9822) <= 0, MPFR_RNDN);
        mpfr_set_d(r9824, c0, MPFR_RNDN);
        mpfr_set_d(r9825, l, MPFR_RNDN);
        mpfr_div(r9826, r9819, r9825, MPFR_RNDN);
        mpfr_sqrt(r9827, r9826, MPFR_RNDN);
        mpfr_sqrt(r9828, r9820, MPFR_RNDN);
        mpfr_div(r9829, r9827, r9828, MPFR_RNDN);
        mpfr_mul(r9830, r9824, r9829, MPFR_RNDN);
        ;
        mpfr_set_si(r9832, mpfr_cmp(r9821, r9831) <= 0, MPFR_RNDN);
        ;
        mpfr_div(r9834, r9833, r9825, MPFR_RNDN);
        mpfr_mul(r9835, r9834, r9821, MPFR_RNDN);
        mpfr_sqrt(r9836, r9835, MPFR_RNDN);
        mpfr_mul(r9837, r9824, r9836, MPFR_RNDN);
        ;
        mpfr_set_si(r9839, mpfr_cmp(r9821, r9838) <= 0, MPFR_RNDN);
        mpfr_mul(r9840, r9825, r9820, MPFR_RNDN);
        mpfr_div(r9841, r9819, r9840, MPFR_RNDN);
        mpfr_sqrt(r9842, r9841, MPFR_RNDN);
        mpfr_mul(r9843, r9842, r9824, MPFR_RNDN);
        ;
        mpfr_set_si(r9845, mpfr_cmp(r9821, r9844) <= 0, MPFR_RNDN);
        mpfr_sqrt(r9846, r9821, MPFR_RNDN);
        mpfr_sqrt(r9847, r9825, MPFR_RNDN);
        mpfr_div(r9848, r9846, r9847, MPFR_RNDN);
        mpfr_mul(r9849, r9824, r9848, MPFR_RNDN);
        mpfr_sqrt(r9850, r9819, MPFR_RNDN);
        mpfr_mul(r9851, r9824, r9850, MPFR_RNDN);
        mpfr_sqrt(r9852, r9840, MPFR_RNDN);
        mpfr_div(r9853, r9851, r9852, MPFR_RNDN);
        if (mpfr_get_si(r9845, MPFR_RNDN)) { mpfr_set(r9854, r9849, MPFR_RNDN); } else { mpfr_set(r9854, r9853, MPFR_RNDN); };
        if (mpfr_get_si(r9839, MPFR_RNDN)) { mpfr_set(r9855, r9843, MPFR_RNDN); } else { mpfr_set(r9855, r9854, MPFR_RNDN); };
        if (mpfr_get_si(r9832, MPFR_RNDN)) { mpfr_set(r9856, r9837, MPFR_RNDN); } else { mpfr_set(r9856, r9855, MPFR_RNDN); };
        if (mpfr_get_si(r9823, MPFR_RNDN)) { mpfr_set(r9857, r9830, MPFR_RNDN); } else { mpfr_set(r9857, r9856, MPFR_RNDN); };
        return mpfr_get_d(r9857, MPFR_RNDN);
}

static mpfr_t r9858, r9859, r9860, r9861, r9862, r9863, r9864, r9865, r9866, r9867, r9868, r9869, r9870, r9871, r9872, r9873, r9874, r9875, r9876, r9877, r9878, r9879, r9880, r9881, r9882, r9883, r9884, r9885, r9886, r9887, r9888, r9889, r9890, r9891, r9892, r9893, r9894, r9895, r9896;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(336);
        mpfr_init(r9858);
        mpfr_init(r9859);
        mpfr_init(r9860);
        mpfr_init_set_str(r9861, "-1.114378691831571e+295", 10, MPFR_RNDN);
        mpfr_init(r9862);
        mpfr_init(r9863);
        mpfr_init(r9864);
        mpfr_init(r9865);
        mpfr_init(r9866);
        mpfr_init(r9867);
        mpfr_init(r9868);
        mpfr_init(r9869);
        mpfr_init_set_str(r9870, "-2.9812881782882438e-288", 10, MPFR_RNDN);
        mpfr_init(r9871);
        mpfr_init_set_str(r9872, "1", 10, MPFR_RNDN);
        mpfr_init(r9873);
        mpfr_init(r9874);
        mpfr_init(r9875);
        mpfr_init(r9876);
        mpfr_init_set_str(r9877, "3.5883047723267483e-298", 10, MPFR_RNDN);
        mpfr_init(r9878);
        mpfr_init(r9879);
        mpfr_init(r9880);
        mpfr_init(r9881);
        mpfr_init(r9882);
        mpfr_init_set_str(r9883, "3.511639093455415e+256", 10, MPFR_RNDN);
        mpfr_init(r9884);
        mpfr_init(r9885);
        mpfr_init(r9886);
        mpfr_init(r9887);
        mpfr_init(r9888);
        mpfr_init(r9889);
        mpfr_init(r9890);
        mpfr_init(r9891);
        mpfr_init(r9892);
        mpfr_init(r9893);
        mpfr_init(r9894);
        mpfr_init(r9895);
        mpfr_init(r9896);
}

double f_dm(double c0, double A, double V, double l) {
        mpfr_set_d(r9858, A, MPFR_RNDN);
        mpfr_set_d(r9859, V, MPFR_RNDN);
        mpfr_div(r9860, r9858, r9859, MPFR_RNDN);
        ;
        mpfr_set_si(r9862, mpfr_cmp(r9860, r9861) <= 0, MPFR_RNDN);
        mpfr_set_d(r9863, c0, MPFR_RNDN);
        mpfr_set_d(r9864, l, MPFR_RNDN);
        mpfr_div(r9865, r9858, r9864, MPFR_RNDN);
        mpfr_sqrt(r9866, r9865, MPFR_RNDN);
        mpfr_sqrt(r9867, r9859, MPFR_RNDN);
        mpfr_div(r9868, r9866, r9867, MPFR_RNDN);
        mpfr_mul(r9869, r9863, r9868, MPFR_RNDN);
        ;
        mpfr_set_si(r9871, mpfr_cmp(r9860, r9870) <= 0, MPFR_RNDN);
        ;
        mpfr_div(r9873, r9872, r9864, MPFR_RNDN);
        mpfr_mul(r9874, r9873, r9860, MPFR_RNDN);
        mpfr_sqrt(r9875, r9874, MPFR_RNDN);
        mpfr_mul(r9876, r9863, r9875, MPFR_RNDN);
        ;
        mpfr_set_si(r9878, mpfr_cmp(r9860, r9877) <= 0, MPFR_RNDN);
        mpfr_mul(r9879, r9864, r9859, MPFR_RNDN);
        mpfr_div(r9880, r9858, r9879, MPFR_RNDN);
        mpfr_sqrt(r9881, r9880, MPFR_RNDN);
        mpfr_mul(r9882, r9881, r9863, MPFR_RNDN);
        ;
        mpfr_set_si(r9884, mpfr_cmp(r9860, r9883) <= 0, MPFR_RNDN);
        mpfr_sqrt(r9885, r9860, MPFR_RNDN);
        mpfr_sqrt(r9886, r9864, MPFR_RNDN);
        mpfr_div(r9887, r9885, r9886, MPFR_RNDN);
        mpfr_mul(r9888, r9863, r9887, MPFR_RNDN);
        mpfr_sqrt(r9889, r9858, MPFR_RNDN);
        mpfr_mul(r9890, r9863, r9889, MPFR_RNDN);
        mpfr_sqrt(r9891, r9879, MPFR_RNDN);
        mpfr_div(r9892, r9890, r9891, MPFR_RNDN);
        if (mpfr_get_si(r9884, MPFR_RNDN)) { mpfr_set(r9893, r9888, MPFR_RNDN); } else { mpfr_set(r9893, r9892, MPFR_RNDN); };
        if (mpfr_get_si(r9878, MPFR_RNDN)) { mpfr_set(r9894, r9882, MPFR_RNDN); } else { mpfr_set(r9894, r9893, MPFR_RNDN); };
        if (mpfr_get_si(r9871, MPFR_RNDN)) { mpfr_set(r9895, r9876, MPFR_RNDN); } else { mpfr_set(r9895, r9894, MPFR_RNDN); };
        if (mpfr_get_si(r9862, MPFR_RNDN)) { mpfr_set(r9896, r9869, MPFR_RNDN); } else { mpfr_set(r9896, r9895, MPFR_RNDN); };
        return mpfr_get_d(r9896, MPFR_RNDN);
}

