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

char *name = "Falkner and Boettcher, Equation (22+)";

double f_if(float v) {
        float r32628 = 4;
        float r32629 = 3;
        float r32630 = atan2(1.0, 0.0);
        float r32631 = r32629 * r32630;
        float r32632 = 1;
        float r32633 = v;
        float r32634 = r32633 * r32633;
        float r32635 = r32632 - r32634;
        float r32636 = r32631 * r32635;
        float r32637 = 2;
        float r32638 = 6;
        float r32639 = r32638 * r32634;
        float r32640 = r32637 - r32639;
        float r32641 = sqrt(r32640);
        float r32642 = r32636 * r32641;
        float r32643 = r32628 / r32642;
        return r32643;
}

double f_id(double v) {
        double r32644 = 4;
        double r32645 = 3;
        double r32646 = atan2(1.0, 0.0);
        double r32647 = r32645 * r32646;
        double r32648 = 1;
        double r32649 = v;
        double r32650 = r32649 * r32649;
        double r32651 = r32648 - r32650;
        double r32652 = r32647 * r32651;
        double r32653 = 2;
        double r32654 = 6;
        double r32655 = r32654 * r32650;
        double r32656 = r32653 - r32655;
        double r32657 = sqrt(r32656);
        double r32658 = r32652 * r32657;
        double r32659 = r32644 / r32658;
        return r32659;
}


double f_of(float v) {
        float r32660 = 4;
        float r32661 = 3;
        float r32662 = r32660 / r32661;
        float r32663 = atan2(1.0, 0.0);
        float r32664 = v;
        float r32665 = r32663 * r32664;
        float r32666 = r32665 * r32664;
        float r32667 = r32663 - r32666;
        float r32668 = r32662 / r32667;
        float r32669 = 2;
        float r32670 = 6;
        float r32671 = r32664 * r32664;
        float r32672 = r32670 * r32671;
        float r32673 = r32669 - r32672;
        float r32674 = sqrt(r32673);
        float r32675 = r32668 / r32674;
        return r32675;
}

double f_od(double v) {
        double r32676 = 4;
        double r32677 = 3;
        double r32678 = r32676 / r32677;
        double r32679 = atan2(1.0, 0.0);
        double r32680 = v;
        double r32681 = r32679 * r32680;
        double r32682 = r32681 * r32680;
        double r32683 = r32679 - r32682;
        double r32684 = r32678 / r32683;
        double r32685 = 2;
        double r32686 = 6;
        double r32687 = r32680 * r32680;
        double r32688 = r32686 * r32687;
        double r32689 = r32685 - r32688;
        double r32690 = sqrt(r32689);
        double r32691 = r32684 / r32690;
        return r32691;
}

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 r32692, r32693, r32694, r32695, r32696, r32697, r32698, r32699, r32700, r32701, r32702, r32703, r32704, r32705, r32706, r32707;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r32692, "4", 10, MPFR_RNDN);
        mpfr_init_set_str(r32693, "3", 10, MPFR_RNDN);
        mpfr_init(r32694);
        mpfr_init(r32695);
        mpfr_init_set_str(r32696, "1", 10, MPFR_RNDN);
        mpfr_init(r32697);
        mpfr_init(r32698);
        mpfr_init(r32699);
        mpfr_init(r32700);
        mpfr_init_set_str(r32701, "2", 10, MPFR_RNDN);
        mpfr_init_set_str(r32702, "6", 10, MPFR_RNDN);
        mpfr_init(r32703);
        mpfr_init(r32704);
        mpfr_init(r32705);
        mpfr_init(r32706);
        mpfr_init(r32707);
}

double f_im(double v) {
        ;
        ;
        mpfr_const_pi(r32694, MPFR_RNDN);
        mpfr_mul(r32695, r32693, r32694, MPFR_RNDN);
        ;
        mpfr_set_d(r32697, v, MPFR_RNDN);
        mpfr_mul(r32698, r32697, r32697, MPFR_RNDN);
        mpfr_sub(r32699, r32696, r32698, MPFR_RNDN);
        mpfr_mul(r32700, r32695, r32699, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r32703, r32702, r32698, MPFR_RNDN);
        mpfr_sub(r32704, r32701, r32703, MPFR_RNDN);
        mpfr_sqrt(r32705, r32704, MPFR_RNDN);
        mpfr_mul(r32706, r32700, r32705, MPFR_RNDN);
        mpfr_div(r32707, r32692, r32706, MPFR_RNDN);
        return mpfr_get_d(r32707, MPFR_RNDN);
}

static mpfr_t r32708, r32709, r32710, r32711, r32712, r32713, r32714, r32715, r32716, r32717, r32718, r32719, r32720, r32721, r32722, r32723;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r32708, "4", 10, MPFR_RNDN);
        mpfr_init_set_str(r32709, "3", 10, MPFR_RNDN);
        mpfr_init(r32710);
        mpfr_init(r32711);
        mpfr_init(r32712);
        mpfr_init(r32713);
        mpfr_init(r32714);
        mpfr_init(r32715);
        mpfr_init(r32716);
        mpfr_init_set_str(r32717, "2", 10, MPFR_RNDN);
        mpfr_init_set_str(r32718, "6", 10, MPFR_RNDN);
        mpfr_init(r32719);
        mpfr_init(r32720);
        mpfr_init(r32721);
        mpfr_init(r32722);
        mpfr_init(r32723);
}

double f_fm(double v) {
        ;
        ;
        mpfr_div(r32710, r32708, r32709, MPFR_RNDN);
        mpfr_const_pi(r32711, MPFR_RNDN);
        mpfr_set_d(r32712, v, MPFR_RNDN);
        mpfr_mul(r32713, r32711, r32712, MPFR_RNDN);
        mpfr_mul(r32714, r32713, r32712, MPFR_RNDN);
        mpfr_sub(r32715, r32711, r32714, MPFR_RNDN);
        mpfr_div(r32716, r32710, r32715, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r32719, r32712, r32712, MPFR_RNDN);
        mpfr_mul(r32720, r32718, r32719, MPFR_RNDN);
        mpfr_sub(r32721, r32717, r32720, MPFR_RNDN);
        mpfr_sqrt(r32722, r32721, MPFR_RNDN);
        mpfr_div(r32723, r32716, r32722, MPFR_RNDN);
        return mpfr_get_d(r32723, MPFR_RNDN);
}

static mpfr_t r32724, r32725, r32726, r32727, r32728, r32729, r32730, r32731, r32732, r32733, r32734, r32735, r32736, r32737, r32738, r32739;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(400);
        mpfr_init_set_str(r32724, "4", 10, MPFR_RNDN);
        mpfr_init_set_str(r32725, "3", 10, MPFR_RNDN);
        mpfr_init(r32726);
        mpfr_init(r32727);
        mpfr_init(r32728);
        mpfr_init(r32729);
        mpfr_init(r32730);
        mpfr_init(r32731);
        mpfr_init(r32732);
        mpfr_init_set_str(r32733, "2", 10, MPFR_RNDN);
        mpfr_init_set_str(r32734, "6", 10, MPFR_RNDN);
        mpfr_init(r32735);
        mpfr_init(r32736);
        mpfr_init(r32737);
        mpfr_init(r32738);
        mpfr_init(r32739);
}

double f_dm(double v) {
        ;
        ;
        mpfr_div(r32726, r32724, r32725, MPFR_RNDN);
        mpfr_const_pi(r32727, MPFR_RNDN);
        mpfr_set_d(r32728, v, MPFR_RNDN);
        mpfr_mul(r32729, r32727, r32728, MPFR_RNDN);
        mpfr_mul(r32730, r32729, r32728, MPFR_RNDN);
        mpfr_sub(r32731, r32727, r32730, MPFR_RNDN);
        mpfr_div(r32732, r32726, r32731, MPFR_RNDN);
        ;
        ;
        mpfr_mul(r32735, r32728, r32728, MPFR_RNDN);
        mpfr_mul(r32736, r32734, r32735, MPFR_RNDN);
        mpfr_sub(r32737, r32733, r32736, MPFR_RNDN);
        mpfr_sqrt(r32738, r32737, MPFR_RNDN);
        mpfr_div(r32739, r32732, r32738, MPFR_RNDN);
        return mpfr_get_d(r32739, MPFR_RNDN);
}

