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

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

double f_if(float g, float h, float a) {
        float r26885 = 1;
        float r26886 = 2;
        float r26887 = a;
        float r26888 = r26886 * r26887;
        float r26889 = r26885 / r26888;
        float r26890 = g;
        float r26891 = -r26890;
        float r26892 = r26890 * r26890;
        float r26893 = h;
        float r26894 = r26893 * r26893;
        float r26895 = r26892 - r26894;
        float r26896 = sqrt(r26895);
        float r26897 = r26891 + r26896;
        float r26898 = r26889 * r26897;
        float r26899 = cbrt(r26898);
        float r26900 = r26891 - r26896;
        float r26901 = r26889 * r26900;
        float r26902 = cbrt(r26901);
        float r26903 = r26899 + r26902;
        return r26903;
}

double f_id(double g, double h, double a) {
        double r26904 = 1;
        double r26905 = 2;
        double r26906 = a;
        double r26907 = r26905 * r26906;
        double r26908 = r26904 / r26907;
        double r26909 = g;
        double r26910 = -r26909;
        double r26911 = r26909 * r26909;
        double r26912 = h;
        double r26913 = r26912 * r26912;
        double r26914 = r26911 - r26913;
        double r26915 = sqrt(r26914);
        double r26916 = r26910 + r26915;
        double r26917 = r26908 * r26916;
        double r26918 = cbrt(r26917);
        double r26919 = r26910 - r26915;
        double r26920 = r26908 * r26919;
        double r26921 = cbrt(r26920);
        double r26922 = r26918 + r26921;
        return r26922;
}


double f_of(float g, float h, float a) {
        float r26923 = 1;
        float r26924 = 2;
        float r26925 = a;
        float r26926 = r26924 * r26925;
        float r26927 = r26923 / r26926;
        float r26928 = cbrt(r26927);
        float r26929 = g;
        float r26930 = r26929 * r26929;
        float r26931 = h;
        float r26932 = r26931 * r26931;
        float r26933 = r26930 - r26932;
        float r26934 = sqrt(r26933);
        float r26935 = r26934 - r26929;
        float r26936 = cbrt(r26935);
        float r26937 = r26928 * r26936;
        float r26938 = cbrt(r26932);
        float r26939 = -r26929;
        float r26940 = r26939 + r26934;
        float r26941 = r26926 * r26940;
        float r26942 = cbrt(r26941);
        float r26943 = r26938 / r26942;
        float r26944 = r26937 + r26943;
        float r26945 = -1.5670095674560527e+146;
        bool r26946 = r26944 <= r26945;
        float r26947 = r26927 * r26940;
        float r26948 = cbrt(r26947);
        float r26949 = r26929 - r26931;
        float r26950 = r26929 + r26931;
        float r26951 = r26949 * r26950;
        float r26952 = sqrt(r26951);
        float r26953 = r26939 - r26952;
        float r26954 = cbrt(r26953);
        float r26955 = cbrt(r26926);
        float r26956 = r26954 / r26955;
        float r26957 = r26948 + r26956;
        float r26958 = 8.327873752318306e+130;
        bool r26959 = r26944 <= r26958;
        float r26960 = r26939 - r26929;
        float r26961 = cbrt(r26960);
        float r26962 = r26925 * r26924;
        float r26963 = r26923 / r26962;
        float r26964 = cbrt(r26963);
        float r26965 = r26939 - r26934;
        float r26966 = r26965 / r26962;
        float r26967 = cbrt(r26966);
        float r26968 = fma(r26961, r26964, r26967);
        float r26969 = r26959 ? r26968 : r26957;
        float r26970 = r26946 ? r26957 : r26969;
        return r26970;
}

double f_od(double g, double h, double a) {
        double r26971 = 1;
        double r26972 = 2;
        double r26973 = a;
        double r26974 = r26972 * r26973;
        double r26975 = r26971 / r26974;
        double r26976 = cbrt(r26975);
        double r26977 = g;
        double r26978 = r26977 * r26977;
        double r26979 = h;
        double r26980 = r26979 * r26979;
        double r26981 = r26978 - r26980;
        double r26982 = sqrt(r26981);
        double r26983 = r26982 - r26977;
        double r26984 = cbrt(r26983);
        double r26985 = r26976 * r26984;
        double r26986 = cbrt(r26980);
        double r26987 = -r26977;
        double r26988 = r26987 + r26982;
        double r26989 = r26974 * r26988;
        double r26990 = cbrt(r26989);
        double r26991 = r26986 / r26990;
        double r26992 = r26985 + r26991;
        double r26993 = -1.5670095674560527e+146;
        bool r26994 = r26992 <= r26993;
        double r26995 = r26975 * r26988;
        double r26996 = cbrt(r26995);
        double r26997 = r26977 - r26979;
        double r26998 = r26977 + r26979;
        double r26999 = r26997 * r26998;
        double r27000 = sqrt(r26999);
        double r27001 = r26987 - r27000;
        double r27002 = cbrt(r27001);
        double r27003 = cbrt(r26974);
        double r27004 = r27002 / r27003;
        double r27005 = r26996 + r27004;
        double r27006 = 8.327873752318306e+130;
        bool r27007 = r26992 <= r27006;
        double r27008 = r26987 - r26977;
        double r27009 = cbrt(r27008);
        double r27010 = r26973 * r26972;
        double r27011 = r26971 / r27010;
        double r27012 = cbrt(r27011);
        double r27013 = r26987 - r26982;
        double r27014 = r27013 / r27010;
        double r27015 = cbrt(r27014);
        double r27016 = fma(r27009, r27012, r27015);
        double r27017 = r27007 ? r27016 : r27005;
        double r27018 = r26994 ? r27005 : r27017;
        return r27018;
}

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 r27019, r27020, r27021, r27022, r27023, r27024, r27025, r27026, r27027, r27028, r27029, r27030, r27031, r27032, r27033, r27034, r27035, r27036, r27037;

void setup_mpfr_f_im() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r27019, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r27020, "2", 10, MPFR_RNDN);
        mpfr_init(r27021);
        mpfr_init(r27022);
        mpfr_init(r27023);
        mpfr_init(r27024);
        mpfr_init(r27025);
        mpfr_init(r27026);
        mpfr_init(r27027);
        mpfr_init(r27028);
        mpfr_init(r27029);
        mpfr_init(r27030);
        mpfr_init(r27031);
        mpfr_init(r27032);
        mpfr_init(r27033);
        mpfr_init(r27034);
        mpfr_init(r27035);
        mpfr_init(r27036);
        mpfr_init(r27037);
}

double f_im(double g, double h, double a) {
        ;
        ;
        mpfr_set_d(r27021, a, MPFR_RNDN);
        mpfr_mul(r27022, r27020, r27021, MPFR_RNDN);
        mpfr_div(r27023, r27019, r27022, MPFR_RNDN);
        mpfr_set_d(r27024, g, MPFR_RNDN);
        mpfr_neg(r27025, r27024, MPFR_RNDN);
        mpfr_mul(r27026, r27024, r27024, MPFR_RNDN);
        mpfr_set_d(r27027, h, MPFR_RNDN);
        mpfr_mul(r27028, r27027, r27027, MPFR_RNDN);
        mpfr_sub(r27029, r27026, r27028, MPFR_RNDN);
        mpfr_sqrt(r27030, r27029, MPFR_RNDN);
        mpfr_add(r27031, r27025, r27030, MPFR_RNDN);
        mpfr_mul(r27032, r27023, r27031, MPFR_RNDN);
        mpfr_cbrt(r27033, r27032, MPFR_RNDN);
        mpfr_sub(r27034, r27025, r27030, MPFR_RNDN);
        mpfr_mul(r27035, r27023, r27034, MPFR_RNDN);
        mpfr_cbrt(r27036, r27035, MPFR_RNDN);
        mpfr_add(r27037, r27033, r27036, MPFR_RNDN);
        return mpfr_get_d(r27037, MPFR_RNDN);
}

static mpfr_t r27038, r27039, r27040, r27041, r27042, r27043, r27044, r27045, r27046, r27047, r27048, r27049, r27050, r27051, r27052, r27053, r27054, r27055, r27056, r27057, r27058, r27059, r27060, r27061, r27062, r27063, r27064, r27065, r27066, r27067, r27068, r27069, r27070, r27071, r27072, r27073, r27074, r27075, r27076, r27077, r27078, r27079, r27080, r27081, r27082, r27083, r27084, r27085;

void setup_mpfr_f_fm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r27038, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r27039, "2", 10, MPFR_RNDN);
        mpfr_init(r27040);
        mpfr_init(r27041);
        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);
        mpfr_init(r27057);
        mpfr_init(r27058);
        mpfr_init(r27059);
        mpfr_init_set_str(r27060, "-1.5670095674560527e+146", 10, MPFR_RNDN);
        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_set_str(r27073, "8.327873752318306e+130", 10, MPFR_RNDN);
        mpfr_init(r27074);
        mpfr_init(r27075);
        mpfr_init(r27076);
        mpfr_init(r27077);
        mpfr_init(r27078);
        mpfr_init(r27079);
        mpfr_init(r27080);
        mpfr_init(r27081);
        mpfr_init(r27082);
        mpfr_init(r27083);
        mpfr_init(r27084);
        mpfr_init(r27085);
}

double f_fm(double g, double h, double a) {
        ;
        ;
        mpfr_set_d(r27040, a, MPFR_RNDN);
        mpfr_mul(r27041, r27039, r27040, MPFR_RNDN);
        mpfr_div(r27042, r27038, r27041, MPFR_RNDN);
        mpfr_cbrt(r27043, r27042, MPFR_RNDN);
        mpfr_set_d(r27044, g, MPFR_RNDN);
        mpfr_mul(r27045, r27044, r27044, MPFR_RNDN);
        mpfr_set_d(r27046, h, MPFR_RNDN);
        mpfr_mul(r27047, r27046, r27046, MPFR_RNDN);
        mpfr_sub(r27048, r27045, r27047, MPFR_RNDN);
        mpfr_sqrt(r27049, r27048, MPFR_RNDN);
        mpfr_sub(r27050, r27049, r27044, MPFR_RNDN);
        mpfr_cbrt(r27051, r27050, MPFR_RNDN);
        mpfr_mul(r27052, r27043, r27051, MPFR_RNDN);
        mpfr_cbrt(r27053, r27047, MPFR_RNDN);
        mpfr_neg(r27054, r27044, MPFR_RNDN);
        mpfr_add(r27055, r27054, r27049, MPFR_RNDN);
        mpfr_mul(r27056, r27041, r27055, MPFR_RNDN);
        mpfr_cbrt(r27057, r27056, MPFR_RNDN);
        mpfr_div(r27058, r27053, r27057, MPFR_RNDN);
        mpfr_add(r27059, r27052, r27058, MPFR_RNDN);
        ;
        mpfr_set_si(r27061, mpfr_cmp(r27059, r27060) <= 0, MPFR_RNDN);
        mpfr_mul(r27062, r27042, r27055, MPFR_RNDN);
        mpfr_cbrt(r27063, r27062, MPFR_RNDN);
        mpfr_sub(r27064, r27044, r27046, MPFR_RNDN);
        mpfr_add(r27065, r27044, r27046, MPFR_RNDN);
        mpfr_mul(r27066, r27064, r27065, MPFR_RNDN);
        mpfr_sqrt(r27067, r27066, MPFR_RNDN);
        mpfr_sub(r27068, r27054, r27067, MPFR_RNDN);
        mpfr_cbrt(r27069, r27068, MPFR_RNDN);
        mpfr_cbrt(r27070, r27041, MPFR_RNDN);
        mpfr_div(r27071, r27069, r27070, MPFR_RNDN);
        mpfr_add(r27072, r27063, r27071, MPFR_RNDN);
        ;
        mpfr_set_si(r27074, mpfr_cmp(r27059, r27073) <= 0, MPFR_RNDN);
        mpfr_sub(r27075, r27054, r27044, MPFR_RNDN);
        mpfr_cbrt(r27076, r27075, MPFR_RNDN);
        mpfr_mul(r27077, r27040, r27039, MPFR_RNDN);
        mpfr_div(r27078, r27038, r27077, MPFR_RNDN);
        mpfr_cbrt(r27079, r27078, MPFR_RNDN);
        mpfr_sub(r27080, r27054, r27049, MPFR_RNDN);
        mpfr_div(r27081, r27080, r27077, MPFR_RNDN);
        mpfr_cbrt(r27082, r27081, MPFR_RNDN);
        mpfr_fma(r27083, r27076, r27079, r27082, MPFR_RNDN);
        if (mpfr_get_si(r27074, MPFR_RNDN)) { mpfr_set(r27084, r27083, MPFR_RNDN); } else { mpfr_set(r27084, r27072, MPFR_RNDN); };
        if (mpfr_get_si(r27061, MPFR_RNDN)) { mpfr_set(r27085, r27072, MPFR_RNDN); } else { mpfr_set(r27085, r27084, MPFR_RNDN); };
        return mpfr_get_d(r27085, MPFR_RNDN);
}

static mpfr_t r27086, r27087, r27088, r27089, r27090, r27091, r27092, r27093, r27094, r27095, r27096, r27097, r27098, r27099, r27100, r27101, r27102, r27103, r27104, r27105, r27106, r27107, r27108, r27109, r27110, r27111, r27112, r27113, r27114, r27115, r27116, r27117, r27118, r27119, r27120, r27121, r27122, r27123, r27124, r27125, r27126, r27127, r27128, r27129, r27130, r27131, r27132, r27133;

void setup_mpfr_f_dm() {
        mpfr_set_default_prec(592);
        mpfr_init_set_str(r27086, "1", 10, MPFR_RNDN);
        mpfr_init_set_str(r27087, "2", 10, MPFR_RNDN);
        mpfr_init(r27088);
        mpfr_init(r27089);
        mpfr_init(r27090);
        mpfr_init(r27091);
        mpfr_init(r27092);
        mpfr_init(r27093);
        mpfr_init(r27094);
        mpfr_init(r27095);
        mpfr_init(r27096);
        mpfr_init(r27097);
        mpfr_init(r27098);
        mpfr_init(r27099);
        mpfr_init(r27100);
        mpfr_init(r27101);
        mpfr_init(r27102);
        mpfr_init(r27103);
        mpfr_init(r27104);
        mpfr_init(r27105);
        mpfr_init(r27106);
        mpfr_init(r27107);
        mpfr_init_set_str(r27108, "-1.5670095674560527e+146", 10, MPFR_RNDN);
        mpfr_init(r27109);
        mpfr_init(r27110);
        mpfr_init(r27111);
        mpfr_init(r27112);
        mpfr_init(r27113);
        mpfr_init(r27114);
        mpfr_init(r27115);
        mpfr_init(r27116);
        mpfr_init(r27117);
        mpfr_init(r27118);
        mpfr_init(r27119);
        mpfr_init(r27120);
        mpfr_init_set_str(r27121, "8.327873752318306e+130", 10, MPFR_RNDN);
        mpfr_init(r27122);
        mpfr_init(r27123);
        mpfr_init(r27124);
        mpfr_init(r27125);
        mpfr_init(r27126);
        mpfr_init(r27127);
        mpfr_init(r27128);
        mpfr_init(r27129);
        mpfr_init(r27130);
        mpfr_init(r27131);
        mpfr_init(r27132);
        mpfr_init(r27133);
}

double f_dm(double g, double h, double a) {
        ;
        ;
        mpfr_set_d(r27088, a, MPFR_RNDN);
        mpfr_mul(r27089, r27087, r27088, MPFR_RNDN);
        mpfr_div(r27090, r27086, r27089, MPFR_RNDN);
        mpfr_cbrt(r27091, r27090, MPFR_RNDN);
        mpfr_set_d(r27092, g, MPFR_RNDN);
        mpfr_mul(r27093, r27092, r27092, MPFR_RNDN);
        mpfr_set_d(r27094, h, MPFR_RNDN);
        mpfr_mul(r27095, r27094, r27094, MPFR_RNDN);
        mpfr_sub(r27096, r27093, r27095, MPFR_RNDN);
        mpfr_sqrt(r27097, r27096, MPFR_RNDN);
        mpfr_sub(r27098, r27097, r27092, MPFR_RNDN);
        mpfr_cbrt(r27099, r27098, MPFR_RNDN);
        mpfr_mul(r27100, r27091, r27099, MPFR_RNDN);
        mpfr_cbrt(r27101, r27095, MPFR_RNDN);
        mpfr_neg(r27102, r27092, MPFR_RNDN);
        mpfr_add(r27103, r27102, r27097, MPFR_RNDN);
        mpfr_mul(r27104, r27089, r27103, MPFR_RNDN);
        mpfr_cbrt(r27105, r27104, MPFR_RNDN);
        mpfr_div(r27106, r27101, r27105, MPFR_RNDN);
        mpfr_add(r27107, r27100, r27106, MPFR_RNDN);
        ;
        mpfr_set_si(r27109, mpfr_cmp(r27107, r27108) <= 0, MPFR_RNDN);
        mpfr_mul(r27110, r27090, r27103, MPFR_RNDN);
        mpfr_cbrt(r27111, r27110, MPFR_RNDN);
        mpfr_sub(r27112, r27092, r27094, MPFR_RNDN);
        mpfr_add(r27113, r27092, r27094, MPFR_RNDN);
        mpfr_mul(r27114, r27112, r27113, MPFR_RNDN);
        mpfr_sqrt(r27115, r27114, MPFR_RNDN);
        mpfr_sub(r27116, r27102, r27115, MPFR_RNDN);
        mpfr_cbrt(r27117, r27116, MPFR_RNDN);
        mpfr_cbrt(r27118, r27089, MPFR_RNDN);
        mpfr_div(r27119, r27117, r27118, MPFR_RNDN);
        mpfr_add(r27120, r27111, r27119, MPFR_RNDN);
        ;
        mpfr_set_si(r27122, mpfr_cmp(r27107, r27121) <= 0, MPFR_RNDN);
        mpfr_sub(r27123, r27102, r27092, MPFR_RNDN);
        mpfr_cbrt(r27124, r27123, MPFR_RNDN);
        mpfr_mul(r27125, r27088, r27087, MPFR_RNDN);
        mpfr_div(r27126, r27086, r27125, MPFR_RNDN);
        mpfr_cbrt(r27127, r27126, MPFR_RNDN);
        mpfr_sub(r27128, r27102, r27097, MPFR_RNDN);
        mpfr_div(r27129, r27128, r27125, MPFR_RNDN);
        mpfr_cbrt(r27130, r27129, MPFR_RNDN);
        mpfr_fma(r27131, r27124, r27127, r27130, MPFR_RNDN);
        if (mpfr_get_si(r27122, MPFR_RNDN)) { mpfr_set(r27132, r27131, MPFR_RNDN); } else { mpfr_set(r27132, r27120, MPFR_RNDN); };
        if (mpfr_get_si(r27109, MPFR_RNDN)) { mpfr_set(r27133, r27120, MPFR_RNDN); } else { mpfr_set(r27133, r27132, MPFR_RNDN); };
        return mpfr_get_d(r27133, MPFR_RNDN);
}

