#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 r10292 = c0;
        float r10293 = A;
        float r10294 = V;
        float r10295 = l;
        float r10296 = r10294 * r10295;
        float r10297 = r10293 / r10296;
        float r10298 = sqrt(r10297);
        float r10299 = r10292 * r10298;
        return r10299;
}

double f_id(double c0, double A, double V, double l) {
        double r10300 = c0;
        double r10301 = A;
        double r10302 = V;
        double r10303 = l;
        double r10304 = r10302 * r10303;
        double r10305 = r10301 / r10304;
        double r10306 = sqrt(r10305);
        double r10307 = r10300 * r10306;
        return r10307;
}


double f_of(float c0, float A, float V, float l) {
        float r10308 = 1;
        float r10309 = V;
        float r10310 = l;
        float r10311 = r10309 * r10310;
        float r10312 = r10308 / r10311;
        float r10313 = -4.3182281409439046e+305;
        bool r10314 = r10312 <= r10313;
        float r10315 = c0;
        float r10316 = A;
        float r10317 = r10316 / r10309;
        float r10318 = r10317 / r10310;
        float r10319 = cbrt(r10318);
        float r10320 = sqrt(r10319);
        float r10321 = r10315 * r10320;
        float r10322 = fabs(r10319);
        float r10323 = r10321 * r10322;
        float r10324 = -3.816355223225376e-133;
        bool r10325 = r10312 <= r10324;
        float r10326 = r10316 / r10311;
        float r10327 = sqrt(r10326);
        float r10328 = r10315 * r10327;
        float r10329 = 7.889884570616071e-304;
        bool r10330 = r10312 <= r10329;
        float r10331 = sqrt(r10318);
        float r10332 = r10315 * r10331;
        float r10333 = sqrt(r10316);
        float r10334 = r10315 * r10333;
        float r10335 = sqrt(r10311);
        float r10336 = r10334 / r10335;
        float r10337 = r10330 ? r10332 : r10336;
        float r10338 = r10325 ? r10328 : r10337;
        float r10339 = r10314 ? r10323 : r10338;
        return r10339;
}

double f_od(double c0, double A, double V, double l) {
        double r10340 = 1;
        double r10341 = V;
        double r10342 = l;
        double r10343 = r10341 * r10342;
        double r10344 = r10340 / r10343;
        double r10345 = -4.3182281409439046e+305;
        bool r10346 = r10344 <= r10345;
        double r10347 = c0;
        double r10348 = A;
        double r10349 = r10348 / r10341;
        double r10350 = r10349 / r10342;
        double r10351 = cbrt(r10350);
        double r10352 = sqrt(r10351);
        double r10353 = r10347 * r10352;
        double r10354 = fabs(r10351);
        double r10355 = r10353 * r10354;
        double r10356 = -3.816355223225376e-133;
        bool r10357 = r10344 <= r10356;
        double r10358 = r10348 / r10343;
        double r10359 = sqrt(r10358);
        double r10360 = r10347 * r10359;
        double r10361 = 7.889884570616071e-304;
        bool r10362 = r10344 <= r10361;
        double r10363 = sqrt(r10350);
        double r10364 = r10347 * r10363;
        double r10365 = sqrt(r10348);
        double r10366 = r10347 * r10365;
        double r10367 = sqrt(r10343);
        double r10368 = r10366 / r10367;
        double r10369 = r10362 ? r10364 : r10368;
        double r10370 = r10357 ? r10360 : r10369;
        double r10371 = r10346 ? r10355 : r10370;
        return r10371;
}

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 r10372, r10373, r10374, r10375, r10376, r10377, r10378, r10379;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r10372);
        mpfr_init(r10373);
        mpfr_init(r10374);
        mpfr_init(r10375);
        mpfr_init(r10376);
        mpfr_init(r10377);
        mpfr_init(r10378);
        mpfr_init(r10379);
}

double f_im(double c0, double A, double V, double l) {
        mpfr_set_d(r10372, c0, MPFR_RNDN);
        mpfr_set_d(r10373, A, MPFR_RNDN);
        mpfr_set_d(r10374, V, MPFR_RNDN);
        mpfr_set_d(r10375, l, MPFR_RNDN);
        mpfr_mul(r10376, r10374, r10375, MPFR_RNDN);
        mpfr_div(r10377, r10373, r10376, MPFR_RNDN);
        mpfr_sqrt(r10378, r10377, MPFR_RNDN);
        mpfr_mul(r10379, r10372, r10378, MPFR_RNDN);
        return mpfr_get_d(r10379, MPFR_RNDN);
}

static mpfr_t r10380, r10381, r10382, r10383, r10384, r10385, r10386, r10387, r10388, r10389, r10390, r10391, r10392, r10393, r10394, r10395, r10396, r10397, r10398, r10399, r10400, r10401, r10402, r10403, r10404, r10405, r10406, r10407, r10408, r10409, r10410, r10411;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r10380, "1", 10, MPFR_RNDN);
        mpfr_init(r10381);
        mpfr_init(r10382);
        mpfr_init(r10383);
        mpfr_init(r10384);
        mpfr_init_set_str(r10385, "-4.3182281409439046e+305", 10, MPFR_RNDN);
        mpfr_init(r10386);
        mpfr_init(r10387);
        mpfr_init(r10388);
        mpfr_init(r10389);
        mpfr_init(r10390);
        mpfr_init(r10391);
        mpfr_init(r10392);
        mpfr_init(r10393);
        mpfr_init(r10394);
        mpfr_init(r10395);
        mpfr_init_set_str(r10396, "-3.816355223225376e-133", 10, MPFR_RNDN);
        mpfr_init(r10397);
        mpfr_init(r10398);
        mpfr_init(r10399);
        mpfr_init(r10400);
        mpfr_init_set_str(r10401, "7.889884570616071e-304", 10, MPFR_RNDN);
        mpfr_init(r10402);
        mpfr_init(r10403);
        mpfr_init(r10404);
        mpfr_init(r10405);
        mpfr_init(r10406);
        mpfr_init(r10407);
        mpfr_init(r10408);
        mpfr_init(r10409);
        mpfr_init(r10410);
        mpfr_init(r10411);
}

double f_fm(double c0, double A, double V, double l) {
        ;
        mpfr_set_d(r10381, V, MPFR_RNDN);
        mpfr_set_d(r10382, l, MPFR_RNDN);
        mpfr_mul(r10383, r10381, r10382, MPFR_RNDN);
        mpfr_div(r10384, r10380, r10383, MPFR_RNDN);
        ;
        mpfr_set_si(r10386, mpfr_cmp(r10384, r10385) <= 0, MPFR_RNDN);
        mpfr_set_d(r10387, c0, MPFR_RNDN);
        mpfr_set_d(r10388, A, MPFR_RNDN);
        mpfr_div(r10389, r10388, r10381, MPFR_RNDN);
        mpfr_div(r10390, r10389, r10382, MPFR_RNDN);
        mpfr_cbrt(r10391, r10390, MPFR_RNDN);
        mpfr_sqrt(r10392, r10391, MPFR_RNDN);
        mpfr_mul(r10393, r10387, r10392, MPFR_RNDN);
        mpfr_abs(r10394, r10391, MPFR_RNDN);
        mpfr_mul(r10395, r10393, r10394, MPFR_RNDN);
        ;
        mpfr_set_si(r10397, mpfr_cmp(r10384, r10396) <= 0, MPFR_RNDN);
        mpfr_div(r10398, r10388, r10383, MPFR_RNDN);
        mpfr_sqrt(r10399, r10398, MPFR_RNDN);
        mpfr_mul(r10400, r10387, r10399, MPFR_RNDN);
        ;
        mpfr_set_si(r10402, mpfr_cmp(r10384, r10401) <= 0, MPFR_RNDN);
        mpfr_sqrt(r10403, r10390, MPFR_RNDN);
        mpfr_mul(r10404, r10387, r10403, MPFR_RNDN);
        mpfr_sqrt(r10405, r10388, MPFR_RNDN);
        mpfr_mul(r10406, r10387, r10405, MPFR_RNDN);
        mpfr_sqrt(r10407, r10383, MPFR_RNDN);
        mpfr_div(r10408, r10406, r10407, MPFR_RNDN);
        if (mpfr_get_si(r10402, MPFR_RNDN)) { mpfr_set(r10409, r10404, MPFR_RNDN); } else { mpfr_set(r10409, r10408, MPFR_RNDN); };
        if (mpfr_get_si(r10397, MPFR_RNDN)) { mpfr_set(r10410, r10400, MPFR_RNDN); } else { mpfr_set(r10410, r10409, MPFR_RNDN); };
        if (mpfr_get_si(r10386, MPFR_RNDN)) { mpfr_set(r10411, r10395, MPFR_RNDN); } else { mpfr_set(r10411, r10410, MPFR_RNDN); };
        return mpfr_get_d(r10411, MPFR_RNDN);
}

static mpfr_t r10412, r10413, r10414, r10415, r10416, r10417, r10418, r10419, r10420, r10421, r10422, r10423, r10424, r10425, r10426, r10427, r10428, r10429, r10430, r10431, r10432, r10433, r10434, r10435, r10436, r10437, r10438, r10439, r10440, r10441, r10442, r10443;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r10412, "1", 10, MPFR_RNDN);
        mpfr_init(r10413);
        mpfr_init(r10414);
        mpfr_init(r10415);
        mpfr_init(r10416);
        mpfr_init_set_str(r10417, "-4.3182281409439046e+305", 10, MPFR_RNDN);
        mpfr_init(r10418);
        mpfr_init(r10419);
        mpfr_init(r10420);
        mpfr_init(r10421);
        mpfr_init(r10422);
        mpfr_init(r10423);
        mpfr_init(r10424);
        mpfr_init(r10425);
        mpfr_init(r10426);
        mpfr_init(r10427);
        mpfr_init_set_str(r10428, "-3.816355223225376e-133", 10, MPFR_RNDN);
        mpfr_init(r10429);
        mpfr_init(r10430);
        mpfr_init(r10431);
        mpfr_init(r10432);
        mpfr_init_set_str(r10433, "7.889884570616071e-304", 10, MPFR_RNDN);
        mpfr_init(r10434);
        mpfr_init(r10435);
        mpfr_init(r10436);
        mpfr_init(r10437);
        mpfr_init(r10438);
        mpfr_init(r10439);
        mpfr_init(r10440);
        mpfr_init(r10441);
        mpfr_init(r10442);
        mpfr_init(r10443);
}

double f_dm(double c0, double A, double V, double l) {
        ;
        mpfr_set_d(r10413, V, MPFR_RNDN);
        mpfr_set_d(r10414, l, MPFR_RNDN);
        mpfr_mul(r10415, r10413, r10414, MPFR_RNDN);
        mpfr_div(r10416, r10412, r10415, MPFR_RNDN);
        ;
        mpfr_set_si(r10418, mpfr_cmp(r10416, r10417) <= 0, MPFR_RNDN);
        mpfr_set_d(r10419, c0, MPFR_RNDN);
        mpfr_set_d(r10420, A, MPFR_RNDN);
        mpfr_div(r10421, r10420, r10413, MPFR_RNDN);
        mpfr_div(r10422, r10421, r10414, MPFR_RNDN);
        mpfr_cbrt(r10423, r10422, MPFR_RNDN);
        mpfr_sqrt(r10424, r10423, MPFR_RNDN);
        mpfr_mul(r10425, r10419, r10424, MPFR_RNDN);
        mpfr_abs(r10426, r10423, MPFR_RNDN);
        mpfr_mul(r10427, r10425, r10426, MPFR_RNDN);
        ;
        mpfr_set_si(r10429, mpfr_cmp(r10416, r10428) <= 0, MPFR_RNDN);
        mpfr_div(r10430, r10420, r10415, MPFR_RNDN);
        mpfr_sqrt(r10431, r10430, MPFR_RNDN);
        mpfr_mul(r10432, r10419, r10431, MPFR_RNDN);
        ;
        mpfr_set_si(r10434, mpfr_cmp(r10416, r10433) <= 0, MPFR_RNDN);
        mpfr_sqrt(r10435, r10422, MPFR_RNDN);
        mpfr_mul(r10436, r10419, r10435, MPFR_RNDN);
        mpfr_sqrt(r10437, r10420, MPFR_RNDN);
        mpfr_mul(r10438, r10419, r10437, MPFR_RNDN);
        mpfr_sqrt(r10439, r10415, MPFR_RNDN);
        mpfr_div(r10440, r10438, r10439, MPFR_RNDN);
        if (mpfr_get_si(r10434, MPFR_RNDN)) { mpfr_set(r10441, r10436, MPFR_RNDN); } else { mpfr_set(r10441, r10440, MPFR_RNDN); };
        if (mpfr_get_si(r10429, MPFR_RNDN)) { mpfr_set(r10442, r10432, MPFR_RNDN); } else { mpfr_set(r10442, r10441, MPFR_RNDN); };
        if (mpfr_get_si(r10418, MPFR_RNDN)) { mpfr_set(r10443, r10427, MPFR_RNDN); } else { mpfr_set(r10443, r10442, MPFR_RNDN); };
        return mpfr_get_d(r10443, MPFR_RNDN);
}

