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

char *name = "2-ancestry mixing, negative discriminant";

double f_if(float g, float h) {
        float r10740 = 2.0f;
        float r10741 = atan2(1.0, 0.0);
        float r10742 = r10740 * r10741;
        float r10743 = 3.0f;
        float r10744 = r10742 / r10743;
        float r10745 = g;
        float r10746 = -r10745;
        float r10747 = h;
        float r10748 = r10746 / r10747;
        float r10749 = acos(r10748);
        float r10750 = r10749 / r10743;
        float r10751 = r10744 + r10750;
        float r10752 = cos(r10751);
        float r10753 = r10740 * r10752;
        return r10753;
}

double f_id(double g, double h) {
        double r10754 = 2.0;
        double r10755 = atan2(1.0, 0.0);
        double r10756 = r10754 * r10755;
        double r10757 = 3.0;
        double r10758 = r10756 / r10757;
        double r10759 = g;
        double r10760 = -r10759;
        double r10761 = h;
        double r10762 = r10760 / r10761;
        double r10763 = acos(r10762);
        double r10764 = r10763 / r10757;
        double r10765 = r10758 + r10764;
        double r10766 = cos(r10765);
        double r10767 = r10754 * r10766;
        return r10767;
}


double f_of(float g, float h) {
        float r10768 = 2.0f;
        float r10769 = 3.0f;
        float r10770 = r10768 / r10769;
        float r10771 = atan2(1.0, 0.0);
        float r10772 = g;
        float r10773 = h;
        float r10774 = r10772 / r10773;
        float r10775 = -r10774;
        float r10776 = acos(r10775);
        float r10777 = r10776 / r10769;
        float r10778 = fma(r10770, r10771, r10777);
        float r10779 = cos(r10778);
        float r10780 = cbrt(r10779);
        float r10781 = r10779 * r10779;
        float r10782 = cbrt(r10781);
        float r10783 = r10780 * r10782;
        float r10784 = r10783 * r10768;
        return r10784;
}

double f_od(double g, double h) {
        double r10785 = 2.0;
        double r10786 = 3.0;
        double r10787 = r10785 / r10786;
        double r10788 = atan2(1.0, 0.0);
        double r10789 = g;
        double r10790 = h;
        double r10791 = r10789 / r10790;
        double r10792 = -r10791;
        double r10793 = acos(r10792);
        double r10794 = r10793 / r10786;
        double r10795 = fma(r10787, r10788, r10794);
        double r10796 = cos(r10795);
        double r10797 = cbrt(r10796);
        double r10798 = r10796 * r10796;
        double r10799 = cbrt(r10798);
        double r10800 = r10797 * r10799;
        double r10801 = r10800 * r10785;
        return r10801;
}

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 r10802, r10803, r10804, r10805, r10806, r10807, r10808, r10809, r10810, r10811, r10812, r10813, r10814, r10815;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(336);
        mpfr_init_set_str(r10802, "2", 10, MPFR_RNDN);
        mpfr_init(r10803);
        mpfr_init(r10804);
        mpfr_init_set_str(r10805, "3", 10, MPFR_RNDN);
        mpfr_init(r10806);
        mpfr_init(r10807);
        mpfr_init(r10808);
        mpfr_init(r10809);
        mpfr_init(r10810);
        mpfr_init(r10811);
        mpfr_init(r10812);
        mpfr_init(r10813);
        mpfr_init(r10814);
        mpfr_init(r10815);
}

double f_im(double g, double h) {
        ;
        mpfr_const_pi(r10803, MPFR_RNDN);
        mpfr_mul(r10804, r10802, r10803, MPFR_RNDN);
        ;
        mpfr_div(r10806, r10804, r10805, MPFR_RNDN);
        mpfr_set_d(r10807, g, MPFR_RNDN);
        mpfr_neg(r10808, r10807, MPFR_RNDN);
        mpfr_set_d(r10809, h, MPFR_RNDN);
        mpfr_div(r10810, r10808, r10809, MPFR_RNDN);
        mpfr_acos(r10811, r10810, MPFR_RNDN);
        mpfr_div(r10812, r10811, r10805, MPFR_RNDN);
        mpfr_add(r10813, r10806, r10812, MPFR_RNDN);
        mpfr_cos(r10814, r10813, MPFR_RNDN);
        mpfr_mul(r10815, r10802, r10814, MPFR_RNDN);
        return mpfr_get_d(r10815, MPFR_RNDN);
}

static mpfr_t r10816, r10817, r10818, r10819, r10820, r10821, r10822, r10823, r10824, r10825, r10826, r10827, r10828, r10829, r10830, r10831, r10832;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(336);
        mpfr_init_set_str(r10816, "2", 10, MPFR_RNDN);
        mpfr_init_set_str(r10817, "3", 10, MPFR_RNDN);
        mpfr_init(r10818);
        mpfr_init(r10819);
        mpfr_init(r10820);
        mpfr_init(r10821);
        mpfr_init(r10822);
        mpfr_init(r10823);
        mpfr_init(r10824);
        mpfr_init(r10825);
        mpfr_init(r10826);
        mpfr_init(r10827);
        mpfr_init(r10828);
        mpfr_init(r10829);
        mpfr_init(r10830);
        mpfr_init(r10831);
        mpfr_init(r10832);
}

double f_fm(double g, double h) {
        ;
        ;
        mpfr_div(r10818, r10816, r10817, MPFR_RNDN);
        mpfr_const_pi(r10819, MPFR_RNDN);
        mpfr_set_d(r10820, g, MPFR_RNDN);
        mpfr_set_d(r10821, h, MPFR_RNDN);
        mpfr_div(r10822, r10820, r10821, MPFR_RNDN);
        mpfr_neg(r10823, r10822, MPFR_RNDN);
        mpfr_acos(r10824, r10823, MPFR_RNDN);
        mpfr_div(r10825, r10824, r10817, MPFR_RNDN);
        mpfr_fma(r10826, r10818, r10819, r10825, MPFR_RNDN);
        mpfr_cos(r10827, r10826, MPFR_RNDN);
        mpfr_cbrt(r10828, r10827, MPFR_RNDN);
        mpfr_mul(r10829, r10827, r10827, MPFR_RNDN);
        mpfr_cbrt(r10830, r10829, MPFR_RNDN);
        mpfr_mul(r10831, r10828, r10830, MPFR_RNDN);
        mpfr_mul(r10832, r10831, r10816, MPFR_RNDN);
        return mpfr_get_d(r10832, MPFR_RNDN);
}

static mpfr_t r10833, r10834, r10835, r10836, r10837, r10838, r10839, r10840, r10841, r10842, r10843, r10844, r10845, r10846, r10847, r10848, r10849;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(336);
        mpfr_init_set_str(r10833, "2", 10, MPFR_RNDN);
        mpfr_init_set_str(r10834, "3", 10, MPFR_RNDN);
        mpfr_init(r10835);
        mpfr_init(r10836);
        mpfr_init(r10837);
        mpfr_init(r10838);
        mpfr_init(r10839);
        mpfr_init(r10840);
        mpfr_init(r10841);
        mpfr_init(r10842);
        mpfr_init(r10843);
        mpfr_init(r10844);
        mpfr_init(r10845);
        mpfr_init(r10846);
        mpfr_init(r10847);
        mpfr_init(r10848);
        mpfr_init(r10849);
}

double f_dm(double g, double h) {
        ;
        ;
        mpfr_div(r10835, r10833, r10834, MPFR_RNDN);
        mpfr_const_pi(r10836, MPFR_RNDN);
        mpfr_set_d(r10837, g, MPFR_RNDN);
        mpfr_set_d(r10838, h, MPFR_RNDN);
        mpfr_div(r10839, r10837, r10838, MPFR_RNDN);
        mpfr_neg(r10840, r10839, MPFR_RNDN);
        mpfr_acos(r10841, r10840, MPFR_RNDN);
        mpfr_div(r10842, r10841, r10834, MPFR_RNDN);
        mpfr_fma(r10843, r10835, r10836, r10842, MPFR_RNDN);
        mpfr_cos(r10844, r10843, MPFR_RNDN);
        mpfr_cbrt(r10845, r10844, MPFR_RNDN);
        mpfr_mul(r10846, r10844, r10844, MPFR_RNDN);
        mpfr_cbrt(r10847, r10846, MPFR_RNDN);
        mpfr_mul(r10848, r10845, r10847, MPFR_RNDN);
        mpfr_mul(r10849, r10848, r10833, MPFR_RNDN);
        return mpfr_get_d(r10849, MPFR_RNDN);
}

