#include <tgmath.h>
#include <gmp.h>
#include <mpfr.h>
#include <stdio.h>
#include <stdbool.h>

char *name = "Henrywood and Agarwal, Equation (12)";

double f_if(float d, float h, float l, float M, float D) {
        float r9439 = d;
        float r9440 = h;
        float r9441 = r9439 / r9440;
        float r9442 = 1.0f;
        float r9443 = 2.0f;
        float r9444 = r9442 / r9443;
        float r9445 = pow(r9441, r9444);
        float r9446 = l;
        float r9447 = r9439 / r9446;
        float r9448 = pow(r9447, r9444);
        float r9449 = r9445 * r9448;
        float r9450 = M;
        float r9451 = D;
        float r9452 = r9450 * r9451;
        float r9453 = r9443 * r9439;
        float r9454 = r9452 / r9453;
        float r9455 = pow(r9454, r9443);
        float r9456 = r9444 * r9455;
        float r9457 = r9440 / r9446;
        float r9458 = r9456 * r9457;
        float r9459 = r9442 - r9458;
        float r9460 = r9449 * r9459;
        return r9460;
}

double f_id(double d, double h, double l, double M, double D) {
        double r9461 = d;
        double r9462 = h;
        double r9463 = r9461 / r9462;
        double r9464 = 1.0;
        double r9465 = 2.0;
        double r9466 = r9464 / r9465;
        double r9467 = pow(r9463, r9466);
        double r9468 = l;
        double r9469 = r9461 / r9468;
        double r9470 = pow(r9469, r9466);
        double r9471 = r9467 * r9470;
        double r9472 = M;
        double r9473 = D;
        double r9474 = r9472 * r9473;
        double r9475 = r9465 * r9461;
        double r9476 = r9474 / r9475;
        double r9477 = pow(r9476, r9465);
        double r9478 = r9466 * r9477;
        double r9479 = r9462 / r9468;
        double r9480 = r9478 * r9479;
        double r9481 = r9464 - r9480;
        double r9482 = r9471 * r9481;
        return r9482;
}


double f_of(float d, float h, float l, float M, float D) {
        float r9483 = h;
        float r9484 = -3.764381787251415e-72f;
        bool r9485 = r9483 <= r9484;
        float r9486 = d;
        float r9487 = r9486 / r9483;
        float r9488 = 1.0f;
        float r9489 = 2.0f;
        float r9490 = r9488 / r9489;
        float r9491 = pow(r9487, r9490);
        float r9492 = -1.0f;
        float r9493 = l;
        float r9494 = r9492 / r9493;
        float r9495 = sqrt(r9494);
        float r9496 = r9492 / r9486;
        float r9497 = 0.5f;
        float r9498 = pow(r9496, r9497);
        float r9499 = r9495 / r9498;
        float r9500 = r9491 * r9499;
        float r9501 = r9486 * r9489;
        float r9502 = r9488 / r9501;
        float r9503 = M;
        float r9504 = D;
        float r9505 = r9503 * r9504;
        float r9506 = r9502 * r9505;
        float r9507 = pow(r9506, r9489);
        float r9508 = r9507 * r9490;
        float r9509 = r9483 * r9508;
        float r9510 = r9509 / r9493;
        float r9511 = r9488 - r9510;
        float r9512 = r9500 * r9511;
        float r9513 = 2.25962810701194e-310f;
        bool r9514 = r9483 <= r9513;
        float r9515 = r9492 / r9483;
        float r9516 = sqrt(r9515);
        float r9517 = r9516 / r9498;
        float r9518 = r9486 / r9493;
        float r9519 = pow(r9518, r9490);
        float r9520 = r9517 * r9519;
        float r9521 = r9511 * r9520;
        float r9522 = 3.2401082412735674e-257f;
        bool r9523 = r9483 <= r9522;
        float r9524 = sqrt(r9486);
        float r9525 = pow(r9483, r9497);
        float r9526 = r9524 / r9525;
        float r9527 = r9519 * r9526;
        float r9528 = r9511 * r9527;
        float r9529 = pow(r9493, r9497);
        float r9530 = r9524 / r9529;
        float r9531 = r9530 * r9491;
        float r9532 = r9511 * r9531;
        float r9533 = r9523 ? r9528 : r9532;
        float r9534 = r9514 ? r9521 : r9533;
        float r9535 = r9485 ? r9512 : r9534;
        return r9535;
}

double f_od(double d, double h, double l, double M, double D) {
        double r9536 = h;
        double r9537 = -3.764381787251415e-72;
        bool r9538 = r9536 <= r9537;
        double r9539 = d;
        double r9540 = r9539 / r9536;
        double r9541 = 1.0;
        double r9542 = 2.0;
        double r9543 = r9541 / r9542;
        double r9544 = pow(r9540, r9543);
        double r9545 = -1.0;
        double r9546 = l;
        double r9547 = r9545 / r9546;
        double r9548 = sqrt(r9547);
        double r9549 = r9545 / r9539;
        double r9550 = 0.5;
        double r9551 = pow(r9549, r9550);
        double r9552 = r9548 / r9551;
        double r9553 = r9544 * r9552;
        double r9554 = r9539 * r9542;
        double r9555 = r9541 / r9554;
        double r9556 = M;
        double r9557 = D;
        double r9558 = r9556 * r9557;
        double r9559 = r9555 * r9558;
        double r9560 = pow(r9559, r9542);
        double r9561 = r9560 * r9543;
        double r9562 = r9536 * r9561;
        double r9563 = r9562 / r9546;
        double r9564 = r9541 - r9563;
        double r9565 = r9553 * r9564;
        double r9566 = 2.25962810701194e-310;
        bool r9567 = r9536 <= r9566;
        double r9568 = r9545 / r9536;
        double r9569 = sqrt(r9568);
        double r9570 = r9569 / r9551;
        double r9571 = r9539 / r9546;
        double r9572 = pow(r9571, r9543);
        double r9573 = r9570 * r9572;
        double r9574 = r9564 * r9573;
        double r9575 = 3.2401082412735674e-257;
        bool r9576 = r9536 <= r9575;
        double r9577 = sqrt(r9539);
        double r9578 = pow(r9536, r9550);
        double r9579 = r9577 / r9578;
        double r9580 = r9572 * r9579;
        double r9581 = r9564 * r9580;
        double r9582 = pow(r9546, r9550);
        double r9583 = r9577 / r9582;
        double r9584 = r9583 * r9544;
        double r9585 = r9564 * r9584;
        double r9586 = r9576 ? r9581 : r9585;
        double r9587 = r9567 ? r9574 : r9586;
        double r9588 = r9538 ? r9565 : r9587;
        return r9588;
}

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 r9589, r9590, r9591, r9592, r9593, r9594, r9595, r9596, r9597, r9598, r9599, r9600, r9601, r9602, r9603, r9604, r9605, r9606, r9607, r9608, r9609, r9610;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r9589);
        mpfr_init(r9590);
        mpfr_init(r9591);
        mpfr_init_set_str(r9592, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r9593, "2", 10, MPFR_RNDN);
        mpfr_init(r9594);
        mpfr_init(r9595);
        mpfr_init(r9596);
        mpfr_init(r9597);
        mpfr_init(r9598);
        mpfr_init(r9599);
        mpfr_init(r9600);
        mpfr_init(r9601);
        mpfr_init(r9602);
        mpfr_init(r9603);
        mpfr_init(r9604);
        mpfr_init(r9605);
        mpfr_init(r9606);
        mpfr_init(r9607);
        mpfr_init(r9608);
        mpfr_init(r9609);
        mpfr_init(r9610);
}

double f_im(double d, double h, double l, double M, double D) {
        mpfr_set_d(r9589, d, MPFR_RNDN);
        mpfr_set_d(r9590, h, MPFR_RNDN);
        mpfr_div(r9591, r9589, r9590, MPFR_RNDN);
        ;
        ;
        mpfr_div(r9594, r9592, r9593, MPFR_RNDN);
        mpfr_pow(r9595, r9591, r9594, MPFR_RNDN);
        mpfr_set_d(r9596, l, MPFR_RNDN);
        mpfr_div(r9597, r9589, r9596, MPFR_RNDN);
        mpfr_pow(r9598, r9597, r9594, MPFR_RNDN);
        mpfr_mul(r9599, r9595, r9598, MPFR_RNDN);
        mpfr_set_d(r9600, M, MPFR_RNDN);
        mpfr_set_d(r9601, D, MPFR_RNDN);
        mpfr_mul(r9602, r9600, r9601, MPFR_RNDN);
        mpfr_mul(r9603, r9593, r9589, MPFR_RNDN);
        mpfr_div(r9604, r9602, r9603, MPFR_RNDN);
        mpfr_pow(r9605, r9604, r9593, MPFR_RNDN);
        mpfr_mul(r9606, r9594, r9605, MPFR_RNDN);
        mpfr_div(r9607, r9590, r9596, MPFR_RNDN);
        mpfr_mul(r9608, r9606, r9607, MPFR_RNDN);
        mpfr_sub(r9609, r9592, r9608, MPFR_RNDN);
        mpfr_mul(r9610, r9599, r9609, MPFR_RNDN);
        return mpfr_get_d(r9610, MPFR_RNDN);
}

static mpfr_t r9611, r9612, r9613, r9614, r9615, r9616, r9617, r9618, r9619, r9620, r9621, r9622, r9623, r9624, r9625, r9626, r9627, r9628, r9629, r9630, r9631, r9632, r9633, r9634, r9635, r9636, r9637, r9638, r9639, r9640, r9641, r9642, r9643, r9644, r9645, r9646, r9647, r9648, r9649, r9650, r9651, r9652, r9653, r9654, r9655, r9656, r9657, r9658, r9659, r9660, r9661, r9662, r9663;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init(r9611);
        mpfr_init_set_str(r9612, "-3.764381787251415e-72", 10, MPFR_RNDN);
        mpfr_init(r9613);
        mpfr_init(r9614);
        mpfr_init(r9615);
        mpfr_init_set_str(r9616, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r9617, "2", 10, MPFR_RNDN);
        mpfr_init(r9618);
        mpfr_init(r9619);
        mpfr_init_set_str(r9620, "-1", 10, MPFR_RNDN);
        mpfr_init(r9621);
        mpfr_init(r9622);
        mpfr_init(r9623);
        mpfr_init(r9624);
        mpfr_init_set_str(r9625, "1/2", 10, MPFR_RNDN);
        mpfr_init(r9626);
        mpfr_init(r9627);
        mpfr_init(r9628);
        mpfr_init(r9629);
        mpfr_init(r9630);
        mpfr_init(r9631);
        mpfr_init(r9632);
        mpfr_init(r9633);
        mpfr_init(r9634);
        mpfr_init(r9635);
        mpfr_init(r9636);
        mpfr_init(r9637);
        mpfr_init(r9638);
        mpfr_init(r9639);
        mpfr_init(r9640);
        mpfr_init_set_str(r9641, "2.25962810701194e-310", 10, MPFR_RNDN);
        mpfr_init(r9642);
        mpfr_init(r9643);
        mpfr_init(r9644);
        mpfr_init(r9645);
        mpfr_init(r9646);
        mpfr_init(r9647);
        mpfr_init(r9648);
        mpfr_init(r9649);
        mpfr_init_set_str(r9650, "3.2401082412735674e-257", 10, MPFR_RNDN);
        mpfr_init(r9651);
        mpfr_init(r9652);
        mpfr_init(r9653);
        mpfr_init(r9654);
        mpfr_init(r9655);
        mpfr_init(r9656);
        mpfr_init(r9657);
        mpfr_init(r9658);
        mpfr_init(r9659);
        mpfr_init(r9660);
        mpfr_init(r9661);
        mpfr_init(r9662);
        mpfr_init(r9663);
}

double f_fm(double d, double h, double l, double M, double D) {
        mpfr_set_d(r9611, h, MPFR_RNDN);
        ;
        mpfr_set_si(r9613, mpfr_cmp(r9611, r9612) <= 0, MPFR_RNDN);
        mpfr_set_d(r9614, d, MPFR_RNDN);
        mpfr_div(r9615, r9614, r9611, MPFR_RNDN);
        ;
        ;
        mpfr_div(r9618, r9616, r9617, MPFR_RNDN);
        mpfr_pow(r9619, r9615, r9618, MPFR_RNDN);
        ;
        mpfr_set_d(r9621, l, MPFR_RNDN);
        mpfr_div(r9622, r9620, r9621, MPFR_RNDN);
        mpfr_sqrt(r9623, r9622, MPFR_RNDN);
        mpfr_div(r9624, r9620, r9614, MPFR_RNDN);
        ;
        mpfr_pow(r9626, r9624, r9625, MPFR_RNDN);
        mpfr_div(r9627, r9623, r9626, MPFR_RNDN);
        mpfr_mul(r9628, r9619, r9627, MPFR_RNDN);
        mpfr_mul(r9629, r9614, r9617, MPFR_RNDN);
        mpfr_div(r9630, r9616, r9629, MPFR_RNDN);
        mpfr_set_d(r9631, M, MPFR_RNDN);
        mpfr_set_d(r9632, D, MPFR_RNDN);
        mpfr_mul(r9633, r9631, r9632, MPFR_RNDN);
        mpfr_mul(r9634, r9630, r9633, MPFR_RNDN);
        mpfr_pow(r9635, r9634, r9617, MPFR_RNDN);
        mpfr_mul(r9636, r9635, r9618, MPFR_RNDN);
        mpfr_mul(r9637, r9611, r9636, MPFR_RNDN);
        mpfr_div(r9638, r9637, r9621, MPFR_RNDN);
        mpfr_sub(r9639, r9616, r9638, MPFR_RNDN);
        mpfr_mul(r9640, r9628, r9639, MPFR_RNDN);
        ;
        mpfr_set_si(r9642, mpfr_cmp(r9611, r9641) <= 0, MPFR_RNDN);
        mpfr_div(r9643, r9620, r9611, MPFR_RNDN);
        mpfr_sqrt(r9644, r9643, MPFR_RNDN);
        mpfr_div(r9645, r9644, r9626, MPFR_RNDN);
        mpfr_div(r9646, r9614, r9621, MPFR_RNDN);
        mpfr_pow(r9647, r9646, r9618, MPFR_RNDN);
        mpfr_mul(r9648, r9645, r9647, MPFR_RNDN);
        mpfr_mul(r9649, r9639, r9648, MPFR_RNDN);
        ;
        mpfr_set_si(r9651, mpfr_cmp(r9611, r9650) <= 0, MPFR_RNDN);
        mpfr_sqrt(r9652, r9614, MPFR_RNDN);
        mpfr_pow(r9653, r9611, r9625, MPFR_RNDN);
        mpfr_div(r9654, r9652, r9653, MPFR_RNDN);
        mpfr_mul(r9655, r9647, r9654, MPFR_RNDN);
        mpfr_mul(r9656, r9639, r9655, MPFR_RNDN);
        mpfr_pow(r9657, r9621, r9625, MPFR_RNDN);
        mpfr_div(r9658, r9652, r9657, MPFR_RNDN);
        mpfr_mul(r9659, r9658, r9619, MPFR_RNDN);
        mpfr_mul(r9660, r9639, r9659, MPFR_RNDN);
        if (mpfr_get_si(r9651, MPFR_RNDN)) { mpfr_set(r9661, r9656, MPFR_RNDN); } else { mpfr_set(r9661, r9660, MPFR_RNDN); };
        if (mpfr_get_si(r9642, MPFR_RNDN)) { mpfr_set(r9662, r9649, MPFR_RNDN); } else { mpfr_set(r9662, r9661, MPFR_RNDN); };
        if (mpfr_get_si(r9613, MPFR_RNDN)) { mpfr_set(r9663, r9640, MPFR_RNDN); } else { mpfr_set(r9663, r9662, MPFR_RNDN); };
        return mpfr_get_d(r9663, MPFR_RNDN);
}

static mpfr_t r9664, r9665, r9666, r9667, r9668, r9669, r9670, r9671, r9672, r9673, r9674, r9675, r9676, r9677, r9678, r9679, r9680, r9681, r9682, r9683, r9684, r9685, r9686, r9687, r9688, r9689, r9690, r9691, r9692, r9693, r9694, r9695, r9696, r9697, r9698, r9699, r9700, r9701, r9702, r9703, r9704, r9705, r9706, r9707, r9708, r9709, r9710, r9711, r9712, r9713, r9714, r9715, r9716;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r9664);
        mpfr_init_set_str(r9665, "-3.764381787251415e-72", 10, MPFR_RNDN);
        mpfr_init(r9666);
        mpfr_init(r9667);
        mpfr_init(r9668);
        mpfr_init_set_str(r9669, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r9670, "2", 10, MPFR_RNDN);
        mpfr_init(r9671);
        mpfr_init(r9672);
        mpfr_init_set_str(r9673, "-1", 10, MPFR_RNDN);
        mpfr_init(r9674);
        mpfr_init(r9675);
        mpfr_init(r9676);
        mpfr_init(r9677);
        mpfr_init_set_str(r9678, "1/2", 10, MPFR_RNDN);
        mpfr_init(r9679);
        mpfr_init(r9680);
        mpfr_init(r9681);
        mpfr_init(r9682);
        mpfr_init(r9683);
        mpfr_init(r9684);
        mpfr_init(r9685);
        mpfr_init(r9686);
        mpfr_init(r9687);
        mpfr_init(r9688);
        mpfr_init(r9689);
        mpfr_init(r9690);
        mpfr_init(r9691);
        mpfr_init(r9692);
        mpfr_init(r9693);
        mpfr_init_set_str(r9694, "2.25962810701194e-310", 10, MPFR_RNDN);
        mpfr_init(r9695);
        mpfr_init(r9696);
        mpfr_init(r9697);
        mpfr_init(r9698);
        mpfr_init(r9699);
        mpfr_init(r9700);
        mpfr_init(r9701);
        mpfr_init(r9702);
        mpfr_init_set_str(r9703, "3.2401082412735674e-257", 10, MPFR_RNDN);
        mpfr_init(r9704);
        mpfr_init(r9705);
        mpfr_init(r9706);
        mpfr_init(r9707);
        mpfr_init(r9708);
        mpfr_init(r9709);
        mpfr_init(r9710);
        mpfr_init(r9711);
        mpfr_init(r9712);
        mpfr_init(r9713);
        mpfr_init(r9714);
        mpfr_init(r9715);
        mpfr_init(r9716);
}

double f_dm(double d, double h, double l, double M, double D) {
        mpfr_set_d(r9664, h, MPFR_RNDN);
        ;
        mpfr_set_si(r9666, mpfr_cmp(r9664, r9665) <= 0, MPFR_RNDN);
        mpfr_set_d(r9667, d, MPFR_RNDN);
        mpfr_div(r9668, r9667, r9664, MPFR_RNDN);
        ;
        ;
        mpfr_div(r9671, r9669, r9670, MPFR_RNDN);
        mpfr_pow(r9672, r9668, r9671, MPFR_RNDN);
        ;
        mpfr_set_d(r9674, l, MPFR_RNDN);
        mpfr_div(r9675, r9673, r9674, MPFR_RNDN);
        mpfr_sqrt(r9676, r9675, MPFR_RNDN);
        mpfr_div(r9677, r9673, r9667, MPFR_RNDN);
        ;
        mpfr_pow(r9679, r9677, r9678, MPFR_RNDN);
        mpfr_div(r9680, r9676, r9679, MPFR_RNDN);
        mpfr_mul(r9681, r9672, r9680, MPFR_RNDN);
        mpfr_mul(r9682, r9667, r9670, MPFR_RNDN);
        mpfr_div(r9683, r9669, r9682, MPFR_RNDN);
        mpfr_set_d(r9684, M, MPFR_RNDN);
        mpfr_set_d(r9685, D, MPFR_RNDN);
        mpfr_mul(r9686, r9684, r9685, MPFR_RNDN);
        mpfr_mul(r9687, r9683, r9686, MPFR_RNDN);
        mpfr_pow(r9688, r9687, r9670, MPFR_RNDN);
        mpfr_mul(r9689, r9688, r9671, MPFR_RNDN);
        mpfr_mul(r9690, r9664, r9689, MPFR_RNDN);
        mpfr_div(r9691, r9690, r9674, MPFR_RNDN);
        mpfr_sub(r9692, r9669, r9691, MPFR_RNDN);
        mpfr_mul(r9693, r9681, r9692, MPFR_RNDN);
        ;
        mpfr_set_si(r9695, mpfr_cmp(r9664, r9694) <= 0, MPFR_RNDN);
        mpfr_div(r9696, r9673, r9664, MPFR_RNDN);
        mpfr_sqrt(r9697, r9696, MPFR_RNDN);
        mpfr_div(r9698, r9697, r9679, MPFR_RNDN);
        mpfr_div(r9699, r9667, r9674, MPFR_RNDN);
        mpfr_pow(r9700, r9699, r9671, MPFR_RNDN);
        mpfr_mul(r9701, r9698, r9700, MPFR_RNDN);
        mpfr_mul(r9702, r9692, r9701, MPFR_RNDN);
        ;
        mpfr_set_si(r9704, mpfr_cmp(r9664, r9703) <= 0, MPFR_RNDN);
        mpfr_sqrt(r9705, r9667, MPFR_RNDN);
        mpfr_pow(r9706, r9664, r9678, MPFR_RNDN);
        mpfr_div(r9707, r9705, r9706, MPFR_RNDN);
        mpfr_mul(r9708, r9700, r9707, MPFR_RNDN);
        mpfr_mul(r9709, r9692, r9708, MPFR_RNDN);
        mpfr_pow(r9710, r9674, r9678, MPFR_RNDN);
        mpfr_div(r9711, r9705, r9710, MPFR_RNDN);
        mpfr_mul(r9712, r9711, r9672, MPFR_RNDN);
        mpfr_mul(r9713, r9692, r9712, MPFR_RNDN);
        if (mpfr_get_si(r9704, MPFR_RNDN)) { mpfr_set(r9714, r9709, MPFR_RNDN); } else { mpfr_set(r9714, r9713, MPFR_RNDN); };
        if (mpfr_get_si(r9695, MPFR_RNDN)) { mpfr_set(r9715, r9702, MPFR_RNDN); } else { mpfr_set(r9715, r9714, MPFR_RNDN); };
        if (mpfr_get_si(r9666, MPFR_RNDN)) { mpfr_set(r9716, r9693, MPFR_RNDN); } else { mpfr_set(r9716, r9715, MPFR_RNDN); };
        return mpfr_get_d(r9716, MPFR_RNDN);
}

