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

char *name = "Jmat.Real.dawson";

double f_if(float x) {
        float r18575 = 1.0f;
        float r18576 = 0.1049934947f;
        float r18577 = x;
        float r18578 = r18577 * r18577;
        float r18579 = r18576 * r18578;
        float r18580 = r18575 + r18579;
        float r18581 = 0.0424060604f;
        float r18582 = r18578 * r18578;
        float r18583 = r18581 * r18582;
        float r18584 = r18580 + r18583;
        float r18585 = 0.0072644182f;
        float r18586 = r18582 * r18578;
        float r18587 = r18585 * r18586;
        float r18588 = r18584 + r18587;
        float r18589 = 0.0005064034f;
        float r18590 = r18586 * r18578;
        float r18591 = r18589 * r18590;
        float r18592 = r18588 + r18591;
        float r18593 = 0.0001789971f;
        float r18594 = r18590 * r18578;
        float r18595 = r18593 * r18594;
        float r18596 = r18592 + r18595;
        float r18597 = 0.7715471019f;
        float r18598 = r18597 * r18578;
        float r18599 = r18575 + r18598;
        float r18600 = 0.2909738639f;
        float r18601 = r18600 * r18582;
        float r18602 = r18599 + r18601;
        float r18603 = 0.0694555761f;
        float r18604 = r18603 * r18586;
        float r18605 = r18602 + r18604;
        float r18606 = 0.0140005442f;
        float r18607 = r18606 * r18590;
        float r18608 = r18605 + r18607;
        float r18609 = 0.0008327945f;
        float r18610 = r18609 * r18594;
        float r18611 = r18608 + r18610;
        float r18612 = 2.0f;
        float r18613 = r18612 * r18593;
        float r18614 = r18594 * r18578;
        float r18615 = r18613 * r18614;
        float r18616 = r18611 + r18615;
        float r18617 = r18596 / r18616;
        float r18618 = r18617 * r18577;
        return r18618;
}

double f_id(double x) {
        double r18619 = 1.0;
        double r18620 = 0.1049934947;
        double r18621 = x;
        double r18622 = r18621 * r18621;
        double r18623 = r18620 * r18622;
        double r18624 = r18619 + r18623;
        double r18625 = 0.0424060604;
        double r18626 = r18622 * r18622;
        double r18627 = r18625 * r18626;
        double r18628 = r18624 + r18627;
        double r18629 = 0.0072644182;
        double r18630 = r18626 * r18622;
        double r18631 = r18629 * r18630;
        double r18632 = r18628 + r18631;
        double r18633 = 0.0005064034;
        double r18634 = r18630 * r18622;
        double r18635 = r18633 * r18634;
        double r18636 = r18632 + r18635;
        double r18637 = 0.0001789971;
        double r18638 = r18634 * r18622;
        double r18639 = r18637 * r18638;
        double r18640 = r18636 + r18639;
        double r18641 = 0.7715471019;
        double r18642 = r18641 * r18622;
        double r18643 = r18619 + r18642;
        double r18644 = 0.2909738639;
        double r18645 = r18644 * r18626;
        double r18646 = r18643 + r18645;
        double r18647 = 0.0694555761;
        double r18648 = r18647 * r18630;
        double r18649 = r18646 + r18648;
        double r18650 = 0.0140005442;
        double r18651 = r18650 * r18634;
        double r18652 = r18649 + r18651;
        double r18653 = 0.0008327945;
        double r18654 = r18653 * r18638;
        double r18655 = r18652 + r18654;
        double r18656 = 2.0;
        double r18657 = r18656 * r18637;
        double r18658 = r18638 * r18622;
        double r18659 = r18657 * r18658;
        double r18660 = r18655 + r18659;
        double r18661 = r18640 / r18660;
        double r18662 = r18661 * r18621;
        return r18662;
}


double f_of(float x) {
        float r18663 = x;
        float r18664 = 0.0005064034f;
        float r18665 = 8.0f;
        float r18666 = pow(r18663, r18665);
        float r18667 = 0.0072644182f;
        float r18668 = r18663 * r18663;
        float r18669 = r18668 * (r18668 * r18668);
        float r18670 = r18667 * r18669;
        float r18671 = fma(r18664, r18666, r18670);
        float r18672 = 0.0001789971f;
        float r18673 = 4.0f;
        float r18674 = pow(r18663, r18673);
        float r18675 = r18669 * r18674;
        float r18676 = 0.0424060604f;
        float r18677 = 0.1049934947f;
        float r18678 = r18677 * r18663;
        float r18679 = 1.0f;
        float r18680 = fma(r18678, r18663, r18679);
        float r18681 = fma(r18676, r18674, r18680);
        float r18682 = fma(r18672, r18675, r18681);
        float r18683 = r18671 + r18682;
        float r18684 = r18663 * r18683;
        float r18685 = 0.0003579942f;
        float r18686 = 6.0f;
        float r18687 = pow(r18663, r18686);
        float r18688 = r18669 * r18687;
        float r18689 = 0.0140005442f;
        float r18690 = 0.0694555761f;
        float r18691 = r18690 * r18669;
        float r18692 = fma(r18666, r18689, r18691);
        float r18693 = 0.0008327945f;
        float r18694 = 0.2909738639f;
        float r18695 = 0.7715471019f;
        float r18696 = r18695 * r18663;
        float r18697 = fma(r18696, r18663, r18679);
        float r18698 = fma(r18694, r18674, r18697);
        float r18699 = fma(r18693, r18675, r18698);
        float r18700 = r18692 + r18699;
        float r18701 = fma(r18685, r18688, r18700);
        float r18702 = r18684 / r18701;
        return r18702;
}

double f_od(double x) {
        double r18703 = x;
        double r18704 = 0.0005064034;
        double r18705 = 8.0;
        double r18706 = pow(r18703, r18705);
        double r18707 = 0.0072644182;
        double r18708 = r18703 * r18703;
        double r18709 = r18708 * (r18708 * r18708);
        double r18710 = r18707 * r18709;
        double r18711 = fma(r18704, r18706, r18710);
        double r18712 = 0.0001789971;
        double r18713 = 4.0;
        double r18714 = pow(r18703, r18713);
        double r18715 = r18709 * r18714;
        double r18716 = 0.0424060604;
        double r18717 = 0.1049934947;
        double r18718 = r18717 * r18703;
        double r18719 = 1.0;
        double r18720 = fma(r18718, r18703, r18719);
        double r18721 = fma(r18716, r18714, r18720);
        double r18722 = fma(r18712, r18715, r18721);
        double r18723 = r18711 + r18722;
        double r18724 = r18703 * r18723;
        double r18725 = 0.0003579942;
        double r18726 = 6.0;
        double r18727 = pow(r18703, r18726);
        double r18728 = r18709 * r18727;
        double r18729 = 0.0140005442;
        double r18730 = 0.0694555761;
        double r18731 = r18730 * r18709;
        double r18732 = fma(r18706, r18729, r18731);
        double r18733 = 0.0008327945;
        double r18734 = 0.2909738639;
        double r18735 = 0.7715471019;
        double r18736 = r18735 * r18703;
        double r18737 = fma(r18736, r18703, r18719);
        double r18738 = fma(r18734, r18714, r18737);
        double r18739 = fma(r18733, r18715, r18738);
        double r18740 = r18732 + r18739;
        double r18741 = fma(r18725, r18728, r18740);
        double r18742 = r18724 / r18741;
        return r18742;
}

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 r18743, r18744, r18745, r18746, r18747, r18748, r18749, r18750, r18751, r18752, r18753, r18754, r18755, r18756, r18757, r18758, r18759, r18760, r18761, r18762, r18763, r18764, r18765, r18766, r18767, r18768, r18769, r18770, r18771, r18772, r18773, r18774, r18775, r18776, r18777, r18778, r18779, r18780, r18781, r18782, r18783, r18784, r18785, r18786;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(144);
        mpfr_init_set_str(r18743, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r18744, "0.1049934947", 10, MPFR_RNDN);
        mpfr_init(r18745);
        mpfr_init(r18746);
        mpfr_init(r18747);
        mpfr_init(r18748);
        mpfr_init_set_str(r18749, "0.0424060604", 10, MPFR_RNDN);
        mpfr_init(r18750);
        mpfr_init(r18751);
        mpfr_init(r18752);
        mpfr_init_set_str(r18753, "0.0072644182", 10, MPFR_RNDN);
        mpfr_init(r18754);
        mpfr_init(r18755);
        mpfr_init(r18756);
        mpfr_init_set_str(r18757, "0.0005064034", 10, MPFR_RNDN);
        mpfr_init(r18758);
        mpfr_init(r18759);
        mpfr_init(r18760);
        mpfr_init_set_str(r18761, "0.0001789971", 10, MPFR_RNDN);
        mpfr_init(r18762);
        mpfr_init(r18763);
        mpfr_init(r18764);
        mpfr_init_set_str(r18765, "0.7715471019", 10, MPFR_RNDN);
        mpfr_init(r18766);
        mpfr_init(r18767);
        mpfr_init_set_str(r18768, "0.2909738639", 10, MPFR_RNDN);
        mpfr_init(r18769);
        mpfr_init(r18770);
        mpfr_init_set_str(r18771, "0.0694555761", 10, MPFR_RNDN);
        mpfr_init(r18772);
        mpfr_init(r18773);
        mpfr_init_set_str(r18774, "0.0140005442", 10, MPFR_RNDN);
        mpfr_init(r18775);
        mpfr_init(r18776);
        mpfr_init_set_str(r18777, "0.0008327945", 10, MPFR_RNDN);
        mpfr_init(r18778);
        mpfr_init(r18779);
        mpfr_init_set_str(r18780, "2", 10, MPFR_RNDN);
        mpfr_init(r18781);
        mpfr_init(r18782);
        mpfr_init(r18783);
        mpfr_init(r18784);
        mpfr_init(r18785);
        mpfr_init(r18786);
}

double f_im(double x) {
        ;
        ;
        mpfr_set_d(r18745, x, MPFR_RNDN);
        mpfr_mul(r18746, r18745, r18745, MPFR_RNDN);
        mpfr_mul(r18747, r18744, r18746, MPFR_RNDN);
        mpfr_add(r18748, r18743, r18747, MPFR_RNDN);
        ;
        mpfr_mul(r18750, r18746, r18746, MPFR_RNDN);
        mpfr_mul(r18751, r18749, r18750, MPFR_RNDN);
        mpfr_add(r18752, r18748, r18751, MPFR_RNDN);
        ;
        mpfr_mul(r18754, r18750, r18746, MPFR_RNDN);
        mpfr_mul(r18755, r18753, r18754, MPFR_RNDN);
        mpfr_add(r18756, r18752, r18755, MPFR_RNDN);
        ;
        mpfr_mul(r18758, r18754, r18746, MPFR_RNDN);
        mpfr_mul(r18759, r18757, r18758, MPFR_RNDN);
        mpfr_add(r18760, r18756, r18759, MPFR_RNDN);
        ;
        mpfr_mul(r18762, r18758, r18746, MPFR_RNDN);
        mpfr_mul(r18763, r18761, r18762, MPFR_RNDN);
        mpfr_add(r18764, r18760, r18763, MPFR_RNDN);
        ;
        mpfr_mul(r18766, r18765, r18746, MPFR_RNDN);
        mpfr_add(r18767, r18743, r18766, MPFR_RNDN);
        ;
        mpfr_mul(r18769, r18768, r18750, MPFR_RNDN);
        mpfr_add(r18770, r18767, r18769, MPFR_RNDN);
        ;
        mpfr_mul(r18772, r18771, r18754, MPFR_RNDN);
        mpfr_add(r18773, r18770, r18772, MPFR_RNDN);
        ;
        mpfr_mul(r18775, r18774, r18758, MPFR_RNDN);
        mpfr_add(r18776, r18773, r18775, MPFR_RNDN);
        ;
        mpfr_mul(r18778, r18777, r18762, MPFR_RNDN);
        mpfr_add(r18779, r18776, r18778, MPFR_RNDN);
        ;
        mpfr_mul(r18781, r18780, r18761, MPFR_RNDN);
        mpfr_mul(r18782, r18762, r18746, MPFR_RNDN);
        mpfr_mul(r18783, r18781, r18782, MPFR_RNDN);
        mpfr_add(r18784, r18779, r18783, MPFR_RNDN);
        mpfr_div(r18785, r18764, r18784, MPFR_RNDN);
        mpfr_mul(r18786, r18785, r18745, MPFR_RNDN);
        return mpfr_get_d(r18786, MPFR_RNDN);
}

static mpfr_t r18787, r18788, r18789, r18790, r18791, r18792, r18793, r18794, r18795, r18796, r18797, r18798, r18799, r18800, r18801, r18802, r18803, r18804, r18805, r18806, r18807, r18808, r18809, r18810, r18811, r18812, r18813, r18814, r18815, r18816, r18817, r18818, r18819, r18820, r18821, r18822, r18823, r18824, r18825, r18826;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(144);
        mpfr_init(r18787);
        mpfr_init_set_str(r18788, "0.0005064034", 10, MPFR_RNDN);
        mpfr_init_set_str(r18789, "8", 10, MPFR_RNDN);
        mpfr_init(r18790);
        mpfr_init_set_str(r18791, "0.0072644182", 10, MPFR_RNDN);
        mpfr_init(r18792);
        mpfr_init(r18793);
        mpfr_init(r18794);
        mpfr_init(r18795);
        mpfr_init_set_str(r18796, "0.0001789971", 10, MPFR_RNDN);
        mpfr_init_set_str(r18797, "4", 10, MPFR_RNDN);
        mpfr_init(r18798);
        mpfr_init(r18799);
        mpfr_init_set_str(r18800, "0.0424060604", 10, MPFR_RNDN);
        mpfr_init_set_str(r18801, "0.1049934947", 10, MPFR_RNDN);
        mpfr_init(r18802);
        mpfr_init_set_str(r18803, "1", 10, MPFR_RNDN);
        mpfr_init(r18804);
        mpfr_init(r18805);
        mpfr_init(r18806);
        mpfr_init(r18807);
        mpfr_init(r18808);
        mpfr_init_set_str(r18809, "0.0003579942", 10, MPFR_RNDN);
        mpfr_init_set_str(r18810, "6", 10, MPFR_RNDN);
        mpfr_init(r18811);
        mpfr_init(r18812);
        mpfr_init_set_str(r18813, "0.0140005442", 10, MPFR_RNDN);
        mpfr_init_set_str(r18814, "0.0694555761", 10, MPFR_RNDN);
        mpfr_init(r18815);
        mpfr_init(r18816);
        mpfr_init_set_str(r18817, "0.0008327945", 10, MPFR_RNDN);
        mpfr_init_set_str(r18818, "0.2909738639", 10, MPFR_RNDN);
        mpfr_init_set_str(r18819, "0.7715471019", 10, MPFR_RNDN);
        mpfr_init(r18820);
        mpfr_init(r18821);
        mpfr_init(r18822);
        mpfr_init(r18823);
        mpfr_init(r18824);
        mpfr_init(r18825);
        mpfr_init(r18826);
}

double f_fm(double x) {
        mpfr_set_d(r18787, x, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r18790, r18787, r18789, MPFR_RNDN);
        ;
        mpfr_sqr(r18792, r18787, MPFR_RNDN);
        mpfr_mul(r18793, r18792, r18792, MPFR_RNDN); mpfr_mul(r18793, r18793, r18792, MPFR_RNDN);
        mpfr_mul(r18794, r18791, r18793, MPFR_RNDN);
        mpfr_fma(r18795, r18788, r18790, r18794, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r18798, r18787, r18797, MPFR_RNDN);
        mpfr_mul(r18799, r18793, r18798, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r18802, r18801, r18787, MPFR_RNDN);
        ;
        mpfr_fma(r18804, r18802, r18787, r18803, MPFR_RNDN);
        mpfr_fma(r18805, r18800, r18798, r18804, MPFR_RNDN);
        mpfr_fma(r18806, r18796, r18799, r18805, MPFR_RNDN);
        mpfr_add(r18807, r18795, r18806, MPFR_RNDN);
        mpfr_mul(r18808, r18787, r18807, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r18811, r18787, r18810, MPFR_RNDN);
        mpfr_mul(r18812, r18793, r18811, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r18815, r18814, r18793, MPFR_RNDN);
        mpfr_fma(r18816, r18790, r18813, r18815, MPFR_RNDN);
        ;
        ;
        ;
        mpfr_mul(r18820, r18819, r18787, MPFR_RNDN);
        mpfr_fma(r18821, r18820, r18787, r18803, MPFR_RNDN);
        mpfr_fma(r18822, r18818, r18798, r18821, MPFR_RNDN);
        mpfr_fma(r18823, r18817, r18799, r18822, MPFR_RNDN);
        mpfr_add(r18824, r18816, r18823, MPFR_RNDN);
        mpfr_fma(r18825, r18809, r18812, r18824, MPFR_RNDN);
        mpfr_div(r18826, r18808, r18825, MPFR_RNDN);
        return mpfr_get_d(r18826, MPFR_RNDN);
}

static mpfr_t r18827, r18828, r18829, r18830, r18831, r18832, r18833, r18834, r18835, r18836, r18837, r18838, r18839, r18840, r18841, r18842, r18843, r18844, r18845, r18846, r18847, r18848, r18849, r18850, r18851, r18852, r18853, r18854, r18855, r18856, r18857, r18858, r18859, r18860, r18861, r18862, r18863, r18864, r18865, r18866;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(144);
        mpfr_init(r18827);
        mpfr_init_set_str(r18828, "0.0005064034", 10, MPFR_RNDN);
        mpfr_init_set_str(r18829, "8", 10, MPFR_RNDN);
        mpfr_init(r18830);
        mpfr_init_set_str(r18831, "0.0072644182", 10, MPFR_RNDN);
        mpfr_init(r18832);
        mpfr_init(r18833);
        mpfr_init(r18834);
        mpfr_init(r18835);
        mpfr_init_set_str(r18836, "0.0001789971", 10, MPFR_RNDN);
        mpfr_init_set_str(r18837, "4", 10, MPFR_RNDN);
        mpfr_init(r18838);
        mpfr_init(r18839);
        mpfr_init_set_str(r18840, "0.0424060604", 10, MPFR_RNDN);
        mpfr_init_set_str(r18841, "0.1049934947", 10, MPFR_RNDN);
        mpfr_init(r18842);
        mpfr_init_set_str(r18843, "1", 10, MPFR_RNDN);
        mpfr_init(r18844);
        mpfr_init(r18845);
        mpfr_init(r18846);
        mpfr_init(r18847);
        mpfr_init(r18848);
        mpfr_init_set_str(r18849, "0.0003579942", 10, MPFR_RNDN);
        mpfr_init_set_str(r18850, "6", 10, MPFR_RNDN);
        mpfr_init(r18851);
        mpfr_init(r18852);
        mpfr_init_set_str(r18853, "0.0140005442", 10, MPFR_RNDN);
        mpfr_init_set_str(r18854, "0.0694555761", 10, MPFR_RNDN);
        mpfr_init(r18855);
        mpfr_init(r18856);
        mpfr_init_set_str(r18857, "0.0008327945", 10, MPFR_RNDN);
        mpfr_init_set_str(r18858, "0.2909738639", 10, MPFR_RNDN);
        mpfr_init_set_str(r18859, "0.7715471019", 10, MPFR_RNDN);
        mpfr_init(r18860);
        mpfr_init(r18861);
        mpfr_init(r18862);
        mpfr_init(r18863);
        mpfr_init(r18864);
        mpfr_init(r18865);
        mpfr_init(r18866);
}

double f_dm(double x) {
        mpfr_set_d(r18827, x, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r18830, r18827, r18829, MPFR_RNDN);
        ;
        mpfr_sqr(r18832, r18827, MPFR_RNDN);
        mpfr_mul(r18833, r18832, r18832, MPFR_RNDN); mpfr_mul(r18833, r18833, r18832, MPFR_RNDN);
        mpfr_mul(r18834, r18831, r18833, MPFR_RNDN);
        mpfr_fma(r18835, r18828, r18830, r18834, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r18838, r18827, r18837, MPFR_RNDN);
        mpfr_mul(r18839, r18833, r18838, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r18842, r18841, r18827, MPFR_RNDN);
        ;
        mpfr_fma(r18844, r18842, r18827, r18843, MPFR_RNDN);
        mpfr_fma(r18845, r18840, r18838, r18844, MPFR_RNDN);
        mpfr_fma(r18846, r18836, r18839, r18845, MPFR_RNDN);
        mpfr_add(r18847, r18835, r18846, MPFR_RNDN);
        mpfr_mul(r18848, r18827, r18847, MPFR_RNDN);
        ;
        ;
        mpfr_pow(r18851, r18827, r18850, MPFR_RNDN);
        mpfr_mul(r18852, r18833, r18851, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r18855, r18854, r18833, MPFR_RNDN);
        mpfr_fma(r18856, r18830, r18853, r18855, MPFR_RNDN);
        ;
        ;
        ;
        mpfr_mul(r18860, r18859, r18827, MPFR_RNDN);
        mpfr_fma(r18861, r18860, r18827, r18843, MPFR_RNDN);
        mpfr_fma(r18862, r18858, r18838, r18861, MPFR_RNDN);
        mpfr_fma(r18863, r18857, r18839, r18862, MPFR_RNDN);
        mpfr_add(r18864, r18856, r18863, MPFR_RNDN);
        mpfr_fma(r18865, r18849, r18852, r18864, MPFR_RNDN);
        mpfr_div(r18866, r18848, r18865, MPFR_RNDN);
        return mpfr_get_d(r18866, MPFR_RNDN);
}

