#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 r26310 = c0;
        float r26311 = A;
        float r26312 = V;
        float r26313 = l;
        float r26314 = r26312 * r26313;
        float r26315 = r26311 / r26314;
        float r26316 = sqrt(r26315);
        float r26317 = r26310 * r26316;
        return r26317;
}

double f_id(double c0, double A, double V, double l) {
        double r26318 = c0;
        double r26319 = A;
        double r26320 = V;
        double r26321 = l;
        double r26322 = r26320 * r26321;
        double r26323 = r26319 / r26322;
        double r26324 = sqrt(r26323);
        double r26325 = r26318 * r26324;
        return r26325;
}


double f_of(float c0, float A, float V, float l) {
        float r26326 = A;
        float r26327 = V;
        float r26328 = r26326 / r26327;
        float r26329 = cbrt(r26328);
        float r26330 = -3.1075060750859332e+94;
        bool r26331 = r26329 <= r26330;
        float r26332 = 1;
        float r26333 = l;
        float r26334 = r26333 * r26327;
        float r26335 = r26332 / r26334;
        float r26336 = sqrt(r26335);
        float r26337 = sqrt(r26326);
        float r26338 = c0;
        float r26339 = r26337 * r26338;
        float r26340 = r26336 * r26339;
        float r26341 = -3.888209825783696e-14;
        bool r26342 = r26329 <= r26341;
        float r26343 = r26329 * r26329;
        float r26344 = r26333 / r26329;
        float r26345 = r26343 / r26344;
        float r26346 = sqrt(r26345);
        float r26347 = r26338 * r26346;
        float r26348 = 4.158883047889409e-100;
        bool r26349 = r26329 <= r26348;
        float r26350 = 8.507545563998866e+100;
        bool r26351 = r26329 <= r26350;
        float r26352 = !r26351;
        bool r26353 = r26349 || r26352;
        float r26354 = r26326 / r26334;
        float r26355 = sqrt(r26354);
        float r26356 = sqrt(r26355);
        float r26357 = r26356 * r26338;
        float r26358 = r26356 * r26357;
        float r26359 = sqrt(r26328);
        float r26360 = sqrt(r26333);
        float r26361 = r26359 / r26360;
        float r26362 = r26361 * r26338;
        float r26363 = r26353 ? r26358 : r26362;
        float r26364 = r26342 ? r26347 : r26363;
        float r26365 = r26331 ? r26340 : r26364;
        return r26365;
}

double f_od(double c0, double A, double V, double l) {
        double r26366 = A;
        double r26367 = V;
        double r26368 = r26366 / r26367;
        double r26369 = cbrt(r26368);
        double r26370 = -3.1075060750859332e+94;
        bool r26371 = r26369 <= r26370;
        double r26372 = 1;
        double r26373 = l;
        double r26374 = r26373 * r26367;
        double r26375 = r26372 / r26374;
        double r26376 = sqrt(r26375);
        double r26377 = sqrt(r26366);
        double r26378 = c0;
        double r26379 = r26377 * r26378;
        double r26380 = r26376 * r26379;
        double r26381 = -3.888209825783696e-14;
        bool r26382 = r26369 <= r26381;
        double r26383 = r26369 * r26369;
        double r26384 = r26373 / r26369;
        double r26385 = r26383 / r26384;
        double r26386 = sqrt(r26385);
        double r26387 = r26378 * r26386;
        double r26388 = 4.158883047889409e-100;
        bool r26389 = r26369 <= r26388;
        double r26390 = 8.507545563998866e+100;
        bool r26391 = r26369 <= r26390;
        double r26392 = !r26391;
        bool r26393 = r26389 || r26392;
        double r26394 = r26366 / r26374;
        double r26395 = sqrt(r26394);
        double r26396 = sqrt(r26395);
        double r26397 = r26396 * r26378;
        double r26398 = r26396 * r26397;
        double r26399 = sqrt(r26368);
        double r26400 = sqrt(r26373);
        double r26401 = r26399 / r26400;
        double r26402 = r26401 * r26378;
        double r26403 = r26393 ? r26398 : r26402;
        double r26404 = r26382 ? r26387 : r26403;
        double r26405 = r26371 ? r26380 : r26404;
        return r26405;
}

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 r26406, r26407, r26408, r26409, r26410, r26411, r26412, r26413;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r26406);
        mpfr_init(r26407);
        mpfr_init(r26408);
        mpfr_init(r26409);
        mpfr_init(r26410);
        mpfr_init(r26411);
        mpfr_init(r26412);
        mpfr_init(r26413);
}

double f_im(double c0, double A, double V, double l) {
        mpfr_set_d(r26406, c0, MPFR_RNDN);
        mpfr_set_d(r26407, A, MPFR_RNDN);
        mpfr_set_d(r26408, V, MPFR_RNDN);
        mpfr_set_d(r26409, l, MPFR_RNDN);
        mpfr_mul(r26410, r26408, r26409, MPFR_RNDN);
        mpfr_div(r26411, r26407, r26410, MPFR_RNDN);
        mpfr_sqrt(r26412, r26411, MPFR_RNDN);
        mpfr_mul(r26413, r26406, r26412, MPFR_RNDN);
        return mpfr_get_d(r26413, MPFR_RNDN);
}

static mpfr_t r26414, r26415, r26416, r26417, r26418, r26419, r26420, r26421, r26422, r26423, r26424, r26425, r26426, r26427, r26428, r26429, r26430, r26431, r26432, r26433, r26434, r26435, r26436, r26437, r26438, r26439, r26440, r26441, r26442, r26443, r26444, r26445, r26446, r26447, r26448, r26449, r26450, r26451, r26452, r26453;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init(r26414);
        mpfr_init(r26415);
        mpfr_init(r26416);
        mpfr_init(r26417);
        mpfr_init_set_str(r26418, "-3.1075060750859332e+94", 10, MPFR_RNDN);
        mpfr_init(r26419);
        mpfr_init_set_str(r26420, "1", 10, MPFR_RNDN);
        mpfr_init(r26421);
        mpfr_init(r26422);
        mpfr_init(r26423);
        mpfr_init(r26424);
        mpfr_init(r26425);
        mpfr_init(r26426);
        mpfr_init(r26427);
        mpfr_init(r26428);
        mpfr_init_set_str(r26429, "-3.888209825783696e-14", 10, MPFR_RNDN);
        mpfr_init(r26430);
        mpfr_init(r26431);
        mpfr_init(r26432);
        mpfr_init(r26433);
        mpfr_init(r26434);
        mpfr_init(r26435);
        mpfr_init_set_str(r26436, "4.158883047889409e-100", 10, MPFR_RNDN);
        mpfr_init(r26437);
        mpfr_init_set_str(r26438, "8.507545563998866e+100", 10, MPFR_RNDN);
        mpfr_init(r26439);
        mpfr_init(r26440);
        mpfr_init(r26441);
        mpfr_init(r26442);
        mpfr_init(r26443);
        mpfr_init(r26444);
        mpfr_init(r26445);
        mpfr_init(r26446);
        mpfr_init(r26447);
        mpfr_init(r26448);
        mpfr_init(r26449);
        mpfr_init(r26450);
        mpfr_init(r26451);
        mpfr_init(r26452);
        mpfr_init(r26453);
}

double f_fm(double c0, double A, double V, double l) {
        mpfr_set_d(r26414, A, MPFR_RNDN);
        mpfr_set_d(r26415, V, MPFR_RNDN);
        mpfr_div(r26416, r26414, r26415, MPFR_RNDN);
        mpfr_cbrt(r26417, r26416, MPFR_RNDN);
        ;
        mpfr_set_si(r26419, mpfr_cmp(r26417, r26418) <= 0, MPFR_RNDN);
        ;
        mpfr_set_d(r26421, l, MPFR_RNDN);
        mpfr_mul(r26422, r26421, r26415, MPFR_RNDN);
        mpfr_div(r26423, r26420, r26422, MPFR_RNDN);
        mpfr_sqrt(r26424, r26423, MPFR_RNDN);
        mpfr_sqrt(r26425, r26414, MPFR_RNDN);
        mpfr_set_d(r26426, c0, MPFR_RNDN);
        mpfr_mul(r26427, r26425, r26426, MPFR_RNDN);
        mpfr_mul(r26428, r26424, r26427, MPFR_RNDN);
        ;
        mpfr_set_si(r26430, mpfr_cmp(r26417, r26429) <= 0, MPFR_RNDN);
        mpfr_mul(r26431, r26417, r26417, MPFR_RNDN);
        mpfr_div(r26432, r26421, r26417, MPFR_RNDN);
        mpfr_div(r26433, r26431, r26432, MPFR_RNDN);
        mpfr_sqrt(r26434, r26433, MPFR_RNDN);
        mpfr_mul(r26435, r26426, r26434, MPFR_RNDN);
        ;
        mpfr_set_si(r26437, mpfr_cmp(r26417, r26436) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r26439, mpfr_cmp(r26417, r26438) <= 0, MPFR_RNDN);
        mpfr_set_si(r26440, !mpfr_get_si(r26439, MPFR_RNDN), MPFR_RNDN);
        mpfr_set_si(r26441, mpfr_get_si(r26437, MPFR_RNDN) || mpfr_get_si(r26440, MPFR_RNDN), MPFR_RNDN);
        mpfr_div(r26442, r26414, r26422, MPFR_RNDN);
        mpfr_sqrt(r26443, r26442, MPFR_RNDN);
        mpfr_sqrt(r26444, r26443, MPFR_RNDN);
        mpfr_mul(r26445, r26444, r26426, MPFR_RNDN);
        mpfr_mul(r26446, r26444, r26445, MPFR_RNDN);
        mpfr_sqrt(r26447, r26416, MPFR_RNDN);
        mpfr_sqrt(r26448, r26421, MPFR_RNDN);
        mpfr_div(r26449, r26447, r26448, MPFR_RNDN);
        mpfr_mul(r26450, r26449, r26426, MPFR_RNDN);
        if (mpfr_get_si(r26441, MPFR_RNDN)) { mpfr_set(r26451, r26446, MPFR_RNDN); } else { mpfr_set(r26451, r26450, MPFR_RNDN); };
        if (mpfr_get_si(r26430, MPFR_RNDN)) { mpfr_set(r26452, r26435, MPFR_RNDN); } else { mpfr_set(r26452, r26451, MPFR_RNDN); };
        if (mpfr_get_si(r26419, MPFR_RNDN)) { mpfr_set(r26453, r26428, MPFR_RNDN); } else { mpfr_set(r26453, r26452, MPFR_RNDN); };
        return mpfr_get_d(r26453, MPFR_RNDN);
}

static mpfr_t r26454, r26455, r26456, r26457, r26458, r26459, r26460, r26461, r26462, r26463, r26464, r26465, r26466, r26467, r26468, r26469, r26470, r26471, r26472, r26473, r26474, r26475, r26476, r26477, r26478, r26479, r26480, r26481, r26482, r26483, r26484, r26485, r26486, r26487, r26488, r26489, r26490, r26491, r26492, r26493;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r26454);
        mpfr_init(r26455);
        mpfr_init(r26456);
        mpfr_init(r26457);
        mpfr_init_set_str(r26458, "-3.1075060750859332e+94", 10, MPFR_RNDN);
        mpfr_init(r26459);
        mpfr_init_set_str(r26460, "1", 10, MPFR_RNDN);
        mpfr_init(r26461);
        mpfr_init(r26462);
        mpfr_init(r26463);
        mpfr_init(r26464);
        mpfr_init(r26465);
        mpfr_init(r26466);
        mpfr_init(r26467);
        mpfr_init(r26468);
        mpfr_init_set_str(r26469, "-3.888209825783696e-14", 10, MPFR_RNDN);
        mpfr_init(r26470);
        mpfr_init(r26471);
        mpfr_init(r26472);
        mpfr_init(r26473);
        mpfr_init(r26474);
        mpfr_init(r26475);
        mpfr_init_set_str(r26476, "4.158883047889409e-100", 10, MPFR_RNDN);
        mpfr_init(r26477);
        mpfr_init_set_str(r26478, "8.507545563998866e+100", 10, MPFR_RNDN);
        mpfr_init(r26479);
        mpfr_init(r26480);
        mpfr_init(r26481);
        mpfr_init(r26482);
        mpfr_init(r26483);
        mpfr_init(r26484);
        mpfr_init(r26485);
        mpfr_init(r26486);
        mpfr_init(r26487);
        mpfr_init(r26488);
        mpfr_init(r26489);
        mpfr_init(r26490);
        mpfr_init(r26491);
        mpfr_init(r26492);
        mpfr_init(r26493);
}

double f_dm(double c0, double A, double V, double l) {
        mpfr_set_d(r26454, A, MPFR_RNDN);
        mpfr_set_d(r26455, V, MPFR_RNDN);
        mpfr_div(r26456, r26454, r26455, MPFR_RNDN);
        mpfr_cbrt(r26457, r26456, MPFR_RNDN);
        ;
        mpfr_set_si(r26459, mpfr_cmp(r26457, r26458) <= 0, MPFR_RNDN);
        ;
        mpfr_set_d(r26461, l, MPFR_RNDN);
        mpfr_mul(r26462, r26461, r26455, MPFR_RNDN);
        mpfr_div(r26463, r26460, r26462, MPFR_RNDN);
        mpfr_sqrt(r26464, r26463, MPFR_RNDN);
        mpfr_sqrt(r26465, r26454, MPFR_RNDN);
        mpfr_set_d(r26466, c0, MPFR_RNDN);
        mpfr_mul(r26467, r26465, r26466, MPFR_RNDN);
        mpfr_mul(r26468, r26464, r26467, MPFR_RNDN);
        ;
        mpfr_set_si(r26470, mpfr_cmp(r26457, r26469) <= 0, MPFR_RNDN);
        mpfr_mul(r26471, r26457, r26457, MPFR_RNDN);
        mpfr_div(r26472, r26461, r26457, MPFR_RNDN);
        mpfr_div(r26473, r26471, r26472, MPFR_RNDN);
        mpfr_sqrt(r26474, r26473, MPFR_RNDN);
        mpfr_mul(r26475, r26466, r26474, MPFR_RNDN);
        ;
        mpfr_set_si(r26477, mpfr_cmp(r26457, r26476) <= 0, MPFR_RNDN);
        ;
        mpfr_set_si(r26479, mpfr_cmp(r26457, r26478) <= 0, MPFR_RNDN);
        mpfr_set_si(r26480, !mpfr_get_si(r26479, MPFR_RNDN), MPFR_RNDN);
        mpfr_set_si(r26481, mpfr_get_si(r26477, MPFR_RNDN) || mpfr_get_si(r26480, MPFR_RNDN), MPFR_RNDN);
        mpfr_div(r26482, r26454, r26462, MPFR_RNDN);
        mpfr_sqrt(r26483, r26482, MPFR_RNDN);
        mpfr_sqrt(r26484, r26483, MPFR_RNDN);
        mpfr_mul(r26485, r26484, r26466, MPFR_RNDN);
        mpfr_mul(r26486, r26484, r26485, MPFR_RNDN);
        mpfr_sqrt(r26487, r26456, MPFR_RNDN);
        mpfr_sqrt(r26488, r26461, MPFR_RNDN);
        mpfr_div(r26489, r26487, r26488, MPFR_RNDN);
        mpfr_mul(r26490, r26489, r26466, MPFR_RNDN);
        if (mpfr_get_si(r26481, MPFR_RNDN)) { mpfr_set(r26491, r26486, MPFR_RNDN); } else { mpfr_set(r26491, r26490, MPFR_RNDN); };
        if (mpfr_get_si(r26470, MPFR_RNDN)) { mpfr_set(r26492, r26475, MPFR_RNDN); } else { mpfr_set(r26492, r26491, MPFR_RNDN); };
        if (mpfr_get_si(r26459, MPFR_RNDN)) { mpfr_set(r26493, r26468, MPFR_RNDN); } else { mpfr_set(r26493, r26492, MPFR_RNDN); };
        return mpfr_get_d(r26493, MPFR_RNDN);
}

