#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 r26050 = c0;
        float r26051 = A;
        float r26052 = V;
        float r26053 = l;
        float r26054 = r26052 * r26053;
        float r26055 = r26051 / r26054;
        float r26056 = sqrt(r26055);
        float r26057 = r26050 * r26056;
        return r26057;
}

double f_id(double c0, double A, double V, double l) {
        double r26058 = c0;
        double r26059 = A;
        double r26060 = V;
        double r26061 = l;
        double r26062 = r26060 * r26061;
        double r26063 = r26059 / r26062;
        double r26064 = sqrt(r26063);
        double r26065 = r26058 * r26064;
        return r26065;
}


double f_of(float c0, float A, float V, float l) {
        float r26066 = A;
        float r26067 = V;
        float r26068 = r26066 / r26067;
        float r26069 = -5.1885145341326937e+182;
        bool r26070 = r26068 <= r26069;
        float r26071 = c0;
        float r26072 = l;
        float r26073 = r26067 * r26072;
        float r26074 = r26066 / r26073;
        float r26075 = sqrt(r26074);
        float r26076 = r26071 * r26075;
        float r26077 = -1.2335051430803896e-303;
        bool r26078 = r26068 <= r26077;
        float r26079 = 1;
        float r26080 = r26079 / r26072;
        float r26081 = r26068 * r26080;
        float r26082 = sqrt(r26081);
        float r26083 = r26071 * r26082;
        float r26084 = 1.7197487698494e-313;
        bool r26085 = r26068 <= r26084;
        float r26086 = sqrt(r26075);
        float r26087 = r26071 * r26086;
        float r26088 = r26087 * r26086;
        float r26089 = sqrt(r26068);
        float r26090 = r26071 * r26089;
        float r26091 = sqrt(r26072);
        float r26092 = r26090 / r26091;
        float r26093 = r26085 ? r26088 : r26092;
        float r26094 = r26078 ? r26083 : r26093;
        float r26095 = r26070 ? r26076 : r26094;
        return r26095;
}

double f_od(double c0, double A, double V, double l) {
        double r26096 = A;
        double r26097 = V;
        double r26098 = r26096 / r26097;
        double r26099 = -5.1885145341326937e+182;
        bool r26100 = r26098 <= r26099;
        double r26101 = c0;
        double r26102 = l;
        double r26103 = r26097 * r26102;
        double r26104 = r26096 / r26103;
        double r26105 = sqrt(r26104);
        double r26106 = r26101 * r26105;
        double r26107 = -1.2335051430803896e-303;
        bool r26108 = r26098 <= r26107;
        double r26109 = 1;
        double r26110 = r26109 / r26102;
        double r26111 = r26098 * r26110;
        double r26112 = sqrt(r26111);
        double r26113 = r26101 * r26112;
        double r26114 = 1.7197487698494e-313;
        bool r26115 = r26098 <= r26114;
        double r26116 = sqrt(r26105);
        double r26117 = r26101 * r26116;
        double r26118 = r26117 * r26116;
        double r26119 = sqrt(r26098);
        double r26120 = r26101 * r26119;
        double r26121 = sqrt(r26102);
        double r26122 = r26120 / r26121;
        double r26123 = r26115 ? r26118 : r26122;
        double r26124 = r26108 ? r26113 : r26123;
        double r26125 = r26100 ? r26106 : r26124;
        return r26125;
}

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 r26126, r26127, r26128, r26129, r26130, r26131, r26132, r26133;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r26126);
        mpfr_init(r26127);
        mpfr_init(r26128);
        mpfr_init(r26129);
        mpfr_init(r26130);
        mpfr_init(r26131);
        mpfr_init(r26132);
        mpfr_init(r26133);
}

double f_im(double c0, double A, double V, double l) {
        mpfr_set_d(r26126, c0, MPFR_RNDN);
        mpfr_set_d(r26127, A, MPFR_RNDN);
        mpfr_set_d(r26128, V, MPFR_RNDN);
        mpfr_set_d(r26129, l, MPFR_RNDN);
        mpfr_mul(r26130, r26128, r26129, MPFR_RNDN);
        mpfr_div(r26131, r26127, r26130, MPFR_RNDN);
        mpfr_sqrt(r26132, r26131, MPFR_RNDN);
        mpfr_mul(r26133, r26126, r26132, MPFR_RNDN);
        return mpfr_get_d(r26133, MPFR_RNDN);
}

static mpfr_t r26134, r26135, r26136, r26137, r26138, r26139, r26140, r26141, r26142, r26143, r26144, r26145, r26146, r26147, r26148, r26149, r26150, r26151, r26152, r26153, r26154, r26155, r26156, r26157, r26158, r26159, r26160, r26161, r26162, r26163;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init(r26134);
        mpfr_init(r26135);
        mpfr_init(r26136);
        mpfr_init_set_str(r26137, "-5.1885145341326937e+182", 10, MPFR_RNDN);
        mpfr_init(r26138);
        mpfr_init(r26139);
        mpfr_init(r26140);
        mpfr_init(r26141);
        mpfr_init(r26142);
        mpfr_init(r26143);
        mpfr_init(r26144);
        mpfr_init_set_str(r26145, "-1.2335051430803896e-303", 10, MPFR_RNDN);
        mpfr_init(r26146);
        mpfr_init_set_str(r26147, "1", 10, MPFR_RNDN);
        mpfr_init(r26148);
        mpfr_init(r26149);
        mpfr_init(r26150);
        mpfr_init(r26151);
        mpfr_init_set_str(r26152, "1.7197487698494e-313", 10, MPFR_RNDN);
        mpfr_init(r26153);
        mpfr_init(r26154);
        mpfr_init(r26155);
        mpfr_init(r26156);
        mpfr_init(r26157);
        mpfr_init(r26158);
        mpfr_init(r26159);
        mpfr_init(r26160);
        mpfr_init(r26161);
        mpfr_init(r26162);
        mpfr_init(r26163);
}

double f_fm(double c0, double A, double V, double l) {
        mpfr_set_d(r26134, A, MPFR_RNDN);
        mpfr_set_d(r26135, V, MPFR_RNDN);
        mpfr_div(r26136, r26134, r26135, MPFR_RNDN);
        ;
        mpfr_set_si(r26138, mpfr_cmp(r26136, r26137) <= 0, MPFR_RNDN);
        mpfr_set_d(r26139, c0, MPFR_RNDN);
        mpfr_set_d(r26140, l, MPFR_RNDN);
        mpfr_mul(r26141, r26135, r26140, MPFR_RNDN);
        mpfr_div(r26142, r26134, r26141, MPFR_RNDN);
        mpfr_sqrt(r26143, r26142, MPFR_RNDN);
        mpfr_mul(r26144, r26139, r26143, MPFR_RNDN);
        ;
        mpfr_set_si(r26146, mpfr_cmp(r26136, r26145) <= 0, MPFR_RNDN);
        ;
        mpfr_div(r26148, r26147, r26140, MPFR_RNDN);
        mpfr_mul(r26149, r26136, r26148, MPFR_RNDN);
        mpfr_sqrt(r26150, r26149, MPFR_RNDN);
        mpfr_mul(r26151, r26139, r26150, MPFR_RNDN);
        ;
        mpfr_set_si(r26153, mpfr_cmp(r26136, r26152) <= 0, MPFR_RNDN);
        mpfr_sqrt(r26154, r26143, MPFR_RNDN);
        mpfr_mul(r26155, r26139, r26154, MPFR_RNDN);
        mpfr_mul(r26156, r26155, r26154, MPFR_RNDN);
        mpfr_sqrt(r26157, r26136, MPFR_RNDN);
        mpfr_mul(r26158, r26139, r26157, MPFR_RNDN);
        mpfr_sqrt(r26159, r26140, MPFR_RNDN);
        mpfr_div(r26160, r26158, r26159, MPFR_RNDN);
        if (mpfr_get_si(r26153, MPFR_RNDN)) { mpfr_set(r26161, r26156, MPFR_RNDN); } else { mpfr_set(r26161, r26160, MPFR_RNDN); };
        if (mpfr_get_si(r26146, MPFR_RNDN)) { mpfr_set(r26162, r26151, MPFR_RNDN); } else { mpfr_set(r26162, r26161, MPFR_RNDN); };
        if (mpfr_get_si(r26138, MPFR_RNDN)) { mpfr_set(r26163, r26144, MPFR_RNDN); } else { mpfr_set(r26163, r26162, MPFR_RNDN); };
        return mpfr_get_d(r26163, MPFR_RNDN);
}

static mpfr_t r26164, r26165, r26166, r26167, r26168, r26169, r26170, r26171, r26172, r26173, r26174, r26175, r26176, r26177, r26178, r26179, r26180, r26181, r26182, r26183, r26184, r26185, r26186, r26187, r26188, r26189, r26190, r26191, r26192, r26193;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r26164);
        mpfr_init(r26165);
        mpfr_init(r26166);
        mpfr_init_set_str(r26167, "-5.1885145341326937e+182", 10, MPFR_RNDN);
        mpfr_init(r26168);
        mpfr_init(r26169);
        mpfr_init(r26170);
        mpfr_init(r26171);
        mpfr_init(r26172);
        mpfr_init(r26173);
        mpfr_init(r26174);
        mpfr_init_set_str(r26175, "-1.2335051430803896e-303", 10, MPFR_RNDN);
        mpfr_init(r26176);
        mpfr_init_set_str(r26177, "1", 10, MPFR_RNDN);
        mpfr_init(r26178);
        mpfr_init(r26179);
        mpfr_init(r26180);
        mpfr_init(r26181);
        mpfr_init_set_str(r26182, "1.7197487698494e-313", 10, MPFR_RNDN);
        mpfr_init(r26183);
        mpfr_init(r26184);
        mpfr_init(r26185);
        mpfr_init(r26186);
        mpfr_init(r26187);
        mpfr_init(r26188);
        mpfr_init(r26189);
        mpfr_init(r26190);
        mpfr_init(r26191);
        mpfr_init(r26192);
        mpfr_init(r26193);
}

double f_dm(double c0, double A, double V, double l) {
        mpfr_set_d(r26164, A, MPFR_RNDN);
        mpfr_set_d(r26165, V, MPFR_RNDN);
        mpfr_div(r26166, r26164, r26165, MPFR_RNDN);
        ;
        mpfr_set_si(r26168, mpfr_cmp(r26166, r26167) <= 0, MPFR_RNDN);
        mpfr_set_d(r26169, c0, MPFR_RNDN);
        mpfr_set_d(r26170, l, MPFR_RNDN);
        mpfr_mul(r26171, r26165, r26170, MPFR_RNDN);
        mpfr_div(r26172, r26164, r26171, MPFR_RNDN);
        mpfr_sqrt(r26173, r26172, MPFR_RNDN);
        mpfr_mul(r26174, r26169, r26173, MPFR_RNDN);
        ;
        mpfr_set_si(r26176, mpfr_cmp(r26166, r26175) <= 0, MPFR_RNDN);
        ;
        mpfr_div(r26178, r26177, r26170, MPFR_RNDN);
        mpfr_mul(r26179, r26166, r26178, MPFR_RNDN);
        mpfr_sqrt(r26180, r26179, MPFR_RNDN);
        mpfr_mul(r26181, r26169, r26180, MPFR_RNDN);
        ;
        mpfr_set_si(r26183, mpfr_cmp(r26166, r26182) <= 0, MPFR_RNDN);
        mpfr_sqrt(r26184, r26173, MPFR_RNDN);
        mpfr_mul(r26185, r26169, r26184, MPFR_RNDN);
        mpfr_mul(r26186, r26185, r26184, MPFR_RNDN);
        mpfr_sqrt(r26187, r26166, MPFR_RNDN);
        mpfr_mul(r26188, r26169, r26187, MPFR_RNDN);
        mpfr_sqrt(r26189, r26170, MPFR_RNDN);
        mpfr_div(r26190, r26188, r26189, MPFR_RNDN);
        if (mpfr_get_si(r26183, MPFR_RNDN)) { mpfr_set(r26191, r26186, MPFR_RNDN); } else { mpfr_set(r26191, r26190, MPFR_RNDN); };
        if (mpfr_get_si(r26176, MPFR_RNDN)) { mpfr_set(r26192, r26181, MPFR_RNDN); } else { mpfr_set(r26192, r26191, MPFR_RNDN); };
        if (mpfr_get_si(r26168, MPFR_RNDN)) { mpfr_set(r26193, r26174, MPFR_RNDN); } else { mpfr_set(r26193, r26192, MPFR_RNDN); };
        return mpfr_get_d(r26193, MPFR_RNDN);
}

