#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 r26044 = c0;
        float r26045 = A;
        float r26046 = V;
        float r26047 = l;
        float r26048 = r26046 * r26047;
        float r26049 = r26045 / r26048;
        float r26050 = sqrt(r26049);
        float r26051 = r26044 * r26050;
        return r26051;
}

double f_id(double c0, double A, double V, double l) {
        double r26052 = c0;
        double r26053 = A;
        double r26054 = V;
        double r26055 = l;
        double r26056 = r26054 * r26055;
        double r26057 = r26053 / r26056;
        double r26058 = sqrt(r26057);
        double r26059 = r26052 * r26058;
        return r26059;
}


double f_of(float c0, float A, float V, float l) {
        float r26060 = A;
        float r26061 = V;
        float r26062 = r26060 / r26061;
        float r26063 = sqrt(r26062);
        float r26064 = 3.1448335805233198e-161;
        bool r26065 = r26063 <= r26064;
        float r26066 = c0;
        float r26067 = l;
        float r26068 = r26061 * r26067;
        float r26069 = r26060 / r26068;
        float r26070 = sqrt(r26069);
        float r26071 = r26066 * r26070;
        float r26072 = 4.872100606542268e+135;
        bool r26073 = r26063 <= r26072;
        float r26074 = sqrt(r26067);
        float r26075 = r26063 / r26074;
        float r26076 = r26066 * r26075;
        float r26077 = r26062 / r26067;
        float r26078 = sqrt(r26077);
        float r26079 = r26066 * r26078;
        float r26080 = r26073 ? r26076 : r26079;
        float r26081 = r26065 ? r26071 : r26080;
        return r26081;
}

double f_od(double c0, double A, double V, double l) {
        double r26082 = A;
        double r26083 = V;
        double r26084 = r26082 / r26083;
        double r26085 = sqrt(r26084);
        double r26086 = 3.1448335805233198e-161;
        bool r26087 = r26085 <= r26086;
        double r26088 = c0;
        double r26089 = l;
        double r26090 = r26083 * r26089;
        double r26091 = r26082 / r26090;
        double r26092 = sqrt(r26091);
        double r26093 = r26088 * r26092;
        double r26094 = 4.872100606542268e+135;
        bool r26095 = r26085 <= r26094;
        double r26096 = sqrt(r26089);
        double r26097 = r26085 / r26096;
        double r26098 = r26088 * r26097;
        double r26099 = r26084 / r26089;
        double r26100 = sqrt(r26099);
        double r26101 = r26088 * r26100;
        double r26102 = r26095 ? r26098 : r26101;
        double r26103 = r26087 ? r26093 : r26102;
        return r26103;
}

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 r26104, r26105, r26106, r26107, r26108, r26109, r26110, r26111;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r26104);
        mpfr_init(r26105);
        mpfr_init(r26106);
        mpfr_init(r26107);
        mpfr_init(r26108);
        mpfr_init(r26109);
        mpfr_init(r26110);
        mpfr_init(r26111);
}

double f_im(double c0, double A, double V, double l) {
        mpfr_set_d(r26104, c0, MPFR_RNDN);
        mpfr_set_d(r26105, A, MPFR_RNDN);
        mpfr_set_d(r26106, V, MPFR_RNDN);
        mpfr_set_d(r26107, l, MPFR_RNDN);
        mpfr_mul(r26108, r26106, r26107, MPFR_RNDN);
        mpfr_div(r26109, r26105, r26108, MPFR_RNDN);
        mpfr_sqrt(r26110, r26109, MPFR_RNDN);
        mpfr_mul(r26111, r26104, r26110, MPFR_RNDN);
        return mpfr_get_d(r26111, MPFR_RNDN);
}

static mpfr_t r26112, r26113, r26114, r26115, r26116, r26117, r26118, r26119, r26120, r26121, r26122, r26123, r26124, r26125, r26126, r26127, r26128, r26129, r26130, r26131, r26132, r26133;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init(r26112);
        mpfr_init(r26113);
        mpfr_init(r26114);
        mpfr_init(r26115);
        mpfr_init_set_str(r26116, "3.1448335805233198e-161", 10, MPFR_RNDN);
        mpfr_init(r26117);
        mpfr_init(r26118);
        mpfr_init(r26119);
        mpfr_init(r26120);
        mpfr_init(r26121);
        mpfr_init(r26122);
        mpfr_init(r26123);
        mpfr_init_set_str(r26124, "4.872100606542268e+135", 10, MPFR_RNDN);
        mpfr_init(r26125);
        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_fm(double c0, double A, double V, double l) {
        mpfr_set_d(r26112, A, MPFR_RNDN);
        mpfr_set_d(r26113, V, MPFR_RNDN);
        mpfr_div(r26114, r26112, r26113, MPFR_RNDN);
        mpfr_sqrt(r26115, r26114, MPFR_RNDN);
        ;
        mpfr_set_si(r26117, mpfr_cmp(r26115, r26116) <= 0, MPFR_RNDN);
        mpfr_set_d(r26118, c0, MPFR_RNDN);
        mpfr_set_d(r26119, l, MPFR_RNDN);
        mpfr_mul(r26120, r26113, r26119, MPFR_RNDN);
        mpfr_div(r26121, r26112, r26120, MPFR_RNDN);
        mpfr_sqrt(r26122, r26121, MPFR_RNDN);
        mpfr_mul(r26123, r26118, r26122, MPFR_RNDN);
        ;
        mpfr_set_si(r26125, mpfr_cmp(r26115, r26124) <= 0, MPFR_RNDN);
        mpfr_sqrt(r26126, r26119, MPFR_RNDN);
        mpfr_div(r26127, r26115, r26126, MPFR_RNDN);
        mpfr_mul(r26128, r26118, r26127, MPFR_RNDN);
        mpfr_div(r26129, r26114, r26119, MPFR_RNDN);
        mpfr_sqrt(r26130, r26129, MPFR_RNDN);
        mpfr_mul(r26131, r26118, r26130, MPFR_RNDN);
        if (mpfr_get_si(r26125, MPFR_RNDN)) { mpfr_set(r26132, r26128, MPFR_RNDN); } else { mpfr_set(r26132, r26131, MPFR_RNDN); };
        if (mpfr_get_si(r26117, MPFR_RNDN)) { mpfr_set(r26133, r26123, MPFR_RNDN); } else { mpfr_set(r26133, 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;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r26134);
        mpfr_init(r26135);
        mpfr_init(r26136);
        mpfr_init(r26137);
        mpfr_init_set_str(r26138, "3.1448335805233198e-161", 10, MPFR_RNDN);
        mpfr_init(r26139);
        mpfr_init(r26140);
        mpfr_init(r26141);
        mpfr_init(r26142);
        mpfr_init(r26143);
        mpfr_init(r26144);
        mpfr_init(r26145);
        mpfr_init_set_str(r26146, "4.872100606542268e+135", 10, MPFR_RNDN);
        mpfr_init(r26147);
        mpfr_init(r26148);
        mpfr_init(r26149);
        mpfr_init(r26150);
        mpfr_init(r26151);
        mpfr_init(r26152);
        mpfr_init(r26153);
        mpfr_init(r26154);
        mpfr_init(r26155);
}

double f_dm(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_sqrt(r26137, r26136, MPFR_RNDN);
        ;
        mpfr_set_si(r26139, mpfr_cmp(r26137, r26138) <= 0, MPFR_RNDN);
        mpfr_set_d(r26140, c0, MPFR_RNDN);
        mpfr_set_d(r26141, l, MPFR_RNDN);
        mpfr_mul(r26142, r26135, r26141, MPFR_RNDN);
        mpfr_div(r26143, r26134, r26142, MPFR_RNDN);
        mpfr_sqrt(r26144, r26143, MPFR_RNDN);
        mpfr_mul(r26145, r26140, r26144, MPFR_RNDN);
        ;
        mpfr_set_si(r26147, mpfr_cmp(r26137, r26146) <= 0, MPFR_RNDN);
        mpfr_sqrt(r26148, r26141, MPFR_RNDN);
        mpfr_div(r26149, r26137, r26148, MPFR_RNDN);
        mpfr_mul(r26150, r26140, r26149, MPFR_RNDN);
        mpfr_div(r26151, r26136, r26141, MPFR_RNDN);
        mpfr_sqrt(r26152, r26151, MPFR_RNDN);
        mpfr_mul(r26153, r26140, r26152, MPFR_RNDN);
        if (mpfr_get_si(r26147, MPFR_RNDN)) { mpfr_set(r26154, r26150, MPFR_RNDN); } else { mpfr_set(r26154, r26153, MPFR_RNDN); };
        if (mpfr_get_si(r26139, MPFR_RNDN)) { mpfr_set(r26155, r26145, MPFR_RNDN); } else { mpfr_set(r26155, r26154, MPFR_RNDN); };
        return mpfr_get_d(r26155, MPFR_RNDN);
}

