#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 r25994 = c0;
        float r25995 = A;
        float r25996 = V;
        float r25997 = l;
        float r25998 = r25996 * r25997;
        float r25999 = r25995 / r25998;
        float r26000 = sqrt(r25999);
        float r26001 = r25994 * r26000;
        return r26001;
}

double f_id(double c0, double A, double V, double l) {
        double r26002 = c0;
        double r26003 = A;
        double r26004 = V;
        double r26005 = l;
        double r26006 = r26004 * r26005;
        double r26007 = r26003 / r26006;
        double r26008 = sqrt(r26007);
        double r26009 = r26002 * r26008;
        return r26009;
}


double f_of(float c0, float A, float V, float l) {
        float r26010 = A;
        float r26011 = V;
        float r26012 = r26010 / r26011;
        float r26013 = -5.1885145341326937e+182;
        bool r26014 = r26012 <= r26013;
        float r26015 = c0;
        float r26016 = l;
        float r26017 = r26011 * r26016;
        float r26018 = r26010 / r26017;
        float r26019 = sqrt(r26018);
        float r26020 = r26015 * r26019;
        float r26021 = -1.2335051430803896e-303;
        bool r26022 = r26012 <= r26021;
        float r26023 = 1;
        float r26024 = r26023 / r26016;
        float r26025 = r26012 * r26024;
        float r26026 = sqrt(r26025);
        float r26027 = r26015 * r26026;
        float r26028 = 1.7197487698494e-313;
        bool r26029 = r26012 <= r26028;
        float r26030 = sqrt(r26019);
        float r26031 = r26015 * r26030;
        float r26032 = r26031 * r26030;
        float r26033 = sqrt(r26012);
        float r26034 = r26015 * r26033;
        float r26035 = sqrt(r26016);
        float r26036 = r26034 / r26035;
        float r26037 = r26029 ? r26032 : r26036;
        float r26038 = r26022 ? r26027 : r26037;
        float r26039 = r26014 ? r26020 : r26038;
        return r26039;
}

double f_od(double c0, double A, double V, double l) {
        double r26040 = A;
        double r26041 = V;
        double r26042 = r26040 / r26041;
        double r26043 = -5.1885145341326937e+182;
        bool r26044 = r26042 <= r26043;
        double r26045 = c0;
        double r26046 = l;
        double r26047 = r26041 * r26046;
        double r26048 = r26040 / r26047;
        double r26049 = sqrt(r26048);
        double r26050 = r26045 * r26049;
        double r26051 = -1.2335051430803896e-303;
        bool r26052 = r26042 <= r26051;
        double r26053 = 1;
        double r26054 = r26053 / r26046;
        double r26055 = r26042 * r26054;
        double r26056 = sqrt(r26055);
        double r26057 = r26045 * r26056;
        double r26058 = 1.7197487698494e-313;
        bool r26059 = r26042 <= r26058;
        double r26060 = sqrt(r26049);
        double r26061 = r26045 * r26060;
        double r26062 = r26061 * r26060;
        double r26063 = sqrt(r26042);
        double r26064 = r26045 * r26063;
        double r26065 = sqrt(r26046);
        double r26066 = r26064 / r26065;
        double r26067 = r26059 ? r26062 : r26066;
        double r26068 = r26052 ? r26057 : r26067;
        double r26069 = r26044 ? r26050 : r26068;
        return r26069;
}

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 r26070, r26071, r26072, r26073, r26074, r26075, r26076, r26077;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r26070);
        mpfr_init(r26071);
        mpfr_init(r26072);
        mpfr_init(r26073);
        mpfr_init(r26074);
        mpfr_init(r26075);
        mpfr_init(r26076);
        mpfr_init(r26077);
}

double f_im(double c0, double A, double V, double l) {
        mpfr_set_d(r26070, c0, MPFR_RNDN);
        mpfr_set_d(r26071, A, MPFR_RNDN);
        mpfr_set_d(r26072, V, MPFR_RNDN);
        mpfr_set_d(r26073, l, MPFR_RNDN);
        mpfr_mul(r26074, r26072, r26073, MPFR_RNDN);
        mpfr_div(r26075, r26071, r26074, MPFR_RNDN);
        mpfr_sqrt(r26076, r26075, MPFR_RNDN);
        mpfr_mul(r26077, r26070, r26076, MPFR_RNDN);
        return mpfr_get_d(r26077, MPFR_RNDN);
}

static mpfr_t r26078, r26079, r26080, r26081, r26082, r26083, r26084, r26085, r26086, r26087, r26088, r26089, r26090, r26091, r26092, r26093, r26094, r26095, r26096, r26097, r26098, r26099, r26100, r26101, r26102, r26103, r26104, r26105, r26106, r26107;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init(r26078);
        mpfr_init(r26079);
        mpfr_init(r26080);
        mpfr_init_set_str(r26081, "-5.1885145341326937e+182", 10, MPFR_RNDN);
        mpfr_init(r26082);
        mpfr_init(r26083);
        mpfr_init(r26084);
        mpfr_init(r26085);
        mpfr_init(r26086);
        mpfr_init(r26087);
        mpfr_init(r26088);
        mpfr_init_set_str(r26089, "-1.2335051430803896e-303", 10, MPFR_RNDN);
        mpfr_init(r26090);
        mpfr_init_set_str(r26091, "1", 10, MPFR_RNDN);
        mpfr_init(r26092);
        mpfr_init(r26093);
        mpfr_init(r26094);
        mpfr_init(r26095);
        mpfr_init_set_str(r26096, "1.7197487698494e-313", 10, MPFR_RNDN);
        mpfr_init(r26097);
        mpfr_init(r26098);
        mpfr_init(r26099);
        mpfr_init(r26100);
        mpfr_init(r26101);
        mpfr_init(r26102);
        mpfr_init(r26103);
        mpfr_init(r26104);
        mpfr_init(r26105);
        mpfr_init(r26106);
        mpfr_init(r26107);
}

double f_fm(double c0, double A, double V, double l) {
        mpfr_set_d(r26078, A, MPFR_RNDN);
        mpfr_set_d(r26079, V, MPFR_RNDN);
        mpfr_div(r26080, r26078, r26079, MPFR_RNDN);
        ;
        mpfr_set_si(r26082, mpfr_cmp(r26080, r26081) <= 0, MPFR_RNDN);
        mpfr_set_d(r26083, c0, MPFR_RNDN);
        mpfr_set_d(r26084, l, MPFR_RNDN);
        mpfr_mul(r26085, r26079, r26084, MPFR_RNDN);
        mpfr_div(r26086, r26078, r26085, MPFR_RNDN);
        mpfr_sqrt(r26087, r26086, MPFR_RNDN);
        mpfr_mul(r26088, r26083, r26087, MPFR_RNDN);
        ;
        mpfr_set_si(r26090, mpfr_cmp(r26080, r26089) <= 0, MPFR_RNDN);
        ;
        mpfr_div(r26092, r26091, r26084, MPFR_RNDN);
        mpfr_mul(r26093, r26080, r26092, MPFR_RNDN);
        mpfr_sqrt(r26094, r26093, MPFR_RNDN);
        mpfr_mul(r26095, r26083, r26094, MPFR_RNDN);
        ;
        mpfr_set_si(r26097, mpfr_cmp(r26080, r26096) <= 0, MPFR_RNDN);
        mpfr_sqrt(r26098, r26087, MPFR_RNDN);
        mpfr_mul(r26099, r26083, r26098, MPFR_RNDN);
        mpfr_mul(r26100, r26099, r26098, MPFR_RNDN);
        mpfr_sqrt(r26101, r26080, MPFR_RNDN);
        mpfr_mul(r26102, r26083, r26101, MPFR_RNDN);
        mpfr_sqrt(r26103, r26084, MPFR_RNDN);
        mpfr_div(r26104, r26102, r26103, MPFR_RNDN);
        if (mpfr_get_si(r26097, MPFR_RNDN)) { mpfr_set(r26105, r26100, MPFR_RNDN); } else { mpfr_set(r26105, r26104, MPFR_RNDN); };
        if (mpfr_get_si(r26090, MPFR_RNDN)) { mpfr_set(r26106, r26095, MPFR_RNDN); } else { mpfr_set(r26106, r26105, MPFR_RNDN); };
        if (mpfr_get_si(r26082, MPFR_RNDN)) { mpfr_set(r26107, r26088, MPFR_RNDN); } else { mpfr_set(r26107, r26106, MPFR_RNDN); };
        return mpfr_get_d(r26107, MPFR_RNDN);
}

static mpfr_t r26108, r26109, r26110, r26111, r26112, r26113, r26114, r26115, r26116, r26117, r26118, r26119, r26120, r26121, r26122, r26123, r26124, r26125, r26126, r26127, r26128, r26129, r26130, r26131, r26132, r26133, r26134, r26135, r26136, r26137;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r26108);
        mpfr_init(r26109);
        mpfr_init(r26110);
        mpfr_init_set_str(r26111, "-5.1885145341326937e+182", 10, MPFR_RNDN);
        mpfr_init(r26112);
        mpfr_init(r26113);
        mpfr_init(r26114);
        mpfr_init(r26115);
        mpfr_init(r26116);
        mpfr_init(r26117);
        mpfr_init(r26118);
        mpfr_init_set_str(r26119, "-1.2335051430803896e-303", 10, MPFR_RNDN);
        mpfr_init(r26120);
        mpfr_init_set_str(r26121, "1", 10, MPFR_RNDN);
        mpfr_init(r26122);
        mpfr_init(r26123);
        mpfr_init(r26124);
        mpfr_init(r26125);
        mpfr_init_set_str(r26126, "1.7197487698494e-313", 10, MPFR_RNDN);
        mpfr_init(r26127);
        mpfr_init(r26128);
        mpfr_init(r26129);
        mpfr_init(r26130);
        mpfr_init(r26131);
        mpfr_init(r26132);
        mpfr_init(r26133);
        mpfr_init(r26134);
        mpfr_init(r26135);
        mpfr_init(r26136);
        mpfr_init(r26137);
}

double f_dm(double c0, double A, double V, double l) {
        mpfr_set_d(r26108, A, MPFR_RNDN);
        mpfr_set_d(r26109, V, MPFR_RNDN);
        mpfr_div(r26110, r26108, r26109, MPFR_RNDN);
        ;
        mpfr_set_si(r26112, mpfr_cmp(r26110, r26111) <= 0, MPFR_RNDN);
        mpfr_set_d(r26113, c0, MPFR_RNDN);
        mpfr_set_d(r26114, l, MPFR_RNDN);
        mpfr_mul(r26115, r26109, r26114, MPFR_RNDN);
        mpfr_div(r26116, r26108, r26115, MPFR_RNDN);
        mpfr_sqrt(r26117, r26116, MPFR_RNDN);
        mpfr_mul(r26118, r26113, r26117, MPFR_RNDN);
        ;
        mpfr_set_si(r26120, mpfr_cmp(r26110, r26119) <= 0, MPFR_RNDN);
        ;
        mpfr_div(r26122, r26121, r26114, MPFR_RNDN);
        mpfr_mul(r26123, r26110, r26122, MPFR_RNDN);
        mpfr_sqrt(r26124, r26123, MPFR_RNDN);
        mpfr_mul(r26125, r26113, r26124, MPFR_RNDN);
        ;
        mpfr_set_si(r26127, mpfr_cmp(r26110, r26126) <= 0, MPFR_RNDN);
        mpfr_sqrt(r26128, r26117, MPFR_RNDN);
        mpfr_mul(r26129, r26113, r26128, MPFR_RNDN);
        mpfr_mul(r26130, r26129, r26128, MPFR_RNDN);
        mpfr_sqrt(r26131, r26110, MPFR_RNDN);
        mpfr_mul(r26132, r26113, r26131, MPFR_RNDN);
        mpfr_sqrt(r26133, r26114, MPFR_RNDN);
        mpfr_div(r26134, r26132, r26133, MPFR_RNDN);
        if (mpfr_get_si(r26127, MPFR_RNDN)) { mpfr_set(r26135, r26130, MPFR_RNDN); } else { mpfr_set(r26135, r26134, MPFR_RNDN); };
        if (mpfr_get_si(r26120, MPFR_RNDN)) { mpfr_set(r26136, r26125, MPFR_RNDN); } else { mpfr_set(r26136, r26135, MPFR_RNDN); };
        if (mpfr_get_si(r26112, MPFR_RNDN)) { mpfr_set(r26137, r26118, MPFR_RNDN); } else { mpfr_set(r26137, r26136, MPFR_RNDN); };
        return mpfr_get_d(r26137, MPFR_RNDN);
}

