#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 r10332 = c0;
        float r10333 = A;
        float r10334 = V;
        float r10335 = l;
        float r10336 = r10334 * r10335;
        float r10337 = r10333 / r10336;
        float r10338 = sqrt(r10337);
        float r10339 = r10332 * r10338;
        return r10339;
}

double f_id(double c0, double A, double V, double l) {
        double r10340 = c0;
        double r10341 = A;
        double r10342 = V;
        double r10343 = l;
        double r10344 = r10342 * r10343;
        double r10345 = r10341 / r10344;
        double r10346 = sqrt(r10345);
        double r10347 = r10340 * r10346;
        return r10347;
}


double f_of(float c0, float A, float V, float l) {
        float r10348 = 1;
        float r10349 = V;
        float r10350 = l;
        float r10351 = r10349 * r10350;
        float r10352 = r10348 / r10351;
        float r10353 = -4.144937970461657e+303;
        bool r10354 = r10352 <= r10353;
        float r10355 = c0;
        float r10356 = A;
        float r10357 = r10356 / r10350;
        float r10358 = r10357 / r10349;
        float r10359 = cbrt(r10358);
        float r10360 = sqrt(r10359);
        float r10361 = r10355 * r10360;
        float r10362 = fabs(r10359);
        float r10363 = r10361 * r10362;
        float r10364 = -3.542311786339384e-284;
        bool r10365 = r10352 <= r10364;
        float r10366 = r10356 / r10351;
        float r10367 = sqrt(r10366);
        float r10368 = r10355 * r10367;
        float r10369 = 7.889884570616071e-304;
        bool r10370 = r10352 <= r10369;
        float r10371 = r10356 / r10349;
        float r10372 = r10371 / r10350;
        float r10373 = sqrt(r10372);
        float r10374 = r10355 * r10373;
        float r10375 = sqrt(r10356);
        float r10376 = r10355 * r10375;
        float r10377 = sqrt(r10351);
        float r10378 = r10376 / r10377;
        float r10379 = r10370 ? r10374 : r10378;
        float r10380 = r10365 ? r10368 : r10379;
        float r10381 = r10354 ? r10363 : r10380;
        return r10381;
}

double f_od(double c0, double A, double V, double l) {
        double r10382 = 1;
        double r10383 = V;
        double r10384 = l;
        double r10385 = r10383 * r10384;
        double r10386 = r10382 / r10385;
        double r10387 = -4.144937970461657e+303;
        bool r10388 = r10386 <= r10387;
        double r10389 = c0;
        double r10390 = A;
        double r10391 = r10390 / r10384;
        double r10392 = r10391 / r10383;
        double r10393 = cbrt(r10392);
        double r10394 = sqrt(r10393);
        double r10395 = r10389 * r10394;
        double r10396 = fabs(r10393);
        double r10397 = r10395 * r10396;
        double r10398 = -3.542311786339384e-284;
        bool r10399 = r10386 <= r10398;
        double r10400 = r10390 / r10385;
        double r10401 = sqrt(r10400);
        double r10402 = r10389 * r10401;
        double r10403 = 7.889884570616071e-304;
        bool r10404 = r10386 <= r10403;
        double r10405 = r10390 / r10383;
        double r10406 = r10405 / r10384;
        double r10407 = sqrt(r10406);
        double r10408 = r10389 * r10407;
        double r10409 = sqrt(r10390);
        double r10410 = r10389 * r10409;
        double r10411 = sqrt(r10385);
        double r10412 = r10410 / r10411;
        double r10413 = r10404 ? r10408 : r10412;
        double r10414 = r10399 ? r10402 : r10413;
        double r10415 = r10388 ? r10397 : r10414;
        return r10415;
}

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 r10416, r10417, r10418, r10419, r10420, r10421, r10422, r10423;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r10416);
        mpfr_init(r10417);
        mpfr_init(r10418);
        mpfr_init(r10419);
        mpfr_init(r10420);
        mpfr_init(r10421);
        mpfr_init(r10422);
        mpfr_init(r10423);
}

double f_im(double c0, double A, double V, double l) {
        mpfr_set_d(r10416, c0, MPFR_RNDN);
        mpfr_set_d(r10417, A, MPFR_RNDN);
        mpfr_set_d(r10418, V, MPFR_RNDN);
        mpfr_set_d(r10419, l, MPFR_RNDN);
        mpfr_mul(r10420, r10418, r10419, MPFR_RNDN);
        mpfr_div(r10421, r10417, r10420, MPFR_RNDN);
        mpfr_sqrt(r10422, r10421, MPFR_RNDN);
        mpfr_mul(r10423, r10416, r10422, MPFR_RNDN);
        return mpfr_get_d(r10423, MPFR_RNDN);
}

static mpfr_t r10424, r10425, r10426, r10427, r10428, r10429, r10430, r10431, r10432, r10433, r10434, r10435, r10436, r10437, r10438, r10439, r10440, r10441, r10442, r10443, r10444, r10445, r10446, r10447, r10448, r10449, r10450, r10451, r10452, r10453, r10454, r10455, r10456, r10457;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r10424, "1", 10, MPFR_RNDN);
        mpfr_init(r10425);
        mpfr_init(r10426);
        mpfr_init(r10427);
        mpfr_init(r10428);
        mpfr_init_set_str(r10429, "-4.144937970461657e+303", 10, MPFR_RNDN);
        mpfr_init(r10430);
        mpfr_init(r10431);
        mpfr_init(r10432);
        mpfr_init(r10433);
        mpfr_init(r10434);
        mpfr_init(r10435);
        mpfr_init(r10436);
        mpfr_init(r10437);
        mpfr_init(r10438);
        mpfr_init(r10439);
        mpfr_init_set_str(r10440, "-3.542311786339384e-284", 10, MPFR_RNDN);
        mpfr_init(r10441);
        mpfr_init(r10442);
        mpfr_init(r10443);
        mpfr_init(r10444);
        mpfr_init_set_str(r10445, "7.889884570616071e-304", 10, MPFR_RNDN);
        mpfr_init(r10446);
        mpfr_init(r10447);
        mpfr_init(r10448);
        mpfr_init(r10449);
        mpfr_init(r10450);
        mpfr_init(r10451);
        mpfr_init(r10452);
        mpfr_init(r10453);
        mpfr_init(r10454);
        mpfr_init(r10455);
        mpfr_init(r10456);
        mpfr_init(r10457);
}

double f_fm(double c0, double A, double V, double l) {
        ;
        mpfr_set_d(r10425, V, MPFR_RNDN);
        mpfr_set_d(r10426, l, MPFR_RNDN);
        mpfr_mul(r10427, r10425, r10426, MPFR_RNDN);
        mpfr_div(r10428, r10424, r10427, MPFR_RNDN);
        ;
        mpfr_set_si(r10430, mpfr_cmp(r10428, r10429) <= 0, MPFR_RNDN);
        mpfr_set_d(r10431, c0, MPFR_RNDN);
        mpfr_set_d(r10432, A, MPFR_RNDN);
        mpfr_div(r10433, r10432, r10426, MPFR_RNDN);
        mpfr_div(r10434, r10433, r10425, MPFR_RNDN);
        mpfr_cbrt(r10435, r10434, MPFR_RNDN);
        mpfr_sqrt(r10436, r10435, MPFR_RNDN);
        mpfr_mul(r10437, r10431, r10436, MPFR_RNDN);
        mpfr_abs(r10438, r10435, MPFR_RNDN);
        mpfr_mul(r10439, r10437, r10438, MPFR_RNDN);
        ;
        mpfr_set_si(r10441, mpfr_cmp(r10428, r10440) <= 0, MPFR_RNDN);
        mpfr_div(r10442, r10432, r10427, MPFR_RNDN);
        mpfr_sqrt(r10443, r10442, MPFR_RNDN);
        mpfr_mul(r10444, r10431, r10443, MPFR_RNDN);
        ;
        mpfr_set_si(r10446, mpfr_cmp(r10428, r10445) <= 0, MPFR_RNDN);
        mpfr_div(r10447, r10432, r10425, MPFR_RNDN);
        mpfr_div(r10448, r10447, r10426, MPFR_RNDN);
        mpfr_sqrt(r10449, r10448, MPFR_RNDN);
        mpfr_mul(r10450, r10431, r10449, MPFR_RNDN);
        mpfr_sqrt(r10451, r10432, MPFR_RNDN);
        mpfr_mul(r10452, r10431, r10451, MPFR_RNDN);
        mpfr_sqrt(r10453, r10427, MPFR_RNDN);
        mpfr_div(r10454, r10452, r10453, MPFR_RNDN);
        if (mpfr_get_si(r10446, MPFR_RNDN)) { mpfr_set(r10455, r10450, MPFR_RNDN); } else { mpfr_set(r10455, r10454, MPFR_RNDN); };
        if (mpfr_get_si(r10441, MPFR_RNDN)) { mpfr_set(r10456, r10444, MPFR_RNDN); } else { mpfr_set(r10456, r10455, MPFR_RNDN); };
        if (mpfr_get_si(r10430, MPFR_RNDN)) { mpfr_set(r10457, r10439, MPFR_RNDN); } else { mpfr_set(r10457, r10456, MPFR_RNDN); };
        return mpfr_get_d(r10457, MPFR_RNDN);
}

static mpfr_t r10458, r10459, r10460, r10461, r10462, r10463, r10464, r10465, r10466, r10467, r10468, r10469, r10470, r10471, r10472, r10473, r10474, r10475, r10476, r10477, r10478, r10479, r10480, r10481, r10482, r10483, r10484, r10485, r10486, r10487, r10488, r10489, r10490, r10491;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r10458, "1", 10, MPFR_RNDN);
        mpfr_init(r10459);
        mpfr_init(r10460);
        mpfr_init(r10461);
        mpfr_init(r10462);
        mpfr_init_set_str(r10463, "-4.144937970461657e+303", 10, MPFR_RNDN);
        mpfr_init(r10464);
        mpfr_init(r10465);
        mpfr_init(r10466);
        mpfr_init(r10467);
        mpfr_init(r10468);
        mpfr_init(r10469);
        mpfr_init(r10470);
        mpfr_init(r10471);
        mpfr_init(r10472);
        mpfr_init(r10473);
        mpfr_init_set_str(r10474, "-3.542311786339384e-284", 10, MPFR_RNDN);
        mpfr_init(r10475);
        mpfr_init(r10476);
        mpfr_init(r10477);
        mpfr_init(r10478);
        mpfr_init_set_str(r10479, "7.889884570616071e-304", 10, MPFR_RNDN);
        mpfr_init(r10480);
        mpfr_init(r10481);
        mpfr_init(r10482);
        mpfr_init(r10483);
        mpfr_init(r10484);
        mpfr_init(r10485);
        mpfr_init(r10486);
        mpfr_init(r10487);
        mpfr_init(r10488);
        mpfr_init(r10489);
        mpfr_init(r10490);
        mpfr_init(r10491);
}

double f_dm(double c0, double A, double V, double l) {
        ;
        mpfr_set_d(r10459, V, MPFR_RNDN);
        mpfr_set_d(r10460, l, MPFR_RNDN);
        mpfr_mul(r10461, r10459, r10460, MPFR_RNDN);
        mpfr_div(r10462, r10458, r10461, MPFR_RNDN);
        ;
        mpfr_set_si(r10464, mpfr_cmp(r10462, r10463) <= 0, MPFR_RNDN);
        mpfr_set_d(r10465, c0, MPFR_RNDN);
        mpfr_set_d(r10466, A, MPFR_RNDN);
        mpfr_div(r10467, r10466, r10460, MPFR_RNDN);
        mpfr_div(r10468, r10467, r10459, MPFR_RNDN);
        mpfr_cbrt(r10469, r10468, MPFR_RNDN);
        mpfr_sqrt(r10470, r10469, MPFR_RNDN);
        mpfr_mul(r10471, r10465, r10470, MPFR_RNDN);
        mpfr_abs(r10472, r10469, MPFR_RNDN);
        mpfr_mul(r10473, r10471, r10472, MPFR_RNDN);
        ;
        mpfr_set_si(r10475, mpfr_cmp(r10462, r10474) <= 0, MPFR_RNDN);
        mpfr_div(r10476, r10466, r10461, MPFR_RNDN);
        mpfr_sqrt(r10477, r10476, MPFR_RNDN);
        mpfr_mul(r10478, r10465, r10477, MPFR_RNDN);
        ;
        mpfr_set_si(r10480, mpfr_cmp(r10462, r10479) <= 0, MPFR_RNDN);
        mpfr_div(r10481, r10466, r10459, MPFR_RNDN);
        mpfr_div(r10482, r10481, r10460, MPFR_RNDN);
        mpfr_sqrt(r10483, r10482, MPFR_RNDN);
        mpfr_mul(r10484, r10465, r10483, MPFR_RNDN);
        mpfr_sqrt(r10485, r10466, MPFR_RNDN);
        mpfr_mul(r10486, r10465, r10485, MPFR_RNDN);
        mpfr_sqrt(r10487, r10461, MPFR_RNDN);
        mpfr_div(r10488, r10486, r10487, MPFR_RNDN);
        if (mpfr_get_si(r10480, MPFR_RNDN)) { mpfr_set(r10489, r10484, MPFR_RNDN); } else { mpfr_set(r10489, r10488, MPFR_RNDN); };
        if (mpfr_get_si(r10475, MPFR_RNDN)) { mpfr_set(r10490, r10478, MPFR_RNDN); } else { mpfr_set(r10490, r10489, MPFR_RNDN); };
        if (mpfr_get_si(r10464, MPFR_RNDN)) { mpfr_set(r10491, r10473, MPFR_RNDN); } else { mpfr_set(r10491, r10490, MPFR_RNDN); };
        return mpfr_get_d(r10491, MPFR_RNDN);
}

