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

char *name = "Jmat.Real.erfi, branch x less than or equal to 0.5";

double f_if(float x) {
        float r27554 = 1;
        float r27555 = atan2(1.0, 0.0);
        float r27556 = sqrt(r27555);
        float r27557 = r27554 / r27556;
        float r27558 = 2;
        float r27559 = x;
        float r27560 = fabs(r27559);
        float r27561 = r27558 * r27560;
        float r27562 = 3;
        float r27563 = r27558 / r27562;
        float r27564 = r27560 * r27560;
        float r27565 = r27564 * r27560;
        float r27566 = r27563 * r27565;
        float r27567 = r27561 + r27566;
        float r27568 = 5;
        float r27569 = r27554 / r27568;
        float r27570 = r27565 * r27560;
        float r27571 = r27570 * r27560;
        float r27572 = r27569 * r27571;
        float r27573 = r27567 + r27572;
        float r27574 = 21;
        float r27575 = r27554 / r27574;
        float r27576 = r27571 * r27560;
        float r27577 = r27576 * r27560;
        float r27578 = r27575 * r27577;
        float r27579 = r27573 + r27578;
        float r27580 = r27557 * r27579;
        float r27581 = fabs(r27580);
        return r27581;
}

double f_id(double x) {
        double r27582 = 1;
        double r27583 = atan2(1.0, 0.0);
        double r27584 = sqrt(r27583);
        double r27585 = r27582 / r27584;
        double r27586 = 2;
        double r27587 = x;
        double r27588 = fabs(r27587);
        double r27589 = r27586 * r27588;
        double r27590 = 3;
        double r27591 = r27586 / r27590;
        double r27592 = r27588 * r27588;
        double r27593 = r27592 * r27588;
        double r27594 = r27591 * r27593;
        double r27595 = r27589 + r27594;
        double r27596 = 5;
        double r27597 = r27582 / r27596;
        double r27598 = r27593 * r27588;
        double r27599 = r27598 * r27588;
        double r27600 = r27597 * r27599;
        double r27601 = r27595 + r27600;
        double r27602 = 21;
        double r27603 = r27582 / r27602;
        double r27604 = r27599 * r27588;
        double r27605 = r27604 * r27588;
        double r27606 = r27603 * r27605;
        double r27607 = r27601 + r27606;
        double r27608 = r27585 * r27607;
        double r27609 = fabs(r27608);
        return r27609;
}


double f_of(float x) {
        float r27610 = 1;
        float r27611 = atan2(1.0, 0.0);
        float r27612 = sqrt(r27611);
        float r27613 = r27610 / r27612;
        float r27614 = 2;
        float r27615 = x;
        float r27616 = fabs(r27615);
        float r27617 = r27614 * r27616;
        float r27618 = 3;
        float r27619 = r27614 / r27618;
        float r27620 = r27616 * r27616;
        float r27621 = r27620 * r27616;
        float r27622 = r27619 * r27621;
        float r27623 = r27617 + r27622;
        float r27624 = 5;
        float r27625 = r27610 / r27624;
        float r27626 = r27621 * r27616;
        float r27627 = r27626 * r27616;
        float r27628 = r27625 * r27627;
        float r27629 = r27623 + r27628;
        float r27630 = 21;
        float r27631 = r27616 / r27630;
        float r27632 = r27618 + r27618;
        float r27633 = pow(r27616, r27632);
        float r27634 = r27631 * r27633;
        float r27635 = pow(r27634, r27610);
        float r27636 = r27629 + r27635;
        float r27637 = r27613 * r27636;
        float r27638 = fabs(r27637);
        return r27638;
}

double f_od(double x) {
        double r27639 = 1;
        double r27640 = atan2(1.0, 0.0);
        double r27641 = sqrt(r27640);
        double r27642 = r27639 / r27641;
        double r27643 = 2;
        double r27644 = x;
        double r27645 = fabs(r27644);
        double r27646 = r27643 * r27645;
        double r27647 = 3;
        double r27648 = r27643 / r27647;
        double r27649 = r27645 * r27645;
        double r27650 = r27649 * r27645;
        double r27651 = r27648 * r27650;
        double r27652 = r27646 + r27651;
        double r27653 = 5;
        double r27654 = r27639 / r27653;
        double r27655 = r27650 * r27645;
        double r27656 = r27655 * r27645;
        double r27657 = r27654 * r27656;
        double r27658 = r27652 + r27657;
        double r27659 = 21;
        double r27660 = r27645 / r27659;
        double r27661 = r27647 + r27647;
        double r27662 = pow(r27645, r27661);
        double r27663 = r27660 * r27662;
        double r27664 = pow(r27663, r27639);
        double r27665 = r27658 + r27664;
        double r27666 = r27642 * r27665;
        double r27667 = fabs(r27666);
        return r27667;
}

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 r27668, r27669, r27670, r27671, r27672, r27673, r27674, r27675, r27676, r27677, r27678, r27679, r27680, r27681, r27682, r27683, r27684, r27685, r27686, r27687, r27688, r27689, r27690, r27691, r27692, r27693, r27694, r27695;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r27668, "1", 10, MPFR_RNDN);
        mpfr_init(r27669);
        mpfr_init(r27670);
        mpfr_init(r27671);
        mpfr_init_set_str(r27672, "2", 10, MPFR_RNDN);
        mpfr_init(r27673);
        mpfr_init(r27674);
        mpfr_init(r27675);
        mpfr_init_set_str(r27676, "3", 10, MPFR_RNDN);
        mpfr_init(r27677);
        mpfr_init(r27678);
        mpfr_init(r27679);
        mpfr_init(r27680);
        mpfr_init(r27681);
        mpfr_init_set_str(r27682, "5", 10, MPFR_RNDN);
        mpfr_init(r27683);
        mpfr_init(r27684);
        mpfr_init(r27685);
        mpfr_init(r27686);
        mpfr_init(r27687);
        mpfr_init_set_str(r27688, "21", 10, MPFR_RNDN);
        mpfr_init(r27689);
        mpfr_init(r27690);
        mpfr_init(r27691);
        mpfr_init(r27692);
        mpfr_init(r27693);
        mpfr_init(r27694);
        mpfr_init(r27695);
}

double f_im(double x) {
        ;
        mpfr_const_pi(r27669, MPFR_RNDN);
        mpfr_sqrt(r27670, r27669, MPFR_RNDN);
        mpfr_div(r27671, r27668, r27670, MPFR_RNDN);
        ;
        mpfr_set_d(r27673, x, MPFR_RNDN);
        mpfr_abs(r27674, r27673, MPFR_RNDN);
        mpfr_mul(r27675, r27672, r27674, MPFR_RNDN);
        ;
        mpfr_div(r27677, r27672, r27676, MPFR_RNDN);
        mpfr_mul(r27678, r27674, r27674, MPFR_RNDN);
        mpfr_mul(r27679, r27678, r27674, MPFR_RNDN);
        mpfr_mul(r27680, r27677, r27679, MPFR_RNDN);
        mpfr_add(r27681, r27675, r27680, MPFR_RNDN);
        ;
        mpfr_div(r27683, r27668, r27682, MPFR_RNDN);
        mpfr_mul(r27684, r27679, r27674, MPFR_RNDN);
        mpfr_mul(r27685, r27684, r27674, MPFR_RNDN);
        mpfr_mul(r27686, r27683, r27685, MPFR_RNDN);
        mpfr_add(r27687, r27681, r27686, MPFR_RNDN);
        ;
        mpfr_div(r27689, r27668, r27688, MPFR_RNDN);
        mpfr_mul(r27690, r27685, r27674, MPFR_RNDN);
        mpfr_mul(r27691, r27690, r27674, MPFR_RNDN);
        mpfr_mul(r27692, r27689, r27691, MPFR_RNDN);
        mpfr_add(r27693, r27687, r27692, MPFR_RNDN);
        mpfr_mul(r27694, r27671, r27693, MPFR_RNDN);
        mpfr_abs(r27695, r27694, MPFR_RNDN);
        return mpfr_get_d(r27695, MPFR_RNDN);
}

static mpfr_t r27696, r27697, r27698, r27699, r27700, r27701, r27702, r27703, r27704, r27705, r27706, r27707, r27708, r27709, r27710, r27711, r27712, r27713, r27714, r27715, r27716, r27717, r27718, r27719, r27720, r27721, r27722, r27723, r27724;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r27696, "1", 10, MPFR_RNDN);
        mpfr_init(r27697);
        mpfr_init(r27698);
        mpfr_init(r27699);
        mpfr_init_set_str(r27700, "2", 10, MPFR_RNDN);
        mpfr_init(r27701);
        mpfr_init(r27702);
        mpfr_init(r27703);
        mpfr_init_set_str(r27704, "3", 10, MPFR_RNDN);
        mpfr_init(r27705);
        mpfr_init(r27706);
        mpfr_init(r27707);
        mpfr_init(r27708);
        mpfr_init(r27709);
        mpfr_init_set_str(r27710, "5", 10, MPFR_RNDN);
        mpfr_init(r27711);
        mpfr_init(r27712);
        mpfr_init(r27713);
        mpfr_init(r27714);
        mpfr_init(r27715);
        mpfr_init_set_str(r27716, "21", 10, MPFR_RNDN);
        mpfr_init(r27717);
        mpfr_init(r27718);
        mpfr_init(r27719);
        mpfr_init(r27720);
        mpfr_init(r27721);
        mpfr_init(r27722);
        mpfr_init(r27723);
        mpfr_init(r27724);
}

double f_fm(double x) {
        ;
        mpfr_const_pi(r27697, MPFR_RNDN);
        mpfr_sqrt(r27698, r27697, MPFR_RNDN);
        mpfr_div(r27699, r27696, r27698, MPFR_RNDN);
        ;
        mpfr_set_d(r27701, x, MPFR_RNDN);
        mpfr_abs(r27702, r27701, MPFR_RNDN);
        mpfr_mul(r27703, r27700, r27702, MPFR_RNDN);
        ;
        mpfr_div(r27705, r27700, r27704, MPFR_RNDN);
        mpfr_mul(r27706, r27702, r27702, MPFR_RNDN);
        mpfr_mul(r27707, r27706, r27702, MPFR_RNDN);
        mpfr_mul(r27708, r27705, r27707, MPFR_RNDN);
        mpfr_add(r27709, r27703, r27708, MPFR_RNDN);
        ;
        mpfr_div(r27711, r27696, r27710, MPFR_RNDN);
        mpfr_mul(r27712, r27707, r27702, MPFR_RNDN);
        mpfr_mul(r27713, r27712, r27702, MPFR_RNDN);
        mpfr_mul(r27714, r27711, r27713, MPFR_RNDN);
        mpfr_add(r27715, r27709, r27714, MPFR_RNDN);
        ;
        mpfr_div(r27717, r27702, r27716, MPFR_RNDN);
        mpfr_add(r27718, r27704, r27704, MPFR_RNDN);
        mpfr_pow(r27719, r27702, r27718, MPFR_RNDN);
        mpfr_mul(r27720, r27717, r27719, MPFR_RNDN);
        mpfr_pow(r27721, r27720, r27696, MPFR_RNDN);
        mpfr_add(r27722, r27715, r27721, MPFR_RNDN);
        mpfr_mul(r27723, r27699, r27722, MPFR_RNDN);
        mpfr_abs(r27724, r27723, MPFR_RNDN);
        return mpfr_get_d(r27724, MPFR_RNDN);
}

static mpfr_t r27725, r27726, r27727, r27728, r27729, r27730, r27731, r27732, r27733, r27734, r27735, r27736, r27737, r27738, r27739, r27740, r27741, r27742, r27743, r27744, r27745, r27746, r27747, r27748, r27749, r27750, r27751, r27752, r27753;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r27725, "1", 10, MPFR_RNDN);
        mpfr_init(r27726);
        mpfr_init(r27727);
        mpfr_init(r27728);
        mpfr_init_set_str(r27729, "2", 10, MPFR_RNDN);
        mpfr_init(r27730);
        mpfr_init(r27731);
        mpfr_init(r27732);
        mpfr_init_set_str(r27733, "3", 10, MPFR_RNDN);
        mpfr_init(r27734);
        mpfr_init(r27735);
        mpfr_init(r27736);
        mpfr_init(r27737);
        mpfr_init(r27738);
        mpfr_init_set_str(r27739, "5", 10, MPFR_RNDN);
        mpfr_init(r27740);
        mpfr_init(r27741);
        mpfr_init(r27742);
        mpfr_init(r27743);
        mpfr_init(r27744);
        mpfr_init_set_str(r27745, "21", 10, MPFR_RNDN);
        mpfr_init(r27746);
        mpfr_init(r27747);
        mpfr_init(r27748);
        mpfr_init(r27749);
        mpfr_init(r27750);
        mpfr_init(r27751);
        mpfr_init(r27752);
        mpfr_init(r27753);
}

double f_dm(double x) {
        ;
        mpfr_const_pi(r27726, MPFR_RNDN);
        mpfr_sqrt(r27727, r27726, MPFR_RNDN);
        mpfr_div(r27728, r27725, r27727, MPFR_RNDN);
        ;
        mpfr_set_d(r27730, x, MPFR_RNDN);
        mpfr_abs(r27731, r27730, MPFR_RNDN);
        mpfr_mul(r27732, r27729, r27731, MPFR_RNDN);
        ;
        mpfr_div(r27734, r27729, r27733, MPFR_RNDN);
        mpfr_mul(r27735, r27731, r27731, MPFR_RNDN);
        mpfr_mul(r27736, r27735, r27731, MPFR_RNDN);
        mpfr_mul(r27737, r27734, r27736, MPFR_RNDN);
        mpfr_add(r27738, r27732, r27737, MPFR_RNDN);
        ;
        mpfr_div(r27740, r27725, r27739, MPFR_RNDN);
        mpfr_mul(r27741, r27736, r27731, MPFR_RNDN);
        mpfr_mul(r27742, r27741, r27731, MPFR_RNDN);
        mpfr_mul(r27743, r27740, r27742, MPFR_RNDN);
        mpfr_add(r27744, r27738, r27743, MPFR_RNDN);
        ;
        mpfr_div(r27746, r27731, r27745, MPFR_RNDN);
        mpfr_add(r27747, r27733, r27733, MPFR_RNDN);
        mpfr_pow(r27748, r27731, r27747, MPFR_RNDN);
        mpfr_mul(r27749, r27746, r27748, MPFR_RNDN);
        mpfr_pow(r27750, r27749, r27725, MPFR_RNDN);
        mpfr_add(r27751, r27744, r27750, MPFR_RNDN);
        mpfr_mul(r27752, r27728, r27751, MPFR_RNDN);
        mpfr_abs(r27753, r27752, MPFR_RNDN);
        return mpfr_get_d(r27753, MPFR_RNDN);
}

