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

char *name = "Falkner and Boettcher, Equation (20:1,3)";

double f_if(float v, float t) {
        float r10653 = 1;
        float r10654 = 5;
        float r10655 = v;
        float r10656 = r10655 * r10655;
        float r10657 = r10654 * r10656;
        float r10658 = r10653 - r10657;
        float r10659 = atan2(1.0, 0.0);
        float r10660 = t;
        float r10661 = r10659 * r10660;
        float r10662 = 2;
        float r10663 = 3;
        float r10664 = r10663 * r10656;
        float r10665 = r10653 - r10664;
        float r10666 = r10662 * r10665;
        float r10667 = sqrt(r10666);
        float r10668 = r10661 * r10667;
        float r10669 = r10653 - r10656;
        float r10670 = r10668 * r10669;
        float r10671 = r10658 / r10670;
        return r10671;
}

double f_id(double v, double t) {
        double r10672 = 1;
        double r10673 = 5;
        double r10674 = v;
        double r10675 = r10674 * r10674;
        double r10676 = r10673 * r10675;
        double r10677 = r10672 - r10676;
        double r10678 = atan2(1.0, 0.0);
        double r10679 = t;
        double r10680 = r10678 * r10679;
        double r10681 = 2;
        double r10682 = 3;
        double r10683 = r10682 * r10675;
        double r10684 = r10672 - r10683;
        double r10685 = r10681 * r10684;
        double r10686 = sqrt(r10685);
        double r10687 = r10680 * r10686;
        double r10688 = r10672 - r10675;
        double r10689 = r10687 * r10688;
        double r10690 = r10677 / r10689;
        return r10690;
}


double f_of(float v, float t) {
        float r10691 = v;
        float r10692 = r10691 * r10691;
        float r10693 = 5;
        float r10694 = -r10693;
        float r10695 = 1;
        float r10696 = fma(r10692, r10694, r10695);
        float r10697 = 3;
        float r10698 = pow(r10691, r10697);
        float r10699 = -r10691;
        float r10700 = fma(r10698, r10699, r10695);
        float r10701 = atan2(1.0, 0.0);
        float r10702 = r10700 * r10701;
        float r10703 = r10696 / r10702;
        float r10704 = 2;
        float r10705 = -r10697;
        float r10706 = fma(r10692, r10705, r10695);
        float r10707 = r10704 * r10706;
        float r10708 = sqrt(r10707);
        float r10709 = t;
        float r10710 = r10708 * r10709;
        float r10711 = r10703 / r10710;
        float r10712 = r10695 + r10692;
        float r10713 = r10711 * r10712;
        return r10713;
}

double f_od(double v, double t) {
        double r10714 = v;
        double r10715 = r10714 * r10714;
        double r10716 = 5;
        double r10717 = -r10716;
        double r10718 = 1;
        double r10719 = fma(r10715, r10717, r10718);
        double r10720 = 3;
        double r10721 = pow(r10714, r10720);
        double r10722 = -r10714;
        double r10723 = fma(r10721, r10722, r10718);
        double r10724 = atan2(1.0, 0.0);
        double r10725 = r10723 * r10724;
        double r10726 = r10719 / r10725;
        double r10727 = 2;
        double r10728 = -r10720;
        double r10729 = fma(r10715, r10728, r10718);
        double r10730 = r10727 * r10729;
        double r10731 = sqrt(r10730);
        double r10732 = t;
        double r10733 = r10731 * r10732;
        double r10734 = r10726 / r10733;
        double r10735 = r10718 + r10715;
        double r10736 = r10734 * r10735;
        return r10736;
}

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 r10737, r10738, r10739, r10740, r10741, r10742, r10743, r10744, r10745, r10746, r10747, r10748, r10749, r10750, r10751, r10752, r10753, r10754, r10755;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r10737, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r10738, "5", 10, MPFR_RNDN);
        mpfr_init(r10739);
        mpfr_init(r10740);
        mpfr_init(r10741);
        mpfr_init(r10742);
        mpfr_init(r10743);
        mpfr_init(r10744);
        mpfr_init(r10745);
        mpfr_init_set_str(r10746, "2", 10, MPFR_RNDN);
        mpfr_init_set_str(r10747, "3", 10, MPFR_RNDN);
        mpfr_init(r10748);
        mpfr_init(r10749);
        mpfr_init(r10750);
        mpfr_init(r10751);
        mpfr_init(r10752);
        mpfr_init(r10753);
        mpfr_init(r10754);
        mpfr_init(r10755);
}

double f_im(double v, double t) {
        ;
        ;
        mpfr_set_d(r10739, v, MPFR_RNDN);
        mpfr_mul(r10740, r10739, r10739, MPFR_RNDN);
        mpfr_mul(r10741, r10738, r10740, MPFR_RNDN);
        mpfr_sub(r10742, r10737, r10741, MPFR_RNDN);
        mpfr_const_pi(r10743, MPFR_RNDN);
        mpfr_set_d(r10744, t, MPFR_RNDN);
        mpfr_mul(r10745, r10743, r10744, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r10748, r10747, r10740, MPFR_RNDN);
        mpfr_sub(r10749, r10737, r10748, MPFR_RNDN);
        mpfr_mul(r10750, r10746, r10749, MPFR_RNDN);
        mpfr_sqrt(r10751, r10750, MPFR_RNDN);
        mpfr_mul(r10752, r10745, r10751, MPFR_RNDN);
        mpfr_sub(r10753, r10737, r10740, MPFR_RNDN);
        mpfr_mul(r10754, r10752, r10753, MPFR_RNDN);
        mpfr_div(r10755, r10742, r10754, MPFR_RNDN);
        return mpfr_get_d(r10755, MPFR_RNDN);
}

static mpfr_t r10756, r10757, r10758, r10759, r10760, r10761, r10762, r10763, r10764, r10765, r10766, r10767, r10768, r10769, r10770, r10771, r10772, r10773, r10774, r10775, r10776, r10777, r10778;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init(r10756);
        mpfr_init(r10757);
        mpfr_init_set_str(r10758, "5", 10, MPFR_RNDN);
        mpfr_init(r10759);
        mpfr_init_set_str(r10760, "1", 10, MPFR_RNDN);
        mpfr_init(r10761);
        mpfr_init_set_str(r10762, "3", 10, MPFR_RNDN);
        mpfr_init(r10763);
        mpfr_init(r10764);
        mpfr_init(r10765);
        mpfr_init(r10766);
        mpfr_init(r10767);
        mpfr_init(r10768);
        mpfr_init_set_str(r10769, "2", 10, MPFR_RNDN);
        mpfr_init(r10770);
        mpfr_init(r10771);
        mpfr_init(r10772);
        mpfr_init(r10773);
        mpfr_init(r10774);
        mpfr_init(r10775);
        mpfr_init(r10776);
        mpfr_init(r10777);
        mpfr_init(r10778);
}

double f_fm(double v, double t) {
        mpfr_set_d(r10756, v, MPFR_RNDN);
        mpfr_mul(r10757, r10756, r10756, MPFR_RNDN);
        ;
        mpfr_neg(r10759, r10758, MPFR_RNDN);
        ;
        mpfr_fma(r10761, r10757, r10759, r10760, MPFR_RNDN);
        ;
        mpfr_pow(r10763, r10756, r10762, MPFR_RNDN);
        mpfr_neg(r10764, r10756, MPFR_RNDN);
        mpfr_fma(r10765, r10763, r10764, r10760, MPFR_RNDN);
        mpfr_const_pi(r10766, MPFR_RNDN);
        mpfr_mul(r10767, r10765, r10766, MPFR_RNDN);
        mpfr_div(r10768, r10761, r10767, MPFR_RNDN);
        ;
        mpfr_neg(r10770, r10762, MPFR_RNDN);
        mpfr_fma(r10771, r10757, r10770, r10760, MPFR_RNDN);
        mpfr_mul(r10772, r10769, r10771, MPFR_RNDN);
        mpfr_sqrt(r10773, r10772, MPFR_RNDN);
        mpfr_set_d(r10774, t, MPFR_RNDN);
        mpfr_mul(r10775, r10773, r10774, MPFR_RNDN);
        mpfr_div(r10776, r10768, r10775, MPFR_RNDN);
        mpfr_add(r10777, r10760, r10757, MPFR_RNDN);
        mpfr_mul(r10778, r10776, r10777, MPFR_RNDN);
        return mpfr_get_d(r10778, MPFR_RNDN);
}

static mpfr_t r10779, r10780, r10781, r10782, r10783, r10784, r10785, r10786, r10787, r10788, r10789, r10790, r10791, r10792, r10793, r10794, r10795, r10796, r10797, r10798, r10799, r10800, r10801;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init(r10779);
        mpfr_init(r10780);
        mpfr_init_set_str(r10781, "5", 10, MPFR_RNDN);
        mpfr_init(r10782);
        mpfr_init_set_str(r10783, "1", 10, MPFR_RNDN);
        mpfr_init(r10784);
        mpfr_init_set_str(r10785, "3", 10, MPFR_RNDN);
        mpfr_init(r10786);
        mpfr_init(r10787);
        mpfr_init(r10788);
        mpfr_init(r10789);
        mpfr_init(r10790);
        mpfr_init(r10791);
        mpfr_init_set_str(r10792, "2", 10, MPFR_RNDN);
        mpfr_init(r10793);
        mpfr_init(r10794);
        mpfr_init(r10795);
        mpfr_init(r10796);
        mpfr_init(r10797);
        mpfr_init(r10798);
        mpfr_init(r10799);
        mpfr_init(r10800);
        mpfr_init(r10801);
}

double f_dm(double v, double t) {
        mpfr_set_d(r10779, v, MPFR_RNDN);
        mpfr_mul(r10780, r10779, r10779, MPFR_RNDN);
        ;
        mpfr_neg(r10782, r10781, MPFR_RNDN);
        ;
        mpfr_fma(r10784, r10780, r10782, r10783, MPFR_RNDN);
        ;
        mpfr_pow(r10786, r10779, r10785, MPFR_RNDN);
        mpfr_neg(r10787, r10779, MPFR_RNDN);
        mpfr_fma(r10788, r10786, r10787, r10783, MPFR_RNDN);
        mpfr_const_pi(r10789, MPFR_RNDN);
        mpfr_mul(r10790, r10788, r10789, MPFR_RNDN);
        mpfr_div(r10791, r10784, r10790, MPFR_RNDN);
        ;
        mpfr_neg(r10793, r10785, MPFR_RNDN);
        mpfr_fma(r10794, r10780, r10793, r10783, MPFR_RNDN);
        mpfr_mul(r10795, r10792, r10794, MPFR_RNDN);
        mpfr_sqrt(r10796, r10795, MPFR_RNDN);
        mpfr_set_d(r10797, t, MPFR_RNDN);
        mpfr_mul(r10798, r10796, r10797, MPFR_RNDN);
        mpfr_div(r10799, r10791, r10798, MPFR_RNDN);
        mpfr_add(r10800, r10783, r10780, MPFR_RNDN);
        mpfr_mul(r10801, r10799, r10800, MPFR_RNDN);
        return mpfr_get_d(r10801, MPFR_RNDN);
}

