#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 r25949 = c0;
        float r25950 = A;
        float r25951 = V;
        float r25952 = l;
        float r25953 = r25951 * r25952;
        float r25954 = r25950 / r25953;
        float r25955 = sqrt(r25954);
        float r25956 = r25949 * r25955;
        return r25956;
}

double f_id(double c0, double A, double V, double l) {
        double r25957 = c0;
        double r25958 = A;
        double r25959 = V;
        double r25960 = l;
        double r25961 = r25959 * r25960;
        double r25962 = r25958 / r25961;
        double r25963 = sqrt(r25962);
        double r25964 = r25957 * r25963;
        return r25964;
}


double f_of(float c0, float A, float V, float l) {
        float r25965 = 1;
        float r25966 = V;
        float r25967 = l;
        float r25968 = r25966 * r25967;
        float r25969 = r25965 / r25968;
        float r25970 = -1.765571419611046e+255;
        bool r25971 = r25969 <= r25970;
        float r25972 = c0;
        float r25973 = A;
        float r25974 = r25973 / r25966;
        float r25975 = r25974 / r25967;
        float r25976 = sqrt(r25975);
        float r25977 = r25972 * r25976;
        float r25978 = -1.9034493027992715e-194;
        bool r25979 = r25969 <= r25978;
        float r25980 = r25973 / r25968;
        float r25981 = sqrt(r25980);
        float r25982 = sqrt(r25981);
        float r25983 = r25982 * r25972;
        float r25984 = r25973 * r25969;
        float r25985 = sqrt(r25984);
        float r25986 = sqrt(r25985);
        float r25987 = r25983 * r25986;
        float r25988 = 5.6604306642257075e-300;
        bool r25989 = r25969 <= r25988;
        float r25990 = sqrt(r25973);
        float r25991 = sqrt(r25969);
        float r25992 = r25990 * r25991;
        float r25993 = r25972 * r25992;
        float r25994 = r25989 ? r25977 : r25993;
        float r25995 = r25979 ? r25987 : r25994;
        float r25996 = r25971 ? r25977 : r25995;
        return r25996;
}

double f_od(double c0, double A, double V, double l) {
        double r25997 = 1;
        double r25998 = V;
        double r25999 = l;
        double r26000 = r25998 * r25999;
        double r26001 = r25997 / r26000;
        double r26002 = -1.765571419611046e+255;
        bool r26003 = r26001 <= r26002;
        double r26004 = c0;
        double r26005 = A;
        double r26006 = r26005 / r25998;
        double r26007 = r26006 / r25999;
        double r26008 = sqrt(r26007);
        double r26009 = r26004 * r26008;
        double r26010 = -1.9034493027992715e-194;
        bool r26011 = r26001 <= r26010;
        double r26012 = r26005 / r26000;
        double r26013 = sqrt(r26012);
        double r26014 = sqrt(r26013);
        double r26015 = r26014 * r26004;
        double r26016 = r26005 * r26001;
        double r26017 = sqrt(r26016);
        double r26018 = sqrt(r26017);
        double r26019 = r26015 * r26018;
        double r26020 = 5.6604306642257075e-300;
        bool r26021 = r26001 <= r26020;
        double r26022 = sqrt(r26005);
        double r26023 = sqrt(r26001);
        double r26024 = r26022 * r26023;
        double r26025 = r26004 * r26024;
        double r26026 = r26021 ? r26009 : r26025;
        double r26027 = r26011 ? r26019 : r26026;
        double r26028 = r26003 ? r26009 : r26027;
        return r26028;
}

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 r26029, r26030, r26031, r26032, r26033, r26034, r26035, r26036;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r26029);
        mpfr_init(r26030);
        mpfr_init(r26031);
        mpfr_init(r26032);
        mpfr_init(r26033);
        mpfr_init(r26034);
        mpfr_init(r26035);
        mpfr_init(r26036);
}

double f_im(double c0, double A, double V, double l) {
        mpfr_set_d(r26029, c0, MPFR_RNDN);
        mpfr_set_d(r26030, A, MPFR_RNDN);
        mpfr_set_d(r26031, V, MPFR_RNDN);
        mpfr_set_d(r26032, l, MPFR_RNDN);
        mpfr_mul(r26033, r26031, r26032, MPFR_RNDN);
        mpfr_div(r26034, r26030, r26033, MPFR_RNDN);
        mpfr_sqrt(r26035, r26034, MPFR_RNDN);
        mpfr_mul(r26036, r26029, r26035, MPFR_RNDN);
        return mpfr_get_d(r26036, MPFR_RNDN);
}

static mpfr_t r26037, r26038, r26039, r26040, r26041, r26042, r26043, r26044, r26045, r26046, r26047, r26048, r26049, r26050, r26051, r26052, r26053, r26054, r26055, r26056, r26057, r26058, r26059, r26060, r26061, r26062, r26063, r26064, r26065, r26066, r26067, r26068;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r26037, "1", 10, MPFR_RNDN);
        mpfr_init(r26038);
        mpfr_init(r26039);
        mpfr_init(r26040);
        mpfr_init(r26041);
        mpfr_init_set_str(r26042, "-1.765571419611046e+255", 10, MPFR_RNDN);
        mpfr_init(r26043);
        mpfr_init(r26044);
        mpfr_init(r26045);
        mpfr_init(r26046);
        mpfr_init(r26047);
        mpfr_init(r26048);
        mpfr_init(r26049);
        mpfr_init_set_str(r26050, "-1.9034493027992715e-194", 10, MPFR_RNDN);
        mpfr_init(r26051);
        mpfr_init(r26052);
        mpfr_init(r26053);
        mpfr_init(r26054);
        mpfr_init(r26055);
        mpfr_init(r26056);
        mpfr_init(r26057);
        mpfr_init(r26058);
        mpfr_init(r26059);
        mpfr_init_set_str(r26060, "5.6604306642257075e-300", 10, MPFR_RNDN);
        mpfr_init(r26061);
        mpfr_init(r26062);
        mpfr_init(r26063);
        mpfr_init(r26064);
        mpfr_init(r26065);
        mpfr_init(r26066);
        mpfr_init(r26067);
        mpfr_init(r26068);
}

double f_fm(double c0, double A, double V, double l) {
        ;
        mpfr_set_d(r26038, V, MPFR_RNDN);
        mpfr_set_d(r26039, l, MPFR_RNDN);
        mpfr_mul(r26040, r26038, r26039, MPFR_RNDN);
        mpfr_div(r26041, r26037, r26040, MPFR_RNDN);
        ;
        mpfr_set_si(r26043, mpfr_cmp(r26041, r26042) <= 0, MPFR_RNDN);
        mpfr_set_d(r26044, c0, MPFR_RNDN);
        mpfr_set_d(r26045, A, MPFR_RNDN);
        mpfr_div(r26046, r26045, r26038, MPFR_RNDN);
        mpfr_div(r26047, r26046, r26039, MPFR_RNDN);
        mpfr_sqrt(r26048, r26047, MPFR_RNDN);
        mpfr_mul(r26049, r26044, r26048, MPFR_RNDN);
        ;
        mpfr_set_si(r26051, mpfr_cmp(r26041, r26050) <= 0, MPFR_RNDN);
        mpfr_div(r26052, r26045, r26040, MPFR_RNDN);
        mpfr_sqrt(r26053, r26052, MPFR_RNDN);
        mpfr_sqrt(r26054, r26053, MPFR_RNDN);
        mpfr_mul(r26055, r26054, r26044, MPFR_RNDN);
        mpfr_mul(r26056, r26045, r26041, MPFR_RNDN);
        mpfr_sqrt(r26057, r26056, MPFR_RNDN);
        mpfr_sqrt(r26058, r26057, MPFR_RNDN);
        mpfr_mul(r26059, r26055, r26058, MPFR_RNDN);
        ;
        mpfr_set_si(r26061, mpfr_cmp(r26041, r26060) <= 0, MPFR_RNDN);
        mpfr_sqrt(r26062, r26045, MPFR_RNDN);
        mpfr_sqrt(r26063, r26041, MPFR_RNDN);
        mpfr_mul(r26064, r26062, r26063, MPFR_RNDN);
        mpfr_mul(r26065, r26044, r26064, MPFR_RNDN);
        if (mpfr_get_si(r26061, MPFR_RNDN)) { mpfr_set(r26066, r26049, MPFR_RNDN); } else { mpfr_set(r26066, r26065, MPFR_RNDN); };
        if (mpfr_get_si(r26051, MPFR_RNDN)) { mpfr_set(r26067, r26059, MPFR_RNDN); } else { mpfr_set(r26067, r26066, MPFR_RNDN); };
        if (mpfr_get_si(r26043, MPFR_RNDN)) { mpfr_set(r26068, r26049, MPFR_RNDN); } else { mpfr_set(r26068, r26067, MPFR_RNDN); };
        return mpfr_get_d(r26068, MPFR_RNDN);
}

static mpfr_t r26069, r26070, r26071, r26072, r26073, r26074, r26075, r26076, r26077, r26078, r26079, r26080, r26081, r26082, r26083, r26084, r26085, r26086, r26087, r26088, r26089, r26090, r26091, r26092, r26093, r26094, r26095, r26096, r26097, r26098, r26099, r26100;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r26069, "1", 10, MPFR_RNDN);
        mpfr_init(r26070);
        mpfr_init(r26071);
        mpfr_init(r26072);
        mpfr_init(r26073);
        mpfr_init_set_str(r26074, "-1.765571419611046e+255", 10, MPFR_RNDN);
        mpfr_init(r26075);
        mpfr_init(r26076);
        mpfr_init(r26077);
        mpfr_init(r26078);
        mpfr_init(r26079);
        mpfr_init(r26080);
        mpfr_init(r26081);
        mpfr_init_set_str(r26082, "-1.9034493027992715e-194", 10, MPFR_RNDN);
        mpfr_init(r26083);
        mpfr_init(r26084);
        mpfr_init(r26085);
        mpfr_init(r26086);
        mpfr_init(r26087);
        mpfr_init(r26088);
        mpfr_init(r26089);
        mpfr_init(r26090);
        mpfr_init(r26091);
        mpfr_init_set_str(r26092, "5.6604306642257075e-300", 10, MPFR_RNDN);
        mpfr_init(r26093);
        mpfr_init(r26094);
        mpfr_init(r26095);
        mpfr_init(r26096);
        mpfr_init(r26097);
        mpfr_init(r26098);
        mpfr_init(r26099);
        mpfr_init(r26100);
}

double f_dm(double c0, double A, double V, double l) {
        ;
        mpfr_set_d(r26070, V, MPFR_RNDN);
        mpfr_set_d(r26071, l, MPFR_RNDN);
        mpfr_mul(r26072, r26070, r26071, MPFR_RNDN);
        mpfr_div(r26073, r26069, r26072, MPFR_RNDN);
        ;
        mpfr_set_si(r26075, mpfr_cmp(r26073, r26074) <= 0, MPFR_RNDN);
        mpfr_set_d(r26076, c0, MPFR_RNDN);
        mpfr_set_d(r26077, A, MPFR_RNDN);
        mpfr_div(r26078, r26077, r26070, MPFR_RNDN);
        mpfr_div(r26079, r26078, r26071, MPFR_RNDN);
        mpfr_sqrt(r26080, r26079, MPFR_RNDN);
        mpfr_mul(r26081, r26076, r26080, MPFR_RNDN);
        ;
        mpfr_set_si(r26083, mpfr_cmp(r26073, r26082) <= 0, MPFR_RNDN);
        mpfr_div(r26084, r26077, r26072, MPFR_RNDN);
        mpfr_sqrt(r26085, r26084, MPFR_RNDN);
        mpfr_sqrt(r26086, r26085, MPFR_RNDN);
        mpfr_mul(r26087, r26086, r26076, MPFR_RNDN);
        mpfr_mul(r26088, r26077, r26073, MPFR_RNDN);
        mpfr_sqrt(r26089, r26088, MPFR_RNDN);
        mpfr_sqrt(r26090, r26089, MPFR_RNDN);
        mpfr_mul(r26091, r26087, r26090, MPFR_RNDN);
        ;
        mpfr_set_si(r26093, mpfr_cmp(r26073, r26092) <= 0, MPFR_RNDN);
        mpfr_sqrt(r26094, r26077, MPFR_RNDN);
        mpfr_sqrt(r26095, r26073, MPFR_RNDN);
        mpfr_mul(r26096, r26094, r26095, MPFR_RNDN);
        mpfr_mul(r26097, r26076, r26096, MPFR_RNDN);
        if (mpfr_get_si(r26093, MPFR_RNDN)) { mpfr_set(r26098, r26081, MPFR_RNDN); } else { mpfr_set(r26098, r26097, MPFR_RNDN); };
        if (mpfr_get_si(r26083, MPFR_RNDN)) { mpfr_set(r26099, r26091, MPFR_RNDN); } else { mpfr_set(r26099, r26098, MPFR_RNDN); };
        if (mpfr_get_si(r26075, MPFR_RNDN)) { mpfr_set(r26100, r26081, MPFR_RNDN); } else { mpfr_set(r26100, r26099, MPFR_RNDN); };
        return mpfr_get_d(r26100, MPFR_RNDN);
}

