#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 r26964 = 2;
        float r26965 = atan2(1.0, 0.0);
        float r26966 = r26964 * r26965;
        float r26967 = 3;
        float r26968 = r26966 / r26967;
        float r26969 = g;
        float r26970 = -r26969;
        float r26971 = h;
        float r26972 = r26970 / r26971;
        float r26973 = acos(r26972);
        float r26974 = r26973 / r26967;
        float r26975 = r26968 + r26974;
        float r26976 = cos(r26975);
        float r26977 = r26964 * r26976;
        return r26977;
}

double f_id(double g, double h) {
        double r26978 = 2;
        double r26979 = atan2(1.0, 0.0);
        double r26980 = r26978 * r26979;
        double r26981 = 3;
        double r26982 = r26980 / r26981;
        double r26983 = g;
        double r26984 = -r26983;
        double r26985 = h;
        double r26986 = r26984 / r26985;
        double r26987 = acos(r26986);
        double r26988 = r26987 / r26981;
        double r26989 = r26982 + r26988;
        double r26990 = cos(r26989);
        double r26991 = r26978 * r26990;
        return r26991;
}


double f_of(float g, float h) {
        float r26992 = 2;
        float r26993 = 3;
        float r26994 = r26992 / r26993;
        float r26995 = atan2(1.0, 0.0);
        float r26996 = g;
        float r26997 = h;
        float r26998 = r26996 / r26997;
        float r26999 = -r26998;
        float r27000 = acos(r26999);
        float r27001 = r27000 / r26993;
        float r27002 = fma(r26994, r26995, r27001);
        float r27003 = cos(r27002);
        float r27004 = r27003 * r27003;
        float r27005 = cbrt(r27004);
        float r27006 = cbrt(r27003);
        float r27007 = r27005 * r27006;
        float r27008 = r26992 * r27007;
        return r27008;
}

double f_od(double g, double h) {
        double r27009 = 2;
        double r27010 = 3;
        double r27011 = r27009 / r27010;
        double r27012 = atan2(1.0, 0.0);
        double r27013 = g;
        double r27014 = h;
        double r27015 = r27013 / r27014;
        double r27016 = -r27015;
        double r27017 = acos(r27016);
        double r27018 = r27017 / r27010;
        double r27019 = fma(r27011, r27012, r27018);
        double r27020 = cos(r27019);
        double r27021 = r27020 * r27020;
        double r27022 = cbrt(r27021);
        double r27023 = cbrt(r27020);
        double r27024 = r27022 * r27023;
        double r27025 = r27009 * r27024;
        return r27025;
}

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 r27026, r27027, r27028, r27029, r27030, r27031, r27032, r27033, r27034, r27035, r27036, r27037, r27038, r27039;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(336);
        mpfr_init_set_str(r27026, "2", 10, MPFR_RNDN);
        mpfr_init(r27027);
        mpfr_init(r27028);
        mpfr_init_set_str(r27029, "3", 10, MPFR_RNDN);
        mpfr_init(r27030);
        mpfr_init(r27031);
        mpfr_init(r27032);
        mpfr_init(r27033);
        mpfr_init(r27034);
        mpfr_init(r27035);
        mpfr_init(r27036);
        mpfr_init(r27037);
        mpfr_init(r27038);
        mpfr_init(r27039);
}

double f_im(double g, double h) {
        ;
        mpfr_const_pi(r27027, MPFR_RNDN);
        mpfr_mul(r27028, r27026, r27027, MPFR_RNDN);
        ;
        mpfr_div(r27030, r27028, r27029, MPFR_RNDN);
        mpfr_set_d(r27031, g, MPFR_RNDN);
        mpfr_neg(r27032, r27031, MPFR_RNDN);
        mpfr_set_d(r27033, h, MPFR_RNDN);
        mpfr_div(r27034, r27032, r27033, MPFR_RNDN);
        mpfr_acos(r27035, r27034, MPFR_RNDN);
        mpfr_div(r27036, r27035, r27029, MPFR_RNDN);
        mpfr_add(r27037, r27030, r27036, MPFR_RNDN);
        mpfr_cos(r27038, r27037, MPFR_RNDN);
        mpfr_mul(r27039, r27026, r27038, MPFR_RNDN);
        return mpfr_get_d(r27039, MPFR_RNDN);
}

static mpfr_t r27040, r27041, r27042, r27043, r27044, r27045, r27046, r27047, r27048, r27049, r27050, r27051, r27052, r27053, r27054, r27055, r27056;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(336);
        mpfr_init_set_str(r27040, "2", 10, MPFR_RNDN);
        mpfr_init_set_str(r27041, "3", 10, MPFR_RNDN);
        mpfr_init(r27042);
        mpfr_init(r27043);
        mpfr_init(r27044);
        mpfr_init(r27045);
        mpfr_init(r27046);
        mpfr_init(r27047);
        mpfr_init(r27048);
        mpfr_init(r27049);
        mpfr_init(r27050);
        mpfr_init(r27051);
        mpfr_init(r27052);
        mpfr_init(r27053);
        mpfr_init(r27054);
        mpfr_init(r27055);
        mpfr_init(r27056);
}

double f_fm(double g, double h) {
        ;
        ;
        mpfr_div(r27042, r27040, r27041, MPFR_RNDN);
        mpfr_const_pi(r27043, MPFR_RNDN);
        mpfr_set_d(r27044, g, MPFR_RNDN);
        mpfr_set_d(r27045, h, MPFR_RNDN);
        mpfr_div(r27046, r27044, r27045, MPFR_RNDN);
        mpfr_neg(r27047, r27046, MPFR_RNDN);
        mpfr_acos(r27048, r27047, MPFR_RNDN);
        mpfr_div(r27049, r27048, r27041, MPFR_RNDN);
        mpfr_fma(r27050, r27042, r27043, r27049, MPFR_RNDN);
        mpfr_cos(r27051, r27050, MPFR_RNDN);
        mpfr_mul(r27052, r27051, r27051, MPFR_RNDN);
        mpfr_cbrt(r27053, r27052, MPFR_RNDN);
        mpfr_cbrt(r27054, r27051, MPFR_RNDN);
        mpfr_mul(r27055, r27053, r27054, MPFR_RNDN);
        mpfr_mul(r27056, r27040, r27055, MPFR_RNDN);
        return mpfr_get_d(r27056, MPFR_RNDN);
}

static mpfr_t r27057, r27058, r27059, r27060, r27061, r27062, r27063, r27064, r27065, r27066, r27067, r27068, r27069, r27070, r27071, r27072, r27073;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(336);
        mpfr_init_set_str(r27057, "2", 10, MPFR_RNDN);
        mpfr_init_set_str(r27058, "3", 10, MPFR_RNDN);
        mpfr_init(r27059);
        mpfr_init(r27060);
        mpfr_init(r27061);
        mpfr_init(r27062);
        mpfr_init(r27063);
        mpfr_init(r27064);
        mpfr_init(r27065);
        mpfr_init(r27066);
        mpfr_init(r27067);
        mpfr_init(r27068);
        mpfr_init(r27069);
        mpfr_init(r27070);
        mpfr_init(r27071);
        mpfr_init(r27072);
        mpfr_init(r27073);
}

double f_dm(double g, double h) {
        ;
        ;
        mpfr_div(r27059, r27057, r27058, MPFR_RNDN);
        mpfr_const_pi(r27060, MPFR_RNDN);
        mpfr_set_d(r27061, g, MPFR_RNDN);
        mpfr_set_d(r27062, h, MPFR_RNDN);
        mpfr_div(r27063, r27061, r27062, MPFR_RNDN);
        mpfr_neg(r27064, r27063, MPFR_RNDN);
        mpfr_acos(r27065, r27064, MPFR_RNDN);
        mpfr_div(r27066, r27065, r27058, MPFR_RNDN);
        mpfr_fma(r27067, r27059, r27060, r27066, MPFR_RNDN);
        mpfr_cos(r27068, r27067, MPFR_RNDN);
        mpfr_mul(r27069, r27068, r27068, MPFR_RNDN);
        mpfr_cbrt(r27070, r27069, MPFR_RNDN);
        mpfr_cbrt(r27071, r27068, MPFR_RNDN);
        mpfr_mul(r27072, r27070, r27071, MPFR_RNDN);
        mpfr_mul(r27073, r27057, r27072, MPFR_RNDN);
        return mpfr_get_d(r27073, MPFR_RNDN);
}

