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

char *name = "Bulmash initializePoisson";

double f_if(float NdChar, float Ec, float Vef, float EDonor, float mu, float KbT, float NaChar, float Ev, float EAccept) {
        float r11552 = NdChar;
        float r11553 = 1;
        float r11554 = Ec;
        float r11555 = Vef;
        float r11556 = r11554 - r11555;
        float r11557 = EDonor;
        float r11558 = r11556 - r11557;
        float r11559 = mu;
        float r11560 = r11558 - r11559;
        float r11561 = -r11560;
        float r11562 = KbT;
        float r11563 = r11561 / r11562;
        float r11564 = exp(r11563);
        float r11565 = r11553 + r11564;
        float r11566 = r11552 / r11565;
        float r11567 = NaChar;
        float r11568 = Ev;
        float r11569 = r11568 + r11555;
        float r11570 = EAccept;
        float r11571 = r11569 + r11570;
        float r11572 = -r11559;
        float r11573 = r11571 + r11572;
        float r11574 = r11573 / r11562;
        float r11575 = exp(r11574);
        float r11576 = r11553 + r11575;
        float r11577 = r11567 / r11576;
        float r11578 = r11566 + r11577;
        return r11578;
}

double f_id(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
        double r11579 = NdChar;
        double r11580 = 1;
        double r11581 = Ec;
        double r11582 = Vef;
        double r11583 = r11581 - r11582;
        double r11584 = EDonor;
        double r11585 = r11583 - r11584;
        double r11586 = mu;
        double r11587 = r11585 - r11586;
        double r11588 = -r11587;
        double r11589 = KbT;
        double r11590 = r11588 / r11589;
        double r11591 = exp(r11590);
        double r11592 = r11580 + r11591;
        double r11593 = r11579 / r11592;
        double r11594 = NaChar;
        double r11595 = Ev;
        double r11596 = r11595 + r11582;
        double r11597 = EAccept;
        double r11598 = r11596 + r11597;
        double r11599 = -r11586;
        double r11600 = r11598 + r11599;
        double r11601 = r11600 / r11589;
        double r11602 = exp(r11601);
        double r11603 = r11580 + r11602;
        double r11604 = r11594 / r11603;
        double r11605 = r11593 + r11604;
        return r11605;
}


double f_of(float NdChar, float Ec, float Vef, float EDonor, float mu, float KbT, float NaChar, float Ev, float EAccept) {
        float r11606 = NdChar;
        float r11607 = 1;
        float r11608 = Ec;
        float r11609 = Vef;
        float r11610 = r11608 - r11609;
        float r11611 = EDonor;
        float r11612 = r11610 - r11611;
        float r11613 = mu;
        float r11614 = r11612 - r11613;
        float r11615 = -r11614;
        float r11616 = KbT;
        float r11617 = r11615 / r11616;
        float r11618 = exp(r11617);
        float r11619 = r11607 + r11618;
        float r11620 = r11606 / r11619;
        float r11621 = NaChar;
        float r11622 = EAccept;
        float r11623 = r11622 + r11609;
        float r11624 = Ev;
        float r11625 = r11613 - r11624;
        float r11626 = r11623 - r11625;
        float r11627 = r11626 / r11616;
        float r11628 = exp(r11627);
        float r11629 = cbrt(r11628);
        float r11630 = exp(1.0);
        float r11631 = pow(r11630, r11627);
        float r11632 = cbrt(r11631);
        float r11633 = r11629 * r11632;
        float r11634 = r11609 - r11613;
        float r11635 = r11622 + r11624;
        float r11636 = r11634 + r11635;
        float r11637 = r11636 / r11616;
        float r11638 = exp(r11637);
        float r11639 = cbrt(r11638);
        float r11640 = r11633 * r11639;
        float r11641 = r11607 + r11640;
        float r11642 = r11621 / r11641;
        float r11643 = r11620 + r11642;
        return r11643;
}

double f_od(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
        double r11644 = NdChar;
        double r11645 = 1;
        double r11646 = Ec;
        double r11647 = Vef;
        double r11648 = r11646 - r11647;
        double r11649 = EDonor;
        double r11650 = r11648 - r11649;
        double r11651 = mu;
        double r11652 = r11650 - r11651;
        double r11653 = -r11652;
        double r11654 = KbT;
        double r11655 = r11653 / r11654;
        double r11656 = exp(r11655);
        double r11657 = r11645 + r11656;
        double r11658 = r11644 / r11657;
        double r11659 = NaChar;
        double r11660 = EAccept;
        double r11661 = r11660 + r11647;
        double r11662 = Ev;
        double r11663 = r11651 - r11662;
        double r11664 = r11661 - r11663;
        double r11665 = r11664 / r11654;
        double r11666 = exp(r11665);
        double r11667 = cbrt(r11666);
        double r11668 = exp(1.0);
        double r11669 = pow(r11668, r11665);
        double r11670 = cbrt(r11669);
        double r11671 = r11667 * r11670;
        double r11672 = r11647 - r11651;
        double r11673 = r11660 + r11662;
        double r11674 = r11672 + r11673;
        double r11675 = r11674 / r11654;
        double r11676 = exp(r11675);
        double r11677 = cbrt(r11676);
        double r11678 = r11671 * r11677;
        double r11679 = r11645 + r11678;
        double r11680 = r11659 / r11679;
        double r11681 = r11658 + r11680;
        return r11681;
}

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 r11682, r11683, r11684, r11685, r11686, r11687, r11688, r11689, r11690, r11691, r11692, r11693, r11694, r11695, r11696, r11697, r11698, r11699, r11700, r11701, r11702, r11703, r11704, r11705, r11706, r11707, r11708;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init(r11682);
        mpfr_init_set_str(r11683, "1", 10, MPFR_RNDN);
        mpfr_init(r11684);
        mpfr_init(r11685);
        mpfr_init(r11686);
        mpfr_init(r11687);
        mpfr_init(r11688);
        mpfr_init(r11689);
        mpfr_init(r11690);
        mpfr_init(r11691);
        mpfr_init(r11692);
        mpfr_init(r11693);
        mpfr_init(r11694);
        mpfr_init(r11695);
        mpfr_init(r11696);
        mpfr_init(r11697);
        mpfr_init(r11698);
        mpfr_init(r11699);
        mpfr_init(r11700);
        mpfr_init(r11701);
        mpfr_init(r11702);
        mpfr_init(r11703);
        mpfr_init(r11704);
        mpfr_init(r11705);
        mpfr_init(r11706);
        mpfr_init(r11707);
        mpfr_init(r11708);
}

double f_im(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
        mpfr_set_d(r11682, NdChar, MPFR_RNDN);
        ;
        mpfr_set_d(r11684, Ec, MPFR_RNDN);
        mpfr_set_d(r11685, Vef, MPFR_RNDN);
        mpfr_sub(r11686, r11684, r11685, MPFR_RNDN);
        mpfr_set_d(r11687, EDonor, MPFR_RNDN);
        mpfr_sub(r11688, r11686, r11687, MPFR_RNDN);
        mpfr_set_d(r11689, mu, MPFR_RNDN);
        mpfr_sub(r11690, r11688, r11689, MPFR_RNDN);
        mpfr_neg(r11691, r11690, MPFR_RNDN);
        mpfr_set_d(r11692, KbT, MPFR_RNDN);
        mpfr_div(r11693, r11691, r11692, MPFR_RNDN);
        mpfr_exp(r11694, r11693, MPFR_RNDN);
        mpfr_add(r11695, r11683, r11694, MPFR_RNDN);
        mpfr_div(r11696, r11682, r11695, MPFR_RNDN);
        mpfr_set_d(r11697, NaChar, MPFR_RNDN);
        mpfr_set_d(r11698, Ev, MPFR_RNDN);
        mpfr_add(r11699, r11698, r11685, MPFR_RNDN);
        mpfr_set_d(r11700, EAccept, MPFR_RNDN);
        mpfr_add(r11701, r11699, r11700, MPFR_RNDN);
        mpfr_neg(r11702, r11689, MPFR_RNDN);
        mpfr_add(r11703, r11701, r11702, MPFR_RNDN);
        mpfr_div(r11704, r11703, r11692, MPFR_RNDN);
        mpfr_exp(r11705, r11704, MPFR_RNDN);
        mpfr_add(r11706, r11683, r11705, MPFR_RNDN);
        mpfr_div(r11707, r11697, r11706, MPFR_RNDN);
        mpfr_add(r11708, r11696, r11707, MPFR_RNDN);
        return mpfr_get_d(r11708, MPFR_RNDN);
}

static mpfr_t r11709, r11710, r11711, r11712, r11713, r11714, r11715, r11716, r11717, r11718, r11719, r11720, r11721, r11722, r11723, r11724, r11725, r11726, r11727, r11728, r11729, r11730, r11731, r11732, r11733, r11734, r11735, r11736, r11737, r11738, r11739, r11740, r11741, r11742, r11743, r11744, r11745, r11746;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init(r11709);
        mpfr_init_set_str(r11710, "1", 10, MPFR_RNDN);
        mpfr_init(r11711);
        mpfr_init(r11712);
        mpfr_init(r11713);
        mpfr_init(r11714);
        mpfr_init(r11715);
        mpfr_init(r11716);
        mpfr_init(r11717);
        mpfr_init(r11718);
        mpfr_init(r11719);
        mpfr_init(r11720);
        mpfr_init(r11721);
        mpfr_init(r11722);
        mpfr_init(r11723);
        mpfr_init(r11724);
        mpfr_init(r11725);
        mpfr_init(r11726);
        mpfr_init(r11727);
        mpfr_init(r11728);
        mpfr_init(r11729);
        mpfr_init(r11730);
        mpfr_init(r11731);
        mpfr_init(r11732);
        mpfr_init(r11733);
        mpfr_init(r11734);
        mpfr_init(r11735);
        mpfr_init(r11736);
        mpfr_init(r11737);
        mpfr_init(r11738);
        mpfr_init(r11739);
        mpfr_init(r11740);
        mpfr_init(r11741);
        mpfr_init(r11742);
        mpfr_init(r11743);
        mpfr_init(r11744);
        mpfr_init(r11745);
        mpfr_init(r11746);
}

double f_fm(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
        mpfr_set_d(r11709, NdChar, MPFR_RNDN);
        ;
        mpfr_set_d(r11711, Ec, MPFR_RNDN);
        mpfr_set_d(r11712, Vef, MPFR_RNDN);
        mpfr_sub(r11713, r11711, r11712, MPFR_RNDN);
        mpfr_set_d(r11714, EDonor, MPFR_RNDN);
        mpfr_sub(r11715, r11713, r11714, MPFR_RNDN);
        mpfr_set_d(r11716, mu, MPFR_RNDN);
        mpfr_sub(r11717, r11715, r11716, MPFR_RNDN);
        mpfr_neg(r11718, r11717, MPFR_RNDN);
        mpfr_set_d(r11719, KbT, MPFR_RNDN);
        mpfr_div(r11720, r11718, r11719, MPFR_RNDN);
        mpfr_exp(r11721, r11720, MPFR_RNDN);
        mpfr_add(r11722, r11710, r11721, MPFR_RNDN);
        mpfr_div(r11723, r11709, r11722, MPFR_RNDN);
        mpfr_set_d(r11724, NaChar, MPFR_RNDN);
        mpfr_set_d(r11725, EAccept, MPFR_RNDN);
        mpfr_add(r11726, r11725, r11712, MPFR_RNDN);
        mpfr_set_d(r11727, Ev, MPFR_RNDN);
        mpfr_sub(r11728, r11716, r11727, MPFR_RNDN);
        mpfr_sub(r11729, r11726, r11728, MPFR_RNDN);
        mpfr_div(r11730, r11729, r11719, MPFR_RNDN);
        mpfr_exp(r11731, r11730, MPFR_RNDN);
        mpfr_cbrt(r11732, r11731, MPFR_RNDN);
        mpfr_set_si(r11733, 1, MPFR_RNDN), mpfr_const_exp(r11733, r11733, MPFR_RNDN);
        mpfr_pow(r11734, r11733, r11730, MPFR_RNDN);
        mpfr_cbrt(r11735, r11734, MPFR_RNDN);
        mpfr_mul(r11736, r11732, r11735, MPFR_RNDN);
        mpfr_sub(r11737, r11712, r11716, MPFR_RNDN);
        mpfr_add(r11738, r11725, r11727, MPFR_RNDN);
        mpfr_add(r11739, r11737, r11738, MPFR_RNDN);
        mpfr_div(r11740, r11739, r11719, MPFR_RNDN);
        mpfr_exp(r11741, r11740, MPFR_RNDN);
        mpfr_cbrt(r11742, r11741, MPFR_RNDN);
        mpfr_mul(r11743, r11736, r11742, MPFR_RNDN);
        mpfr_add(r11744, r11710, r11743, MPFR_RNDN);
        mpfr_div(r11745, r11724, r11744, MPFR_RNDN);
        mpfr_add(r11746, r11723, r11745, MPFR_RNDN);
        return mpfr_get_d(r11746, MPFR_RNDN);
}

static mpfr_t r11747, r11748, r11749, r11750, r11751, r11752, r11753, r11754, r11755, r11756, r11757, r11758, r11759, r11760, r11761, r11762, r11763, r11764, r11765, r11766, r11767, r11768, r11769, r11770, r11771, r11772, r11773, r11774, r11775, r11776, r11777, r11778, r11779, r11780, r11781, r11782, r11783, r11784;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r11747);
        mpfr_init_set_str(r11748, "1", 10, MPFR_RNDN);
        mpfr_init(r11749);
        mpfr_init(r11750);
        mpfr_init(r11751);
        mpfr_init(r11752);
        mpfr_init(r11753);
        mpfr_init(r11754);
        mpfr_init(r11755);
        mpfr_init(r11756);
        mpfr_init(r11757);
        mpfr_init(r11758);
        mpfr_init(r11759);
        mpfr_init(r11760);
        mpfr_init(r11761);
        mpfr_init(r11762);
        mpfr_init(r11763);
        mpfr_init(r11764);
        mpfr_init(r11765);
        mpfr_init(r11766);
        mpfr_init(r11767);
        mpfr_init(r11768);
        mpfr_init(r11769);
        mpfr_init(r11770);
        mpfr_init(r11771);
        mpfr_init(r11772);
        mpfr_init(r11773);
        mpfr_init(r11774);
        mpfr_init(r11775);
        mpfr_init(r11776);
        mpfr_init(r11777);
        mpfr_init(r11778);
        mpfr_init(r11779);
        mpfr_init(r11780);
        mpfr_init(r11781);
        mpfr_init(r11782);
        mpfr_init(r11783);
        mpfr_init(r11784);
}

double f_dm(double NdChar, double Ec, double Vef, double EDonor, double mu, double KbT, double NaChar, double Ev, double EAccept) {
        mpfr_set_d(r11747, NdChar, MPFR_RNDN);
        ;
        mpfr_set_d(r11749, Ec, MPFR_RNDN);
        mpfr_set_d(r11750, Vef, MPFR_RNDN);
        mpfr_sub(r11751, r11749, r11750, MPFR_RNDN);
        mpfr_set_d(r11752, EDonor, MPFR_RNDN);
        mpfr_sub(r11753, r11751, r11752, MPFR_RNDN);
        mpfr_set_d(r11754, mu, MPFR_RNDN);
        mpfr_sub(r11755, r11753, r11754, MPFR_RNDN);
        mpfr_neg(r11756, r11755, MPFR_RNDN);
        mpfr_set_d(r11757, KbT, MPFR_RNDN);
        mpfr_div(r11758, r11756, r11757, MPFR_RNDN);
        mpfr_exp(r11759, r11758, MPFR_RNDN);
        mpfr_add(r11760, r11748, r11759, MPFR_RNDN);
        mpfr_div(r11761, r11747, r11760, MPFR_RNDN);
        mpfr_set_d(r11762, NaChar, MPFR_RNDN);
        mpfr_set_d(r11763, EAccept, MPFR_RNDN);
        mpfr_add(r11764, r11763, r11750, MPFR_RNDN);
        mpfr_set_d(r11765, Ev, MPFR_RNDN);
        mpfr_sub(r11766, r11754, r11765, MPFR_RNDN);
        mpfr_sub(r11767, r11764, r11766, MPFR_RNDN);
        mpfr_div(r11768, r11767, r11757, MPFR_RNDN);
        mpfr_exp(r11769, r11768, MPFR_RNDN);
        mpfr_cbrt(r11770, r11769, MPFR_RNDN);
        mpfr_set_si(r11771, 1, MPFR_RNDN), mpfr_const_exp(r11771, r11771, MPFR_RNDN);
        mpfr_pow(r11772, r11771, r11768, MPFR_RNDN);
        mpfr_cbrt(r11773, r11772, MPFR_RNDN);
        mpfr_mul(r11774, r11770, r11773, MPFR_RNDN);
        mpfr_sub(r11775, r11750, r11754, MPFR_RNDN);
        mpfr_add(r11776, r11763, r11765, MPFR_RNDN);
        mpfr_add(r11777, r11775, r11776, MPFR_RNDN);
        mpfr_div(r11778, r11777, r11757, MPFR_RNDN);
        mpfr_exp(r11779, r11778, MPFR_RNDN);
        mpfr_cbrt(r11780, r11779, MPFR_RNDN);
        mpfr_mul(r11781, r11774, r11780, MPFR_RNDN);
        mpfr_add(r11782, r11748, r11781, MPFR_RNDN);
        mpfr_div(r11783, r11762, r11782, MPFR_RNDN);
        mpfr_add(r11784, r11761, r11783, MPFR_RNDN);
        return mpfr_get_d(r11784, MPFR_RNDN);
}

