#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 r9748 = c0;
        float r9749 = A;
        float r9750 = V;
        float r9751 = l;
        float r9752 = r9750 * r9751;
        float r9753 = r9749 / r9752;
        float r9754 = sqrt(r9753);
        float r9755 = r9748 * r9754;
        return r9755;
}

double f_id(double c0, double A, double V, double l) {
        double r9756 = c0;
        double r9757 = A;
        double r9758 = V;
        double r9759 = l;
        double r9760 = r9758 * r9759;
        double r9761 = r9757 / r9760;
        double r9762 = sqrt(r9761);
        double r9763 = r9756 * r9762;
        return r9763;
}


double f_of(float c0, float A, float V, float l) {
        float r9764 = A;
        float r9765 = V;
        float r9766 = r9764 / r9765;
        float r9767 = -1.114378691831571e+295f;
        bool r9768 = r9766 <= r9767;
        float r9769 = c0;
        float r9770 = l;
        float r9771 = r9764 / r9770;
        float r9772 = sqrt(r9771);
        float r9773 = sqrt(r9765);
        float r9774 = r9772 / r9773;
        float r9775 = r9769 * r9774;
        float r9776 = -2.9812881782882438e-288f;
        bool r9777 = r9766 <= r9776;
        float r9778 = 1.0f;
        float r9779 = r9778 / r9770;
        float r9780 = r9779 * r9766;
        float r9781 = sqrt(r9780);
        float r9782 = r9769 * r9781;
        float r9783 = 3.5883047723267483e-298f;
        bool r9784 = r9766 <= r9783;
        float r9785 = r9770 * r9765;
        float r9786 = r9764 / r9785;
        float r9787 = sqrt(r9786);
        float r9788 = r9787 * r9769;
        float r9789 = 3.511639093455415e+256f;
        bool r9790 = r9766 <= r9789;
        float r9791 = sqrt(r9766);
        float r9792 = sqrt(r9770);
        float r9793 = r9791 / r9792;
        float r9794 = r9769 * r9793;
        float r9795 = sqrt(r9764);
        float r9796 = r9769 * r9795;
        float r9797 = sqrt(r9785);
        float r9798 = r9796 / r9797;
        float r9799 = r9790 ? r9794 : r9798;
        float r9800 = r9784 ? r9788 : r9799;
        float r9801 = r9777 ? r9782 : r9800;
        float r9802 = r9768 ? r9775 : r9801;
        return r9802;
}

double f_od(double c0, double A, double V, double l) {
        double r9803 = A;
        double r9804 = V;
        double r9805 = r9803 / r9804;
        double r9806 = -1.114378691831571e+295;
        bool r9807 = r9805 <= r9806;
        double r9808 = c0;
        double r9809 = l;
        double r9810 = r9803 / r9809;
        double r9811 = sqrt(r9810);
        double r9812 = sqrt(r9804);
        double r9813 = r9811 / r9812;
        double r9814 = r9808 * r9813;
        double r9815 = -2.9812881782882438e-288;
        bool r9816 = r9805 <= r9815;
        double r9817 = 1.0;
        double r9818 = r9817 / r9809;
        double r9819 = r9818 * r9805;
        double r9820 = sqrt(r9819);
        double r9821 = r9808 * r9820;
        double r9822 = 3.5883047723267483e-298;
        bool r9823 = r9805 <= r9822;
        double r9824 = r9809 * r9804;
        double r9825 = r9803 / r9824;
        double r9826 = sqrt(r9825);
        double r9827 = r9826 * r9808;
        double r9828 = 3.511639093455415e+256;
        bool r9829 = r9805 <= r9828;
        double r9830 = sqrt(r9805);
        double r9831 = sqrt(r9809);
        double r9832 = r9830 / r9831;
        double r9833 = r9808 * r9832;
        double r9834 = sqrt(r9803);
        double r9835 = r9808 * r9834;
        double r9836 = sqrt(r9824);
        double r9837 = r9835 / r9836;
        double r9838 = r9829 ? r9833 : r9837;
        double r9839 = r9823 ? r9827 : r9838;
        double r9840 = r9816 ? r9821 : r9839;
        double r9841 = r9807 ? r9814 : r9840;
        return r9841;
}

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 r9842, r9843, r9844, r9845, r9846, r9847, r9848, r9849;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r9842);
        mpfr_init(r9843);
        mpfr_init(r9844);
        mpfr_init(r9845);
        mpfr_init(r9846);
        mpfr_init(r9847);
        mpfr_init(r9848);
        mpfr_init(r9849);
}

double f_im(double c0, double A, double V, double l) {
        mpfr_set_d(r9842, c0, MPFR_RNDN);
        mpfr_set_d(r9843, A, MPFR_RNDN);
        mpfr_set_d(r9844, V, MPFR_RNDN);
        mpfr_set_d(r9845, l, MPFR_RNDN);
        mpfr_mul(r9846, r9844, r9845, MPFR_RNDN);
        mpfr_div(r9847, r9843, r9846, MPFR_RNDN);
        mpfr_sqrt(r9848, r9847, MPFR_RNDN);
        mpfr_mul(r9849, r9842, r9848, MPFR_RNDN);
        return mpfr_get_d(r9849, MPFR_RNDN);
}

static mpfr_t r9850, r9851, r9852, r9853, r9854, r9855, r9856, r9857, 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;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init(r9850);
        mpfr_init(r9851);
        mpfr_init(r9852);
        mpfr_init_set_str(r9853, "-1.114378691831571e+295", 10, MPFR_RNDN);
        mpfr_init(r9854);
        mpfr_init(r9855);
        mpfr_init(r9856);
        mpfr_init(r9857);
        mpfr_init(r9858);
        mpfr_init(r9859);
        mpfr_init(r9860);
        mpfr_init(r9861);
        mpfr_init_set_str(r9862, "-2.9812881782882438e-288", 10, MPFR_RNDN);
        mpfr_init(r9863);
        mpfr_init_set_str(r9864, "1", 10, MPFR_RNDN);
        mpfr_init(r9865);
        mpfr_init(r9866);
        mpfr_init(r9867);
        mpfr_init(r9868);
        mpfr_init_set_str(r9869, "3.5883047723267483e-298", 10, MPFR_RNDN);
        mpfr_init(r9870);
        mpfr_init(r9871);
        mpfr_init(r9872);
        mpfr_init(r9873);
        mpfr_init(r9874);
        mpfr_init_set_str(r9875, "3.511639093455415e+256", 10, MPFR_RNDN);
        mpfr_init(r9876);
        mpfr_init(r9877);
        mpfr_init(r9878);
        mpfr_init(r9879);
        mpfr_init(r9880);
        mpfr_init(r9881);
        mpfr_init(r9882);
        mpfr_init(r9883);
        mpfr_init(r9884);
        mpfr_init(r9885);
        mpfr_init(r9886);
        mpfr_init(r9887);
        mpfr_init(r9888);
}

double f_fm(double c0, double A, double V, double l) {
        mpfr_set_d(r9850, A, MPFR_RNDN);
        mpfr_set_d(r9851, V, MPFR_RNDN);
        mpfr_div(r9852, r9850, r9851, MPFR_RNDN);
        ;
        mpfr_set_si(r9854, mpfr_cmp(r9852, r9853) <= 0, MPFR_RNDN);
        mpfr_set_d(r9855, c0, MPFR_RNDN);
        mpfr_set_d(r9856, l, MPFR_RNDN);
        mpfr_div(r9857, r9850, r9856, MPFR_RNDN);
        mpfr_sqrt(r9858, r9857, MPFR_RNDN);
        mpfr_sqrt(r9859, r9851, MPFR_RNDN);
        mpfr_div(r9860, r9858, r9859, MPFR_RNDN);
        mpfr_mul(r9861, r9855, r9860, MPFR_RNDN);
        ;
        mpfr_set_si(r9863, mpfr_cmp(r9852, r9862) <= 0, MPFR_RNDN);
        ;
        mpfr_div(r9865, r9864, r9856, MPFR_RNDN);
        mpfr_mul(r9866, r9865, r9852, MPFR_RNDN);
        mpfr_sqrt(r9867, r9866, MPFR_RNDN);
        mpfr_mul(r9868, r9855, r9867, MPFR_RNDN);
        ;
        mpfr_set_si(r9870, mpfr_cmp(r9852, r9869) <= 0, MPFR_RNDN);
        mpfr_mul(r9871, r9856, r9851, MPFR_RNDN);
        mpfr_div(r9872, r9850, r9871, MPFR_RNDN);
        mpfr_sqrt(r9873, r9872, MPFR_RNDN);
        mpfr_mul(r9874, r9873, r9855, MPFR_RNDN);
        ;
        mpfr_set_si(r9876, mpfr_cmp(r9852, r9875) <= 0, MPFR_RNDN);
        mpfr_sqrt(r9877, r9852, MPFR_RNDN);
        mpfr_sqrt(r9878, r9856, MPFR_RNDN);
        mpfr_div(r9879, r9877, r9878, MPFR_RNDN);
        mpfr_mul(r9880, r9855, r9879, MPFR_RNDN);
        mpfr_sqrt(r9881, r9850, MPFR_RNDN);
        mpfr_mul(r9882, r9855, r9881, MPFR_RNDN);
        mpfr_sqrt(r9883, r9871, MPFR_RNDN);
        mpfr_div(r9884, r9882, r9883, MPFR_RNDN);
        if (mpfr_get_si(r9876, MPFR_RNDN)) { mpfr_set(r9885, r9880, MPFR_RNDN); } else { mpfr_set(r9885, r9884, MPFR_RNDN); };
        if (mpfr_get_si(r9870, MPFR_RNDN)) { mpfr_set(r9886, r9874, MPFR_RNDN); } else { mpfr_set(r9886, r9885, MPFR_RNDN); };
        if (mpfr_get_si(r9863, MPFR_RNDN)) { mpfr_set(r9887, r9868, MPFR_RNDN); } else { mpfr_set(r9887, r9886, MPFR_RNDN); };
        if (mpfr_get_si(r9854, MPFR_RNDN)) { mpfr_set(r9888, r9861, MPFR_RNDN); } else { mpfr_set(r9888, r9887, MPFR_RNDN); };
        return mpfr_get_d(r9888, MPFR_RNDN);
}

static mpfr_t r9889, r9890, r9891, r9892, r9893, r9894, r9895, r9896, r9897, r9898, r9899, r9900, r9901, r9902, r9903, r9904, r9905, r9906, r9907, r9908, r9909, r9910, r9911, r9912, r9913, r9914, r9915, r9916, r9917, r9918, r9919, r9920, r9921, r9922, r9923, r9924, r9925, r9926, r9927;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r9889);
        mpfr_init(r9890);
        mpfr_init(r9891);
        mpfr_init_set_str(r9892, "-1.114378691831571e+295", 10, MPFR_RNDN);
        mpfr_init(r9893);
        mpfr_init(r9894);
        mpfr_init(r9895);
        mpfr_init(r9896);
        mpfr_init(r9897);
        mpfr_init(r9898);
        mpfr_init(r9899);
        mpfr_init(r9900);
        mpfr_init_set_str(r9901, "-2.9812881782882438e-288", 10, MPFR_RNDN);
        mpfr_init(r9902);
        mpfr_init_set_str(r9903, "1", 10, MPFR_RNDN);
        mpfr_init(r9904);
        mpfr_init(r9905);
        mpfr_init(r9906);
        mpfr_init(r9907);
        mpfr_init_set_str(r9908, "3.5883047723267483e-298", 10, MPFR_RNDN);
        mpfr_init(r9909);
        mpfr_init(r9910);
        mpfr_init(r9911);
        mpfr_init(r9912);
        mpfr_init(r9913);
        mpfr_init_set_str(r9914, "3.511639093455415e+256", 10, MPFR_RNDN);
        mpfr_init(r9915);
        mpfr_init(r9916);
        mpfr_init(r9917);
        mpfr_init(r9918);
        mpfr_init(r9919);
        mpfr_init(r9920);
        mpfr_init(r9921);
        mpfr_init(r9922);
        mpfr_init(r9923);
        mpfr_init(r9924);
        mpfr_init(r9925);
        mpfr_init(r9926);
        mpfr_init(r9927);
}

double f_dm(double c0, double A, double V, double l) {
        mpfr_set_d(r9889, A, MPFR_RNDN);
        mpfr_set_d(r9890, V, MPFR_RNDN);
        mpfr_div(r9891, r9889, r9890, MPFR_RNDN);
        ;
        mpfr_set_si(r9893, mpfr_cmp(r9891, r9892) <= 0, MPFR_RNDN);
        mpfr_set_d(r9894, c0, MPFR_RNDN);
        mpfr_set_d(r9895, l, MPFR_RNDN);
        mpfr_div(r9896, r9889, r9895, MPFR_RNDN);
        mpfr_sqrt(r9897, r9896, MPFR_RNDN);
        mpfr_sqrt(r9898, r9890, MPFR_RNDN);
        mpfr_div(r9899, r9897, r9898, MPFR_RNDN);
        mpfr_mul(r9900, r9894, r9899, MPFR_RNDN);
        ;
        mpfr_set_si(r9902, mpfr_cmp(r9891, r9901) <= 0, MPFR_RNDN);
        ;
        mpfr_div(r9904, r9903, r9895, MPFR_RNDN);
        mpfr_mul(r9905, r9904, r9891, MPFR_RNDN);
        mpfr_sqrt(r9906, r9905, MPFR_RNDN);
        mpfr_mul(r9907, r9894, r9906, MPFR_RNDN);
        ;
        mpfr_set_si(r9909, mpfr_cmp(r9891, r9908) <= 0, MPFR_RNDN);
        mpfr_mul(r9910, r9895, r9890, MPFR_RNDN);
        mpfr_div(r9911, r9889, r9910, MPFR_RNDN);
        mpfr_sqrt(r9912, r9911, MPFR_RNDN);
        mpfr_mul(r9913, r9912, r9894, MPFR_RNDN);
        ;
        mpfr_set_si(r9915, mpfr_cmp(r9891, r9914) <= 0, MPFR_RNDN);
        mpfr_sqrt(r9916, r9891, MPFR_RNDN);
        mpfr_sqrt(r9917, r9895, MPFR_RNDN);
        mpfr_div(r9918, r9916, r9917, MPFR_RNDN);
        mpfr_mul(r9919, r9894, r9918, MPFR_RNDN);
        mpfr_sqrt(r9920, r9889, MPFR_RNDN);
        mpfr_mul(r9921, r9894, r9920, MPFR_RNDN);
        mpfr_sqrt(r9922, r9910, MPFR_RNDN);
        mpfr_div(r9923, r9921, r9922, MPFR_RNDN);
        if (mpfr_get_si(r9915, MPFR_RNDN)) { mpfr_set(r9924, r9919, MPFR_RNDN); } else { mpfr_set(r9924, r9923, MPFR_RNDN); };
        if (mpfr_get_si(r9909, MPFR_RNDN)) { mpfr_set(r9925, r9913, MPFR_RNDN); } else { mpfr_set(r9925, r9924, MPFR_RNDN); };
        if (mpfr_get_si(r9902, MPFR_RNDN)) { mpfr_set(r9926, r9907, MPFR_RNDN); } else { mpfr_set(r9926, r9925, MPFR_RNDN); };
        if (mpfr_get_si(r9893, MPFR_RNDN)) { mpfr_set(r9927, r9900, MPFR_RNDN); } else { mpfr_set(r9927, r9926, MPFR_RNDN); };
        return mpfr_get_d(r9927, MPFR_RNDN);
}

