#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 r26969 = 2;
        float r26970 = atan2(1.0, 0.0);
        float r26971 = r26969 * r26970;
        float r26972 = 3;
        float r26973 = r26971 / r26972;
        float r26974 = g;
        float r26975 = -r26974;
        float r26976 = h;
        float r26977 = r26975 / r26976;
        float r26978 = acos(r26977);
        float r26979 = r26978 / r26972;
        float r26980 = r26973 + r26979;
        float r26981 = cos(r26980);
        float r26982 = r26969 * r26981;
        return r26982;
}

double f_id(double g, double h) {
        double r26983 = 2;
        double r26984 = atan2(1.0, 0.0);
        double r26985 = r26983 * r26984;
        double r26986 = 3;
        double r26987 = r26985 / r26986;
        double r26988 = g;
        double r26989 = -r26988;
        double r26990 = h;
        double r26991 = r26989 / r26990;
        double r26992 = acos(r26991);
        double r26993 = r26992 / r26986;
        double r26994 = r26987 + r26993;
        double r26995 = cos(r26994);
        double r26996 = r26983 * r26995;
        return r26996;
}


double f_of(float g, float h) {
        float r26997 = 2;
        float r26998 = 3;
        float r26999 = r26997 / r26998;
        float r27000 = atan2(1.0, 0.0);
        float r27001 = g;
        float r27002 = h;
        float r27003 = r27001 / r27002;
        float r27004 = -r27003;
        float r27005 = acos(r27004);
        float r27006 = r27005 / r26998;
        float r27007 = fma(r26999, r27000, r27006);
        float r27008 = cos(r27007);
        float r27009 = r27008 * r27008;
        float r27010 = cbrt(r27009);
        float r27011 = cbrt(r27008);
        float r27012 = r27010 * r27011;
        float r27013 = r26997 * r27012;
        return r27013;
}

double f_od(double g, double h) {
        double r27014 = 2;
        double r27015 = 3;
        double r27016 = r27014 / r27015;
        double r27017 = atan2(1.0, 0.0);
        double r27018 = g;
        double r27019 = h;
        double r27020 = r27018 / r27019;
        double r27021 = -r27020;
        double r27022 = acos(r27021);
        double r27023 = r27022 / r27015;
        double r27024 = fma(r27016, r27017, r27023);
        double r27025 = cos(r27024);
        double r27026 = r27025 * r27025;
        double r27027 = cbrt(r27026);
        double r27028 = cbrt(r27025);
        double r27029 = r27027 * r27028;
        double r27030 = r27014 * r27029;
        return r27030;
}

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 r27031, r27032, r27033, r27034, r27035, r27036, r27037, r27038, r27039, r27040, r27041, r27042, r27043, r27044;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r27031, "2", 10, MPFR_RNDN);
        mpfr_init(r27032);
        mpfr_init(r27033);
        mpfr_init_set_str(r27034, "3", 10, MPFR_RNDN);
        mpfr_init(r27035);
        mpfr_init(r27036);
        mpfr_init(r27037);
        mpfr_init(r27038);
        mpfr_init(r27039);
        mpfr_init(r27040);
        mpfr_init(r27041);
        mpfr_init(r27042);
        mpfr_init(r27043);
        mpfr_init(r27044);
}

double f_im(double g, double h) {
        ;
        mpfr_const_pi(r27032, MPFR_RNDN);
        mpfr_mul(r27033, r27031, r27032, MPFR_RNDN);
        ;
        mpfr_div(r27035, r27033, r27034, MPFR_RNDN);
        mpfr_set_d(r27036, g, MPFR_RNDN);
        mpfr_neg(r27037, r27036, MPFR_RNDN);
        mpfr_set_d(r27038, h, MPFR_RNDN);
        mpfr_div(r27039, r27037, r27038, MPFR_RNDN);
        mpfr_acos(r27040, r27039, MPFR_RNDN);
        mpfr_div(r27041, r27040, r27034, MPFR_RNDN);
        mpfr_add(r27042, r27035, r27041, MPFR_RNDN);
        mpfr_cos(r27043, r27042, MPFR_RNDN);
        mpfr_mul(r27044, r27031, r27043, MPFR_RNDN);
        return mpfr_get_d(r27044, MPFR_RNDN);
}

static mpfr_t r27045, r27046, r27047, r27048, r27049, r27050, r27051, r27052, r27053, r27054, r27055, r27056, r27057, r27058, r27059, r27060, r27061;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r27045, "2", 10, MPFR_RNDN);
        mpfr_init_set_str(r27046, "3", 10, MPFR_RNDN);
        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);
        mpfr_init(r27057);
        mpfr_init(r27058);
        mpfr_init(r27059);
        mpfr_init(r27060);
        mpfr_init(r27061);
}

double f_fm(double g, double h) {
        ;
        ;
        mpfr_div(r27047, r27045, r27046, MPFR_RNDN);
        mpfr_const_pi(r27048, MPFR_RNDN);
        mpfr_set_d(r27049, g, MPFR_RNDN);
        mpfr_set_d(r27050, h, MPFR_RNDN);
        mpfr_div(r27051, r27049, r27050, MPFR_RNDN);
        mpfr_neg(r27052, r27051, MPFR_RNDN);
        mpfr_acos(r27053, r27052, MPFR_RNDN);
        mpfr_div(r27054, r27053, r27046, MPFR_RNDN);
        mpfr_fma(r27055, r27047, r27048, r27054, MPFR_RNDN);
        mpfr_cos(r27056, r27055, MPFR_RNDN);
        mpfr_mul(r27057, r27056, r27056, MPFR_RNDN);
        mpfr_cbrt(r27058, r27057, MPFR_RNDN);
        mpfr_cbrt(r27059, r27056, MPFR_RNDN);
        mpfr_mul(r27060, r27058, r27059, MPFR_RNDN);
        mpfr_mul(r27061, r27045, r27060, MPFR_RNDN);
        return mpfr_get_d(r27061, MPFR_RNDN);
}

static mpfr_t r27062, r27063, r27064, r27065, r27066, r27067, r27068, r27069, r27070, r27071, r27072, r27073, r27074, r27075, r27076, r27077, r27078;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r27062, "2", 10, MPFR_RNDN);
        mpfr_init_set_str(r27063, "3", 10, MPFR_RNDN);
        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);
        mpfr_init(r27074);
        mpfr_init(r27075);
        mpfr_init(r27076);
        mpfr_init(r27077);
        mpfr_init(r27078);
}

double f_dm(double g, double h) {
        ;
        ;
        mpfr_div(r27064, r27062, r27063, MPFR_RNDN);
        mpfr_const_pi(r27065, MPFR_RNDN);
        mpfr_set_d(r27066, g, MPFR_RNDN);
        mpfr_set_d(r27067, h, MPFR_RNDN);
        mpfr_div(r27068, r27066, r27067, MPFR_RNDN);
        mpfr_neg(r27069, r27068, MPFR_RNDN);
        mpfr_acos(r27070, r27069, MPFR_RNDN);
        mpfr_div(r27071, r27070, r27063, MPFR_RNDN);
        mpfr_fma(r27072, r27064, r27065, r27071, MPFR_RNDN);
        mpfr_cos(r27073, r27072, MPFR_RNDN);
        mpfr_mul(r27074, r27073, r27073, MPFR_RNDN);
        mpfr_cbrt(r27075, r27074, MPFR_RNDN);
        mpfr_cbrt(r27076, r27073, MPFR_RNDN);
        mpfr_mul(r27077, r27075, r27076, MPFR_RNDN);
        mpfr_mul(r27078, r27062, r27077, MPFR_RNDN);
        return mpfr_get_d(r27078, MPFR_RNDN);
}

